Spring 심화 3주차
·
DevOps/Spring
Bean 생명 주기생명주기와 콜백➜ 콜백 메서드는 Spring Bean의 생명주기에서 특정 시점에 실행되도록 설정된 메서드로 초기화 혹은 종료 시점에 필요한 작업(리로스 초기화, 정리)을 처리할 때 주로 사용한다. - Bean 생명 주기Spring은 Bean의 생성과 관리, 소멸까지 자동으로 처리한다.Spring Container 생성애플리케이션이 실행되면 Spring은 ApplicationContect 또는 BeanFactory 와 같은 컨테이너를 생성한다.컨테이너는 @Configuration, @ComponentScan 또는 XML 파일 등의 설정을 통해 Bean 정의 정보를 읽는다.Bean 인스턴스 생성컨테이너는 필요한 Bean의 인스턴스를 생성한다.일반적으로 기본 생성자가 호출되어 객체가 생성되며..
Spring 심화 2주차
·
DevOps/Spring
연관관계 매핑JPA 연관관계 매핑을 통해 데이터베이스 테이블 간의 관계를 객체 지향적으로 표현하여 엔티티 클래스들 간의 관계를 설정JPA를 통해 연관관계를 매핑하면 SQL을 직접 작성하지 않고도 객체간의 관계를 활용하여 쉽게 데이터를 조회하고 조작할 수 있다. - N:1, 1:N, 1:1, N:M 연관 관계 - 단방향, 양방향 연관관계 - 연관관계의 주인연관관계 설정 AnnotationN:1 : @ManyToOne ➜ 가장 많이 사용된다.1:N : @OneToMany1:1 : @OneToOneN:M : @ManyToMany ➜ 조심해서 사용단방향, 양방향테이블외래 키(FK) 하나로 모든 테이블 JOIN 이 가능하다객체외래키가 있는 객체만 참조가 가능하다 ➜ 단방향참조용 필드가 양쪽에 있는 경우 ..
Spring 심화 1주차
·
DevOps/Spring
HttpMessageConverterView를 응답하는 것이 아닌, Rest API(HTTP API)로 JSON, TEXT, XML 등의 데이터를 응답 Message Body에 직접 입력하는 경우 HttpMessageConverter 사용동작 순서HTTP 응답 메시지 Body에 데이터를 직접 입력 후 반환요청 Accept Header + Controller 반환 타입ViewResolver가 아닌 HttpMessageConverter가 동작한다.HttpMessageConverter가 적용되는 경우 ➜ 요청과 응답 모두 사용 HTTP 요청 : @RequestBody, HttpEntity, RequestEntityHTTP 응답 : @ResponseBody, HttpEntity, ResponseEntity @R..
검증(Validation)
·
DevOps/Spring
검증(Validation)특정 데이터(클라이언트의 요청 데이터)의 값이 유효한지 확인하는 단계✔ 시스템이 미리 정의한 사양(specification)에 부합하고 있는지 검증하는 것 - 검증을 통해 적절한 메시지를 유저에게 보여주어야 한다. - 검증 오류로 인해 정상적인 동작을 하지 못하는 경우는 없어야 한다. - 사용자가 입력한 데이터는 유지된 상태여야 한다. BindingResult ➜ Spring에서 기본적으로 제공되는 Validation 오류를 보관하는 객체. 사용자 입력 폼을 검증할 때 많이 쓰이고 Field Error와 ObjectError를 보관
Spring Bean 등록
·
DevOps/Spring
Spring Bean 등록 @ComponentScan➜ Spring이 특정 패키지 내에서 @Component, @Service, @Repositroy, @Controller 같은 Annotation이 붙은 클래스를 자동으로 검색, 이를 Bean으로 등록하는 기능 Annotation을 이용해 Bean을 등록할 수 있어 코드가 간결해지고 유지보수가 쉬워진다. ✔ @ComponentScan 의 동작 순서1. Spring Application이 실행되면 @Component이 지정된 패키지를 탐색2. 해당 패키지에서 @Component 또는 Annotation이 붙은 클래스를 찾음.3. 찾은 클래스를 Spring 컨테이너에 빈으로 등록4. 등록된 빈은 의존성 주입(DI)과 같은 방식으로 다른 빈과 연결됨. ..
싱글톤 패턴(Singleton Pattern)
·
DevOps/Spring
싱글톤 패턴(Singleton Pattern)클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴➜ 객체 인스턴스가 하나만 생성되고 생성된 인스턴스만 사용하도록 함. 객체가 한번만 생성되어 리소스를 절약할 수 있다. ✔ Spring Bean은 싱글톤으로 관리되는 객체이다. 싱글톤 패턴의 문제점상태 유지(stateful)의 문제점: 데이터의 불일치나 동시성 문제가 발생할 수 있다. ➜ Spring Bean은 항상 무상태(stateless)로 설계해야한다.