Java GC(Garbage Collection)에 대하여

오늘은 그동안 작성하길 망설여왔던 주제에 대해서 포스팅을 하려한다. 바로 Java의 Garbage Colection(GC)에 대한 내용이다. Java개발자라면 기본적으로 알고있어야한다고 생각했지만, 그 내용들이 실제 업무나 코딩을 하는데 있어서 크게 쓰임새가 없다고 생각하여 미루고 미뤄왔던 포스팅이다. 하지만 최근 Naver D2나 GC에 대해 잘 작성된 글이나 영상들을 보며 개발자로써의 호기심이 치솟았고, 결국 이렇게 포스팅 작성에까지 이르게 되었다. 많고 조금 어려운 내용일 수도 있지만 길을 잃지말고 끝까지 작성해보도록 하겠다.

Read more

JDBC 타임아웃

시스템을 운영하는 입장에서 개발을 진행한다면 다양한 상황들을 가정하게 된다. 프로그램이 갑작스럽게 죽었을 경우, 서버가 다운됐을 경우, DDos 공격을 당하게 되었을 경우등이 가정되는 상황들이다. 이러한 이벤트에서도 시스템은 피해를 최소화할 수 있어야 한다. 이와 관련하여 과거 진행되었던 개발건 중 JDBC 타임아웃 설정에 관한 좋은 경험이 있어 공유하고 설명하고자 한다.

DB서버의 먹통

2020년 실시간으로 들어오는 다량의 데이터들을 DB에 적재하는 프로그램 개발을 맡게 되었다. Kinesis로부터 읽어들인 데이터를 DB에 적재하면 되는 단순할 수 있는 개발건이었지만, 기존에 운영중인 시스템의 구조를 바꾸는 일이라 영향도가 꽤나 큰 건이었다. 기능 개발은 단기간에 끝났지만 성능테스트와 발생할 수 있는 다양한 상황에 대응하는 기능들을 추가하는데 공수가 더 들어가게 되었다.

Read more