응시하게 된 이유 지난 1년간 이직을 준비하면서 여러 면접에 탈락하면서 좌절감이 조금 있었다. 그래서 한 동안 휴식을 하면서 회복을 했지만 어딘가에서 성취감을 얻고 싶었고 최근 많이 사용하는 AWS 클라우드의 자격증을 응시하고자 하였다. 시험 신청 한국어로 선택하고 시험 신청 후 편의 지원 요청을 통해 추가 시간 30분도 받았다. 한국어로 ...
[Java] Filter, Interceptor, AOP 비교
자바 웹 개발을 할 때 공통 처리를 위해 Filter, Interceptor, AOP를 활용할 수 있다. Filter, Interceptor, AOP 흐름 실행 순서 Filter → Interceptor → AOP → Interceptor → Filter 비교 Filter, Interceptor는 Servlet 단위에서 실행되고, A...
[Web] JWT
배경 HTTP 프로토콜 통신은 모든 응답이 완료되면 끊어진 상태과 되는 비연결성과, 클라이언트 측의 상태를 보관하지 않는 무상태성(Stateless)의 특징을 가진다. 그러나 클라이언트의 정보가 계속해서 쓰여야하는 경우가 있다. 예를 들어 로그인을 진행한 후 다른 서비스를 진행할 때, 로그인 정보가 어딘가에 담겨있지 않다면 매번 로그인을 해야 한다...
[Java] 자바 버전 별 정리
자바 5 버전 이전까지는 1.0 … 1.4 로 표기했다. J2SE 5 (2004년 9월) Generics ✨ Java의 가장 큰 변화 중 첫번째 타입을 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정할 수 있게 되었다. 컴파일 시에 타입 체크를 해주기 때문에 타입 안정성이 높아지고 형변환의 번거로움이 줄어들게 되었다....
[Web] Spring API 공통 응답 포맷 만들기
클라이언트가 API를 호출하고 응답을 받았을 때 원하는 결과 뿐만 아니라 실패했을 때 코드, 메시지 등의 응답에 대한 메타데이터를 같이 보내고 싶었고 메타데이터를 객체로 생성하여 공통적인 포맷을 만들어서 전달하고 싶었다. 필요한 객체 그러기 위해서 아래와 같은 클래스들을 생성해주어야 한다. Return 할 Response 객체 ...
[CS] 디자인패턴 - 행동패턴
행동패턴 클라스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴이다. 책임 연쇄(Chain of Responsibility) 요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴이다. 클라이언트 요청에 대한 처리를 여러 개의 객체를 나누고, 이들을 사슬(Chain)처럼 ...
[CS] 디자인패턴 - 구조패턴
구조패턴 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴이다. 예를 들면 서로 다른 인터페이스를 지닌 2개의 객체를 묶어서 단일 인터페이스로 제공하거나, 서로 다른 객체들을 묶어 새로운 기능을 제공하는 패턴이 있다. 어댑터(Adapter) 호환되지 않는 인터페이스들을 연결하는 디자인 패턴이다. 호출당하는 쪽의 메서드를 호출하는 쪽의 코드에 ...
[CS] 디자인패턴 - 생성패턴
디자인패턴 (Design Pattern) 디자인패턴이란 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 그 방법에 이름을 붙여서 이후에 재사용하기 좋은 형태로 특정 규약을 만들어서 정리한 것이다. 즉, 효율적인 코드를 만들기 위한 방법론이라고 생각하면 된다. 디자인패턴에는 생성패턴, 구조패턴, 행동패턴으로 분류된다. ...
[Spring] ApplicationContext의 구현체
ApplicationContext의 구현체인 MessageSource, ApplicationEventPublisher, ResourceLoader에 대해서 알아보도록 하겠습니다. MessageSource 메시지를 다국화할 수 있도록 하는 인터페이스이다. (국제화(i18n) 기능을 제공) ApplicationContext가 구현하고 있는 기능 중 ...
[Spring] 컴포넌트 스캔, 빈의 스코프
@Component(컴포넌트) 스캔 Spring 3.1부터 도입되었습니다. @ComponentScan을 붙이고있는 클래스부터 컴포넌트 스캔을 시작합니다. 스프링 부트에서 사용하는 @SpringAppplication이 이 @ComponentScan 인터페이스를 구현하고 있어서 @SpringApplication을 가지고 있는 클래스부터 컴포넌...