<Spring> AOP 적용 시 주의 사항들

본 포스팅에서는 spring AOP를 사용할 경우 발생 할 수 있는 문제들에 대해서 알아보고 이를 어떻게 하면 해결할 수 있는지 확인해 볼 예정입니다. Proxy 내부 호출 본 이슈의 경우 김영한님의 AOP 관련 강의를 수강하였다면

<Java> ThreadPool 동작원리

본 포스팅에서는 Java에서 제공하는 스레드 풀의 내부 동작에 대해서 다룹니다. “단순히 요청이 오면 Idle한 스레드가 수행한다” 정도는 아니고 스레드 풀 내부의 큐 구현에 따라 어떻게 동작이 달라지는지 스레드 풀의 스레드 개수는 언제 증가하는지

<Docker> 도커를 잘 모를 때 알았으면 좋았을 것들

본 포스팅은 도커를 시작하는 시점에 이걸 알았다면 삽질을 덜 했을 텐데라는 생각으로 작성합니다. 주관적인 부분들이라 누군가에겐 체감 상 쉽게 느껴질 수도 있습니다. 구성되는 목차는 아래와 같습니다. 이론적인 부분에서는 도커의 동작원리를 그리고 나머지 부분은

자바 병렬 프로그래밍 - 7장 작업 실행

스레드가 작업 중일 때 자바에서 해당 작업을 강제로 멈추게 하는 방법은 없다. 다만 앞선 포스팅에서 본 것처럼 인터럽트를 통해 특정 스레드에게 해당 작업을 멈춰달라고 요청 할 수 있다. 이러한 멈춤을 요청할 때는 작업을

<Java> Selector가 TCP FIN 패킷을 감지하는 법

배경 특정 캐시 노드를 정상적으로 종료시키고 Java단에서 해당 캐시 노드와 연결된 TCP 소켓 채널 객체의 상태를 확인해봐야하는 작업을 진행중이였다. 이를 확인하기 위해 SocketChannel을 진단하는 isConnected 값을 확인해보니 true 값이 리턴되고 있었다. TCP 연결이

자바 병렬 프로그래밍 - 6장 작업 실행

스레드에서 작업 실행 흔히 사용하는 작업이라는 단위는 수행할 로직을 특정 범위를 가지며 수행하는 일종의 단위이다. 그래서 이러한 작업을 스케쥴링하거나 분산 시키려면 해당 작업이 전체 로직 내에서 충분히 작은 단위로 구성되어야한다. 서버 어플리케이션에서의 작업의

<Java> DNS Cache TTL 설정 (System vs Security)

DNS cache TTL? 흔히 DNS LookUp을 통해 특정 도메인에 해당하는 IP 주소 값을 얻어옵니다. Java의 경우 특이하게 JVM 단에서 DNS에 대한 IP 정보를 캐싱해서 매번 hosts로부터 Lookup하지 않고 값을 가져올 수 있도록 합니다.

자바 병렬 프로그래밍 - 5장 구성 단위

동기화된 컬렉션 클래스 동기화된 컬렉션 클래스는 Vector, HashTable이 존재한다. 이는 synchronizedXxx를 사용하지 않아도 동기화 된 기능을 제공해준다. 위와 같은 자료구조를 사용하다보면 여러개의 연산을 묶어 원자적인 하나의 단일 연산처럼 사용해야 할 때가 있다. 만약

자바 병렬 프로그래밍 - 4장 객체 구성

스레드 안전한 클래스 설계 객체가 가진 여러가지의 정보들을 객체 내부에 캡슐화 시켜두면 다른 클래스를 분석할 필요없이 객체 단위로 스레드 안전성을 확인해볼 수 있다. 만약 하나의 객체가 하나의 원시 타입의 변수로만 구성된다면 해당 객체의