[아이템3]싱글턴을 만들거면 확실히 만들자! 이펙티브 자바 책을 읽으면서 새로 알게된 내용이나 느낀점을 정리한 글입니다. 싱글턴(Singleton) 싱글턴 만드는 방법을 이야기하기 전에 싱글턴이 무엇인지부터 알아보자. 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. (Application내에서 단 1개의 인스턴스만 생성할 수 있는 클래스) 한번의 객체 생성으로 재사용이 가능하기 때문에 메모리 낭비를 방지할 수 있다. 싱글톤으로 생성된 객체는 전역성을 띄기에 다른 객체와 공유가 용이하다. 정말 쉽게 말하면 프로그램상에 딱 한개만 존재하는 인스턴스를 싱글턴이라고 한다. 그러면 어떻게 싱글턴을 만들까? 크게 두가지 방법이 있다. 필드 방식의 싱글턴 기본 생성자를 외부에서 호출 못하게 막아버리는 방법이..
글 목록
오늘은 회사에서 일을 하던 중 내가 짠 쿼리가 운영환경에서 10초이상 걸리며 오래 걸렸던 문제를 해결한 경험을 공유하고자 한다. 쿼리는 아래와 같은 카운트 쿼리에 데이터는 약 수억건이 있는 테이블이였다. (테이블명이나 컬럼명 등은 변경한 상태이니 양해바란다) SELECT COUNT(id) FROM member WHERE (created_at >= '2020-03-25 00:00:00.0' AND created_at < '2020-03-26 00:00:00.0') 데이터가 많이 없는 테이블에서 위와같은 카운트쿼리는 크게 문제되지 않겠지만 내가 쿼리를 날린 테이블은 수억건이 있기 때문에 조회를 할 때는 무조건 인덱스를 활용해서 날려야 한다. 그런데 이 member 테이블에는 간단하게 id, name, cre..
[아이템2]생성자에 매개변수가 많을 때는? 빌더 패턴을 쓰자! 이펙티브 자바 책을 읽으면서 새로 알게된 내용이나 느낀점을 정리한 글입니다. 프로젝트 개발을 하다보면 객체 내 필드가 많아지는 경우가 많은데 이럴 일반적인 생성자를 쓰려고 하면 현타가 오는 경우가 많다. 예를 들면 아래와 같은 상황이다. { new Test(var1,var2,var3.......var10....); } 보기만해도 알아보기 힘들고 특히 파라미터가 저렇게 많으면 파라미터간에 자리를 헷갈려서 잘못 넣기라도 하면 버그의 원인이 된다-_-;;; 이럴 때 쓰면 좋은 것이 빌더패턴이다. (책 내에서는 점층적 생성자패턴이나 자바 빈즈 패턴도 언급하고 있는데 크게 의미는 없는 것 같아 뺐다) 빌더 패턴 Builder를 이용해 필수 매개변수로 ..
그동안 기술 면접을 준비하면서 도움이 되었던 팁들을 정리해보고자 글을 쓴다. 필자는 이름없는 스타트업 서버개발자 1년 6개월차에 회사를 그만두고 이직을 준비하면서 약 6~7개 기업의 기술면접을 보았고 최종적으로는 여러번 면접을 보면서 느낀 경험을 살린 것이 잘 먹혔(?)는지 운좋게 네카라쿠배중 한 개의 기업에 합격하여 다니고 있다. 면접을 보면서 가장 크게 느낀 점은 디테일한 면접 질문들은 다 다르지만 질문의 전체적인 방향성이나 의도는 비슷한 경우가 많았다. 그래서 이번에 약 6~7개 기업의 기술면접을 보고 느낀 핵심 포인트들을 적어보려한다. 필자는 지원할 때 Java Spring 서버개발자 직군으로 지원했지만 면접을 준비하는 대략적인 방향성은 비슷할 거라 생각한다. 각자 본인의 상황에 맞게 잘 대입해서..