728x90 spring boot6 Spring DI 종류 1. 생성자 주입 생성자에 파라미터를 만들어두고 이를 통해 DI 컨테이너가 의존할 오브젝트 레퍼런스를 넘겨주는 방식 // PicoContainer class MovieLister... public MovieLister(MovieFinder finder) { this.finder = finder; } class ColonMovieFinder... public ColonMovieFinder(String filename) { this.filename = filename; } 무의식 중에 가장 많이 쓰는 주입 방식 객체 생성시 필수로 생성자가 실행되기 때문에, 필드 주입과 달리 참조 관계를 눈으로 쉽게 확인할 수 있다. 2. Setter 주입 의존성을 입력받는 세터 메소드를 만들고 이를 통해 의존성을 주입 .. 2022. 4. 22. Spring IoC, DI 가 무엇인지 IoC(Inversion of Control) : 제어가 반대로 간다는 개념 IoC는 Spring 에서만 사용되는 개념이 아니며, 프로그래밍 패턴이기 때문에 범용적으로 쓰이며 작게는 객체간에 디자인 패턴으로 크게는 컨테이너, 프레임워크 역활에 적합한 구조이기 때문에 상황에 맞게 사용되는 프로그래밍 모델이다. "IoC : 제어의 역전" 이라는 의미는 말 그대로 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다. 즉, IoC는 객체 생명 관리, 흐름 제어를 제 3자에게 위임하는 프로그래밍 모델이다. 일반적으로 자바 프로그램은 main() 메소드에서 시작해서 개발자가 미리 정한 순서를 따라 객체가 생성되곡 실행된다. 그런데 서블릿은 배포하고 나서 개발자가 직접 제어할 .. 2022. 4. 19. JPA의 Entity 정의 JPA에서 사용되는 엔티티 클래스는 테이블과 매핑되는 클래스이다. 테이블에 대응하는 하나의 클래스 선언 ***엔티티 클래스의 선언***은 XML 파일에 작성하는 방법과 Java 파일에 직접 애노테이션으로 작성하는 방법이 있다. 어노테이션이 읽기 편하다. Entity Manager 엔티티를 관리하는 객체 매니저의 책임이 전부 영속성 엔티티의 CRUD에 관련 엔티티의 저장 엔티티의 수정 엔티티의 삭제 엔티티의 조회 특징 엔티티 매니저는 영속성 상태의 엔티티 관리를 위해 DB 세션과 밀접한 연관을 가지기 때문에, 여러 스레드에서 공유하여 사용하면 위험하다. 엔티티 매니저 팩토리로부터 엔티티 매니저 생성 각 스레드마다 엔티티 매니저를 생성하는 방식이 권장된다. 획득한 커넥션을 통해 엔티티 CRUD 관리 데.. 2021. 8. 27. JPA의 Entity와 DTO를 구분하여 사용해야하는 이유 이유 view, service와 통신하는 DTO 클래스는 자주 변경된다. 반면 Entity는 그에 비해 변경도 적고, 영향범위는 매우크다 테이블에 매핑되는 정보가 실제 View,service에서 원하는 정보와 다를 수 있다 DTO를 사용하지 않고 Entity를 넘기다 보면 원하지 않은 정보까지 전달하게 되어 문제가 발생할 수 있다. Entity 테이블에 대응하는 하나의 클래스 DTO 계층간 데이터를 교환할 때 사용하는 객체 로직을 갖고 있지 않은 데이터 객체, getter/setter 메소드만 갖음 DB외에서 사용 ex)Service, View DTO와 Entity간의 데이타전달객체의 매핑은 ModelMappper를 활용하자. ModelMapper를 적극적으로 활용하면 DTO와 Entity간의 객체전환 .. 2021. 8. 20. REST API REST(Representational State Transfer) 정의 자원(resource)의 표현(representation)에 의한 상태(state) 전달(transfer) 구성 요소 자원(Resource) : URI 행위(Verb) : HTTP Method HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드를 제공 표현(Representation of Resource) Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다. 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 표현으로 나타내어 질 수 있다. JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이나 JSON을 주.. 2021. 7. 23. Spring Boot MVC Pattern(Service, DAO, DTO, VO) Spring Boot Framework에서의 MVC Pattern은 일반 MVC Pattern과 조금 다르다. 스프링에서는 유저의 요청을 받는 DispathcerServlet이 핵심이며 이것이 Front Controller의 역할을 맡는다. Reference : https://chanhuiseok.github.io/posts/spring-3/ Front Controller Pattern Spring framework used Front Controller Pattern 요청을 분석하여 세부 컨트롤러들에게 필요한 작업을 분배 모든 리소스(Resource) 요청을 처리해주는 하나의 컨트롤러(Controller)를 두는 패턴 MVC(Model-View-Controller) Pattern과 함께 사용하는 패턴 .. 2021. 7. 9. 이전 1 다음 728x90