-
생성 (1) - 싱글톤(Singleton) 패턴
클래스의 인스턴스를 하나만 생성하여 사용 셋팅 정보 같이 인스턴스가 여러 개 일경우 문제가 발생하는 경우를 막는다 1개 JVM 당 1개의 인스턴스만 갖음 구현 생성자를 private으로 제한해 외부에서 인스턴스를 생성하지 못하게 한다 (new 금지) 클래스의 인스턴스에 접근할 수 있는 public static 메서드를 만들어 제공한다 1. Eager Initialization (이른 초기화) 프로그램 시작시 정적 바인딩을 통해 메모리에 올리는 방식 사용하지 않을 수도 있는 자원을 생성하여 메모리낭비를 유발 멀티쓰레딩 문제가 발생하지 않는다 public class Sett...
-
필터(Filter)와 인터셉터(Interceptor)
공통으로 관심이 있는 부분을 공통 관심사라고 한다. 예를 들면 웹 서비스에 로그인이라는 기능이 있는데 이를 공통 관심사라고 할 수 있다. 일반적으로 공통 관심사는 AOP로 처리할 수 있는데 웹과 관련된 공통 관심사는 서블릿 필터나 스프링 인터셉터로 처리할 수 있다. 웹에서는 HTTP 헤더나 URL 정보가 필요한데 필터와 인터셉터에서 HttpServletRequest를 제공해 주기 때문에 편리하게 처리할 수 있다. 필터(Filter) javax.servlet.filter 필터는 서블릿에서 제공한다 스프링 컨테이너가 아닌 톰캣같은 서블릿 컨테이너(=웹 컨테이너)에 의해 관리된다 Spri...
-
Git Commit Message 쓰는 법
커밋 메시지를 작성하는 도중 너무 그때그때 만들어 내는 느낌을 받았다. 형상관리에서 커밋 메시지는 영원히 기록에 남아 코드 추적을 남길텐데 좀 더 좋은 메시지를 작성할 필요가 있다고 생각했다. 커밋 메시지를 잘 써야하는 이유 더 좋은 커밋 로그 가독성 더 나은 협업과 리뷰 프로세스 더 쉬운 코드 유지보수 Conventional Commits type: subject 본문(Body) - 선택 푸터(footer) - 선택 제목 : 50자이내, 명령문, 첫글자 대문자 또는 모두 소문자, 마침표,관사 생략 내용 : 한줄에 72자이내 푸터 : Issue번호 커밋 컨벤션 제목과...
-
DHCP (Dynamic Host Configuration Protocol)
IP주소, 서브넷마스크, 게이트웨이, DNS주소를 동적으로 할당받기 위한 프로토콜 포트번호 서버 : UDP 67번 클라이언트 : UDP 68번 DHCP 과정 DHCP Discover IP주소가 없는 Client가 주소를 할당받기 위해 DHCP 서버를 찾는 메시지 Source IP : 0.0.0.0:68 Destination IP : 255.255.255.255:67 (브로드캐스트) DHCP Offer Discover 메시지를 받은 서버가 IP주소, 서브넷마스크, 게이트웨이...
-
인덱스(Index)
인덱스 인덱스란, 데이터의 목차(색인)을 의미한다 책 앞쪽이나 뒷쪽에 있는 색인과 같은 역할을 한다 인덱스를 통해 데이터를 빠르게 검색할 수 있다 인덱스 키를 기준으로 정렬되어 저장되어 있기 때문에 빠르게 검색이 가능하다 인덱스가 없으면 Table Full Scan으로 검색시간이 오래걸린다 INSERT, UPDATE, DELETE (=Command)의 성능을 희생해 검색 성능을 향상 시킨다 데이터 수정/삭제시 인덱스도 변경이 일어나기 때문 수정/삭제를 위해 데이터를 찾는 과정에서는 인덱스를 활용...