전체 글

전체 글

    스프링부트에서의 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..

    DI 인젝션이 필요한 이유는?

    DI란 Dependency Injection의 줄임말입니다. 이것은 의존관계 주입이라고 불립니다. 의존 관계의 정의란 무엇일까요? A가 B에 의존한다는 것은 B가 변하면 A가 영향을 받는다는 것을 의미합니다. 예를 들어 '컴퓨터' 라는 클래스가 있고 이 클래스는 'CPU001' 라는 클래스에 의존하고 있다고 가정해봅시다. 이떄 CPU001이 아닌 다른 종류의 CPU로 바꾸고 싶으면 컴퓨터 클래스 내부에 있는 코드를 수정해야합니다. 만약 컴퓨터 클래스가 CPU001 뿐만 아니라 다양한 다른 클래스에도 의존하고 있으면 의존관계에 있는 클래스를 바꿀 때 마다 컴퓨터 클래스를 수정해야 될 것입니다. public class Computer { private CPU001 cpu001; public Computer(..

    스프링 시큐리티를 쓰는 이유는?

    개인 프로젝트를 스프링 시큐리티를 쓰지 않고, 세션과 쿠키 그리고 스프링 인터셉터를 활용하여 인증과 인가 및 로그인 처리까지 성공적으로 수행할 수 있었습니다. 그런데 다른 사람들의 프로젝트는 대부분 기본적인 세션을 쓰는 대신에 스프링 시큐리티를 사용하여 인증과 인가 작업을 수행하는 것을 알 수 있었습니다. 어떤 좋은 기술이든 좋다고 무분별하게 쓰는 것이 아니라, 써야 되는 이유를 분명히 알아야 한다고 생각하기 때문에 이와 관련된 글을 작성해봤습니다. 스프링 시큐리티란 ? 스프링 기반의 어플리케이션 보안을 위해 인증과 권한 부여를 사용하여 접근을 제어하는 프레임워크 1. 모든 URL을 가로채 인증을 요구 2. 로그인 폼을 생성 3. CSRF 공격을 막는다. 4. 인터셉터가 아닌 필터 기반으로 ..