Spring Web MVC 란? Spring Web MVC란 Spring Framework와 Servlet API를 기반으로 하는 웹 애플리케이션 프레임워크로, 주로 Spring MVC라고 줄여서 부릅니다. 이 Spring MVC는 이름에서 유추할 수 있듯이, 웹 요청을 Model-View-Controller로 역할을 분리해 처리하는 MVC 패턴을 사용한다는 특징이 있고 (그 중에서도 Controller 역할을 Servlet이 수행하고 결과를 JSP를 통해 리턴하는 MVC2 패턴을 사용) 데이터 바인딩 및 검증 기능을 제공하며, Interceptor를 제공해 요청을 처리하기 전 후로 보안 / 로깅과 같은 작업을 수행할 수 있다는 특징이 있습니다. Spring MVC의 장단점은 다음과 같습니다. 장점 Mo..
분류 전체보기
개요 AWS(Amazon Web Services)는 아마존이 제공하는 클라우드 컴퓨팅 플랫폼으로, 간편하게 자신만의 웹 서비스를 구축할 수 있게 도와준다. 최근에는 IT 기업 부터 사이드 프로젝트를 진행하는 취준생까지 AWS 를 매우 많이 사용하고 있다. 하지만 AWS는 사용하는 만큼 비용을 지불하는 Pay-as-you-go 정책을 사용하고 있기 때문에 자칫 잘못 사용하게 된다면 과금 폭탄을 맞을 수도 있기 때문에 있으니 조심해서 사용해야 한다. (검색해서 찾아보면 실제로 백만원 단위 부터 억 단위로 과금 폭탄을 맞은 사람들이 있다..) 이번 글에서는 이러한 과금 폭탄을 피하기 위해서 필요한 몇가지 설정을 소개하려 한다. 비용 모니터링 설정 내가 사용하고 있는 클라우드 서비스의 요금이 특정 가격을 넘을 ..
Entity Entity는 실제 DB 테이블과 매핑되는 클래스로, 테이블의 ID값을 기준으로 객체를 구분하고 비즈니스 로직을 포함한다. 실제 테이블과 매핑되기 때문에 테이블 컬럼이 추가되거나 변경될때마다, Entity 클래스 또한 변경된다. 그렇기 때문에 Entity 클래스에는 가급적 Setter를 열어두지 말고, 생성자 메소드를 따로 생성하는 전략을 사용하는 것이 좋다. (Setter로 객체를 생성하게 하면 필드가 변경될 때 마다 Setter를 사용하는 곳을 수정해야 한다.) 또한, Entity 클래스에는 테이블의 민감한 정보를 다루는 필드도 포함되어 있기 때문에 (ex) password ) API 요청값 / 응답값에 Entity 객체를 사용하지 않는 것이 좋다. 다음은 User Entity의 예시 ..
Bean Scope 란 ? Bean Scope(빈 스코프)란 Bean으로 등록한 객체가 생성되고 소멸 될 때까지 생존하는 범위를 의미한다. Spring에서 제공하는 Bean Scope는 총 6가지로 Singletone / Prototype / Request / Session / Application / WebSocket 가 있다. Spring의 기본 Bean Scope는 Singletone이고 원한다면 Bean을 등록할 때 설정을 변경할 수 있다. 단, 애플리케이션의 동작과 메모리 사용 등에 큰 영향을 끼치는 설정이기 때문에 주의해서 사용해야 한다. 빈 스코프 설정 방법 빈 스코프는 XML 또는 자바 어노테이션으로 지정할 수 있는데 예시는 아래와 같다. 📌 XML 방식 📌 자바 어노테이션 방식 @Con..
빈 생명주기 콜백 스프링 빈이 생성될 때 초기화 콜백, 소멸될 때 소멸전 콜백을 호출해주는 기능이다. 주로 데이터베이스 커넥션 풀, 네트워크 소켓 처럼 애플리케이션 시작시점에 미리 연결해놓고 종료시점에 연결을 종료하는 작업에 사용된다. 초기화 콜백은 의존관계 주입 이후, 소멸 콜백은 컨테이너 종료 직전 호출된다. ✍🏻 스프링 빈의 이벤트 라이프 사이클 (싱글톤 기준) 출처 : https://catsbi.oopy.io/3a9e3492-f511-483d-bc65-183bb0c166b3 스프링이 지원하는 콜백 기능 구현 방법 1. InitializingBean , DisposableBean 인터페이스 사용 특정 빈에 InitializingBean, DisposableBean 인터페이스를 구현해서 초기화 작업은..
Spring Container란 ? 스프링 컨테이너(Spring Container)는 스프링에서 제공하는 DI 컨테이너로, 스프링 컨테이너가 관리하는 자바 객체인 스프링 빈(Bean)의 생성, 연결, 실행 등 모든 생명 주기를 관리하는 역할을 한다. 스프링 컨테이너는 스프링 빈을 컨테이너에 등록하고 DI 받아서 사용하므로, 역할과 책임을 분리하게 되고 변경에 용이한 애플리케이션을 개발할 수 있는 장점이 있다. Spring Container의 종류 스프링 컨테이너는 BeanFactory, ApplicationContext 인터페이스가 있고, 주로 ApplicationContext를 스프링 컨테이너라고 한다. (BeanFactory 인터페이스를 구현한 클래스로 다양한 편의기능이 포함되어있음) BeanFact..