목록전체 글 (47)
우당탕탕
스왑 파일 생성 이번 포스팅은 AWS EC2 프리티어에서 메모리 부족 현상을 해결하는 방법에 대해 적어보려 한다. SpringBoot 프로젝트를 만들어서 EC2에 젠킨스를 배포 자동화를 시도할 때 EC2가 멈추는 현상을 발견하였고 가끔 젠킨스를 통하지 않고 그냥 적어도 멈추는 현상이 발견했었다. ( EC2의 프리티어 메모리는 1GB ) 스왑 파일(Swapfile) 메모리를 늘리는 방법 중 제일 쉬운 방법은 돈을 내고 더 좋은 서버를 쓰면 된다. ( 우린 돈이 없으니 다른 걸 찾아보자 ) 리눅스에서는 스와핑(Swapping)이라는 게 존재하는데 이는 하드디스크를 가상 메모리로 전환시켜 사용하는 방식이다. AWS에서는 스왑 공간 크기 계산을 아래와 같이 권장한다 최대 2GB의 RAM에 대해 스왑 공간은 RA..
IoC와 DI란? 스프링을 사용하면 IoC와 DI라는 단어를 많이 듣게 된다. IoC와 DI는 뭘까?? IoC(Inversion of Control)란? IoC란 영어 그대로 제어의 역전이라 부른다. 제어의 역전이란 메서드나 객체의 호출 작업을 개발자가 아닌 스프링에게 제어권을 넘기는 것을 말한다. 이전까지는 개발자가 객체의 생성을 관리하며 제어했지만, 스프링을 사용하게 되면 스프링 컨테이너에게 제어권을 넘겨 스프링 컨테이너가 흐름을 제어하게 된다. DI(Dependency Injection)란? DI란 의존성 주입이라 부르며, 객체를 직접 생성하는 게 아닌 외부(IOC 컨테이너)에서 생성한 후 주입시켜주는 방식이다. 의존성 주입 방식으로는 3가지 방법이 존재한다 생성자 주입 ( Constructor I..
이벤트 버블링과 이벤트 캡처링이란? 이 글은 이벤트 JS에서 이벤트 버블링과 이벤트 캡처링에 대해 설명한다. 이벤트 버블링과 캡처링 모두 계층적으로 짜여있는 HTML 요소에 이벤트가 발생할 때 나타나는 연쇄반응을 칭한다. 해당 반응이 발생하는 방향에 따라 버블링과 캡처링으로 나뉜다. 말로보면 어려우니 아래 그림과 코드를 통해 알아보자 이벤트 버블링 아래와 같은 코드가 있다고 가정해보자 클릭해! 브라우저는 이벤트가 발생하면 그 이벤트를 최상위에 있는 요소까지 이벤트를 전파시키는 특성이있다. 해당 코드에서 p 태그인 "클릭해!"를 누르게 되면 처음으로 알럿 창인 "p"가 뜨게 된다 이후 "div"와 "form"이 순차적으로 출력되며 총 3개의 알럿 창이 뜨게 된다. p태그만 클릭하였지만 div와 form요소..
가비지 컬렉션 알고리즘 이 글은 [Java] 가비지 컬렉션(Garbage Collection)이란? 의 2편이다. ( GC에 대한 자세한 내용은 1편을 참고 ) 1편에서 GC 알고리즘 종류에 대해 말을 했었다. 1. Serial GC 2. Parallel GC 3. Parallel old GC 4. CMS(Concurrent Mark & Sweep) GC 5. G1 GC(Garbage First GC) 대충 이런 알고리즘이 있었는데 이에 대해 하나하나 알아보도록 하자 1. Serial GC Serial GC의 경우 Young 영역과 Old 영역이 다르게 실행된다. Young 영역의 경우 1편에서 설명한 Mark Sweep 방식으로 수행되지만 Old 영역의 경우 Compact 가 추가된 Mark Sweep..
가비지 컬렉션(GC)이란? 가비지 컬렉션(Garbage Collection , GC) 가비지 컬렉션이란 개발자가 동적으로 할당한 메모리 영역 중 더 이상 사용하지 않는 자원을 해제하는 기능이다. Java의 경우 개발자가 직접 메모리를 해제하지 않아도 JVM의 가비지 컬렉터가 알아서 정리해준다. (JVM 메모리 구조 중 Heap영역에서 사용하지 않는 객체를 삭제한다. 아래의 그림 참조 ) 아래의 예시 코드로 한번 알아보자 Car car = new Car("K5"); car = new Car("K3"); 처음에 K5라는 차가 생성되고 car는 K5를 바라보고 있다 이때는 가비지가 존재하지 않는다. 하지만 이후 K3라는 차가 생성되고 car는 K3를 바라보게 된다. K3를 바라보게 되는 순간부터는 K5라는 차..
오늘은 이전에 작성한 REST API 소셜 로그인 2편-네이버를 작성한다. 카카오 버전은 [앱출시 - 1] REST API 소셜로그인 (네이버,카카오,구글,페이스북) - 카카오 를 참고하면 된다. 개발 ( Springboot ) 일단 개발에 앞서 네이버의 경우에도 카카오와 같이 개발자 사이트에 접속해서 개발 준비를 진행해야 한다. 네이버 개발자 -https://developers.naver.com/ 네이버 개발자 사이트에 접속하면 상단에 Application을 클릭 후 애플리케이션 등록을 눌러 새로운 애플리케이션을 등록해준다. 앱의 이름을 적고 사용 API로는 네아로(네이버 아이디로 로그인)를 선택한다. 정보제공의 경우 운영서버 심사 시에 실제 사용하는 내용만 넣어야 하므로 적당히 필요한 값만 선택해야 ..