전체 글

전체 글

    [토비의 스프링 3.1] 1장 오브젝트와 의존관계

    Reflection, Default Constructor Reflection을 이용해 오브젝트를 생성하기 때문에 Default Constructor가 필요하다고 이야기 함. 코드가 어떤식으로 작성되기 때문에 그런걸까? val someClass = SomeClass::class.java val constructors = someClass.getDeclaredConstructor() constructors.isAccessible = true val instance = constructors.newInstance() Class에 대한 Reference 획득 → 해당 Class의 생성자 획득 → 생성자를 사용할 수 있게끔 접근 지정자 public 으로 변경 → 생성자를 이용해 인스턴스 생성 이와 같이 Defau..

    Facebook을 다운 시킨 원인, BGP hijacking이 무엇인가?

    개요 2021년 10월, 페이스북(현 Meta)의 서비스(FaceBook, Instagram, WhatsApp, Oculus, ...) 전반을 이용할 수 없는 장애가 발생 했었습니다. 해당 장애는 긴급 복구되는데 5시간, 완벽하게 복구되는데 12시간이 걸렸을 정도로 이례적으로 오래걸렸는데요. 이런 경우 일반적으로 서버 장애, 서버 다운이라고 표현하지만 정확히 말하자면 이는 서버 다운은 아니었습니다. 네트워크의 문제였죠. 그리고 이렇게 복구에 오래 걸리는 네트워크 관련 문제는 대부분 "DNS"에 의해 발생합니다. 실제로 페이스북, 인스타그램 접속 제한의 문제도 DNS였구요. 구체적으로 공개되기 전 까지는 BGP hijacking을 비롯한 BGP 관련 문제가 아닐까 단순히 '추정'하고 있었는데, 그 추정이 ..

    [AWS CloudWatch] CloudWatch Agent를 별도로 설치하는 이유

    AWS CloudWatch를 사용할 경우 CloudWatch Agent를 별개로 설치하게 된다. 그런데 Agent를 설치하지 않아도 CloudWatch를 사용할 수 있는데, 왜 설치하는걸까? 차이점 AWS CloudWatch는 기본적으로 CPU Utilization 같이 호스트에서 감지할 수 있는 Metric을 측정할 수 있다. 다만, OS에서 관리하는 Metric에 대해서는 측정할 수 없다. 당연하다. 메모리와 디스크를 할당하는 주체는 최초 가용량을 할당해준 호스트가 아니라 OS이기 때문이다. 그래서 메모리 사용량, 디스크 사용량, CPU 사용량, 네트워크 인바운드/아웃바운드 크기 등 OS 내부에서 이루어지는 Metric을 측정하기 위해선 CloudWatch Agent 설치가 필수적이다. Agent를 ..

    [우피/oopy] 애드센스 광고 달 경우 cta 버튼 위치 조절

    Oopy(우피) 는 노션 페이지를 최적화된 웹사이트로 바꿔주는 서비스입니다. 원하는 도메인 주소를 연결할 수도 있는데요. 저는 위클리 아카데미라는 스터디, 강의 공간을 우피로 연결하여 사용중에 있습니다. https://weekly.ac 위클리 아카데미 위클리 아카데미는 스터디, 세미나, 컨퍼런스 및 네트워킹 파티를 상시 운영하고 있습니다. www.weekly.ac 그리고 우피는 애드센스를 붙일 수도 있는데요. 방법도 정말 간단합니다. https://www.oopy.io/ko/guides/plugins/google-adsense Google Adsense(구글 광고) Notion(노션)에 구글 애드센스(광고) 붙이기 www.oopy.io 다만, 엄청난 문제점이 있습니다... 우피에 구글 애드센스를 붙일 경..

    코틀린 기초: 함수 정의와 호출

    코틀린에서 컬렉션 만들기 코틀린은 자체적인 컬렉션 클래스를 제공하진 않으나 자바보다 더 풍부한 API를 지원합니다. val set = hashSetOf(1, 7, 53) // class java.util.HashSet val list = arrayListOf(1, 7, 53) // class java.util.ArrayList val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") // class java.util.HashMap 함수를 호출하기 쉽게 만들기 Named Parameter 이름 붙인 파라미터를 사용하면 함수의 파라미터가 많을 때 함수 호출의 가독성을 향상시킬 수 있습니다. joinToString(collection, separa..