Home
기몬식
Cancel

스프링 컨테이너(Spring Container)

스프링 컨테이너 스프링 컨테이너는 스프링에서 객체의 생성, 관리, 조립 등을 담당하는 컨테이너입니다. org.springframework.context.ApplicationContext 인터페이스를 스프링 컨테이라 부르며, XML 또는 어노테이션 기반의 자바 설정 클래스로 생성이 가능합니다. ApplicationContext는 다양한 인터페이스...

스프링의 예외 처리 방법

스프링의 기본 예외 처리 방법 자바 프로그램은 예외가 발생하면 예외 정보를 남기고 스레드가 종료되는 반면에 스프링은 예외가 발생했을 때 웹 애플리케이션이 종료되지 않고 HTTP 상태 코드가 노출이 됩니다. 스프링 부트는 컨트롤러 이하에서 발생한 예외를 캐치하여 스레드를 종료 시키는 것이 아닌 예외 내용을 디스패처서블릿에서 에러컨트롤러로 다시 요청...

컴퓨터 시스템(Computer System)

개요 컴퓨터 시스템은 기본적으로 하드웨어와 시스템 소프트웨어로 구성되며, 그러한 시스템에 각종 응용 소프트웨어들이 탑재되어 사용자와 상호 작용하면서 프로그램을 처리합니다. 컴퓨터가 프로그램 형태로 주어진 작업을 수행하기 위해서는 전기적 신호들로 표현된 정보들을 해석하거나 이동시키고 처리하여 새로운 정보를 생성해야합니다. 컴퓨터에서 각종 정보의 전송 ...

State vs Status

들어가기에 앞서 State와 Status는 둘다 프로그램이나 시스템이 현재 어떤 상태에 있는지를 나타내는 용어입니다. 그러나 이 둘은 서로 다른 의미를 가지고 있습니다. 프로그맹 관점에서 어떻게 다르며, 사용될 수 있는 예는 어떻게 되는지 알아보도록 하겠습니다. State State는 객체의 내부 데이터나 현재 상태를 의미합니다. 객체의 상태는 ...

핸들러어댑터(HandlerAdapter)

들어가기에 앞서 스프링 MVC는 클라이언트로부터 들어오는 HTTP 요청을 처리하고, 응답을 생성하는 등의 작업을 수행하는데, 이를 가능하게 해주는 중요한 컴포넌트 중 하나가 org.springframework.web.servlet.HandlerAdapter입니다. 핸들러어댑터는 스프링 MVC에서 클라이언트의 요청을 처리하는 실제 로직을 구현한 컨트롤...

필터(Filter) & 인터셉터(Interceptor)

들어가기에 앞서 스프링(Spring)은 자바(Java) 기반의 웹 애플리케이션 개발을 위한 프레임워크로, 다양한 기능과 기술을 제공합니다. 그 중에서도 Filter와 Interceptor는 웹 애플리케이션의 요청과 응답을 처리하고 조작하는 기능을 제공하는데, 이 두 가지의 개념과 차이점에 대해 알아보겠습니다. Filter 출처 필터는...

IOC(Inversion of Control) & DI(Dependency Injection) & Spring Bean

들어가기에 앞서 스프링 프레임워크(Spring Framework)는 자바 기반의 대표적인 프레임워크로, 애플리케이션 개발에 필요한 다양한 기능을 제공합니다. 이 중에서도 IOC(Inversion of Control), DI(Dependency Injection), Bean은 스프링의 가장 핵심적인 개념 중 하나로 스프링의 특징이자 장점을 이해하는데 ...

어노테이션 ModelAttribute vs RequestBody

들어가기에 앞서 Spring Framework는 웹 요청을 처리하기 위한 몇 가지 어노테이션(Annotation)을 제공합니다. 가장 일반적으로 사용되는 @ModelAttribute 와 @RequestBody 두 어노테이션은 모두 Spring MVC 컨트롤러의 메소드 매개 변수에 요청 데이터를 매핑하는데 사용합니다. 이 글에서는 @ModelAttr...

JWT(JSON Web Token) & 세션(Session) & 쿠키(Cookie)

들어가기에 앞서 서버에서 보안, 인증, 권한 부여 등을 확인하고 관리하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지가 있습니다. 이 글에서는 3가지 방식(토큰은 JWT 기반)에 대해서 알아보고자 합니다. 추가로 Spring Framework 환경에서는 어떤 방식으로 세션을 처리하는지 간단한 예제와 설명도 함께 작성하도록 하겠습니다. JWT(JSO...

Jaypt Spring Boot 라이브러리

Git 저장소(ex: GitHub, GitLab, Bitbucket…)를 통해서 코드를 관리할 때, private repository인 경우는 해당없지만, public repository로 관리하다 보면 민감한 정보에 대한 처리는 필수적입니다. 소스 코드에는 DB URL, Principal, Credential, Token Secret Key … 등등...