Spring
스프링 빈 스코프란?
빈 스코프란? 빈 스코프는 스프링 빈이 존재할 수 있는 범위를 뜻합니다. 기본적으로 싱글톤 타입으로 생성됩니다. 싱글톤 타입 말고도 프로토 타입과 같은 다양한 스코프들이 존재합니다. 각각의 스코프에 대해서 자세히 알아보도록 하겠습니다. 싱글톤 및 프로토타입 스코프 싱글톤 스코프는 빈에 대한 요청들이 오면 항상 같은 인스턴스의 스프링 빈을 반환합니다. 하지만 프로토 타입 스코프는 요청들이 오면 빈을 생성하고 필요한 의존관계를 주입한 뒤에 반환하고 더 이상 스프링 컨테이너가 관리하지 않습니다. 다시 말해서 각각의 요청마다 새로운 빈을 생성하고 반환한다는 뜻이됩니다. 여기서 잠깐 짚고 넘어가야 되는 부분은 스프링 컨테이너가 관리하지 않는다는 의미는 뭘까요? 자바 객체들을 관리하는 공간인 스프링 컨테이너는 개발..
Reflection 이란?
스프링 어노테이션을 공부하면서 어노테이션이 어떤 방식으로 동작하는지 원리가 궁금해졌습니다. 해당 원리들을 알아가는 단계에서 자바의 리플렉션 API가 활용되는 것을 알게 되었습니다. 리플렉션의 개념에 대한 정리가 필요할 것 같아 해당 게시글을 작성하게 되었습니다. Reflection이란? 구체적인 클래스 타입을 알지 못해도 클래스의 메소드, 타입 변수들에 접근을 할 수 있게 해주는 자바 API Reflection is a feature in the Java programming language. It allows an executing Java program to examine or "introspect" upon itself, and manipulate internal properties of the p..
스프링부트에서의 API예외 처리 방법
프로젝트의 REST API를 구축하면서 관련된 예외 처리 방법이 궁금해졌습니다. 이전에 강의를 통해서 HTML 페이지 에서의 예외처리는 생각보다 간단하다는 것을 알 수 있었습니다! BasicErrorController가 error 패키지 안에 4xx 또는 5xx와 같은 html 예외 페이지를 찾아 관련된 예외가 발생했을 경우 해당 html을 자동으로 띄어주기 때문입니다! 반면에 API 예외처리는 HTML에서의 예외 페이지 처리 방식보다 조금 복잡합니다. HTML 페이지의 예외처리는 고객에게 단순한 예외관련 페이지를 보여주면 끝이지만 API는 서버와 서버간의 통신 규악이기 때문에 각 오류 상황에 맞는 오류 스펙을 정하고 Json으로 데이터를 내려줘야 하기 때문입니다. 물론 BasicErrorControll..
스프링과 스프링부트 무슨 차이가 있을까?
스프링 부트가 스프링을 시작 할 때 해야 될 초기 설정을 간편하게 도와주는 정도..? 딱 그 정도만 알고, ' 아! 스프링 부트는 스프링을 조금 더 간편하게 쓸 수 있도록 도와주는 거네! ' 라며 여태껏 스프링부트를 활용하여 프로젝트를 진행해왔습니다. 스프링 부트를 활용하기 이전에 스프링과 스프링 부트의 차이점을 조금 더 자세하게 알아야 할 거 같아서 이에 대해 정리를 해보려고합니다! 차이점 1. Dependency 관리 순수 스프링 프레임워크의 경우 디펜던시를 설정해줄 때 복잡합니다. 버전관리도 따로 해줘야 되고 설정 파일도 길기 때문입니다. 밑에 코드는 스프링 프레임워크에서 web에 대한 설정을 해줄 때 추가해야 하는 코드입니다. org.springframework spring-web 5.3.5 or..