전체 글

전체 글

    Dto to Entity, Entity to Dto 변환

    Dto to Entity, Entity to Dto 변환

    # 1. Dto to Entity or Entity to Dto 싸비스에서 변환처리 ## 싸비스에서 변환한 이유 우선 Spring Data JPA를 사용하게 되면 Entity를 받아 오므로 싸비스에서 변환해주는게 좋다. 비즈니스 처리, 로직 처리 등은 서비스에서 하는게 좋지 않을까 해서 서비스에서 함. # 2. 사용한 변환 방법 포켓 몬스터 너로 정했다 !!! : Builder 패턴 생성자나 대신에 Builder 패턴을 사용한 이유는 유연성, 가독성, 불변성 1. 생성자는 파라미터가 많을 경우 가독성이 좋지 않고, 순서를 정해줘야한다. 2. 값 설정 순서가 상관이 없다. 생성자는 순서가 중요하다 3. 생성자는 그때 그때 파라미터 수에 맞게 생성자를 만들어줘야 함 Setter를 사용하지 않은 이유 여기저기..

    @ResponseBody 와 JPA의 엔티티는 기본생성자가 필수

    # 1. Spring RequestBody와 JPA 엔티티에 기본 생성자가 필요한 이유 Reflection을 사용하기 때문이다. Reflection은 구체적인 타입은 알지 못하더라도, 내부 변수와 메소드에 접근할 수 있는 방법이다. 만약 생성자가 여러 개 있다면, Reflection은 이 중 어떤 생성자를 호출해야 할지 알 수가 없다. 따라서 Reflection은 기본 생성자를 통해 객체를 생성한 후 값을 넣어준다. 출처: https://medium.com/sjk5766/%EC%99%9C-responsebody%EB%8A%94-%EA%B8%B0%EB%B3%B8-%EC%83%9D%EC%84%B1%EC%9E%90%EA%B0%80-%ED%95%84%EC%9A%94-%ED%96%88%EC%9D%84%EA%B9%..

    DDD 설계 vs SQL중심 설계

    # 1. DDD(Domain Driven Design) 설계 (1) DDD란? 도메인이란 ? 소프트웨어로 해결하고자 하는 문제 영역 온라인 쇼핑몰의 도메인은 전자상거래 이커머스 도메인, 상품 도메인 이런 도메인을 중심으로 설계해 나가는 방법을 DDD 라고 함. # 2. SQL 중심 설계 데이터베이스 구조와 데이터의 흐름을 중심으로 시스템을 개발하는 것

    @GeneratedValue 의 default는?

    # 1. @GeneratedValue 란? 기본키 (PK) 값에 대한 생성 전략을 제공 엔티티의 기본키 생성전략의 기본값은 AUTO AUTO - JPA 구현체가 자동으로 생성 전략을 결정한다.

    Entity vs DTO vs VO

    # 1. Entity : DB 테이블과 매핑하는 객체 @Getter @NoArgsConstructor @Table(name = "member") @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id = null; @Column(unique = true, nullable = false, length = 20) private String userId; @Column(nullable = false, length = 20) private String password; @Column(nullable = false, length = 20) private String name; private ..

    HTTP method 종류

    1. GET: 리소스 조회 2. POST: 요청 데이터 처리, 주로 등록에 사용 3. PUT: 리소스를 대체, 해당 리소스가 없으면 생성 4. PATCH: 리소스 부분 변경 5. DELETE: 리소스 삭제 기타 메서드 : HEAD, OPTIONS, CONNECT, TRACE

    Controller - Service - Repository 구조

    Controller - Service - Repository 구조

    아주 간단한 Controller - Service - Repository 3 계층 구조를 만들어보자 # 1. Controller # 2. Service ★ @Component 찾았다! # 3. Repository ★ @Component 찾았다! # 4. 설명 @Autowired 는 스프링 컨테이너에 등록한 빈에게 의존관계 주입이 필요할 때 DI(의존성 주입)을 도와주는 어노테이션이다. 그렇다면 TestService, TestRepository는 스프링 컨테이너에 등록되어 있어야 @Autowired 어노테이션을 달고 있는 곳에 빈을 주입해준다. TestService, TestRepository 클래스 위에 있는 @Service, @Repository 어노테이션은 @Component 어노테이션을 메타 어노테..

    스프링 Controller 간단 구현

    스프링 Controller 간단 구현

    # 1. 스프링 Controller 간단 구현 스프링부트 프로젝트 시작은 https://start.spring.io/ 를 이용하거나 인텔리제이를 사용한다면 Spirng Initializer에서 시작 controller 클래스 생성 # 2. 어노테이션 설명 @Controller: . 해당 어노테이션이 적용된 클래스는 "Controller"임을 나타나고, bean으로 등록되며 해당 클래스가 Controller로 사용됨을 Spring Framework에 알립니다. @ResponseBody: 메소드에서 리턴되는 값은 View 를 통해서 출력되지 않고 HTTP Response Body 에 직접 쓰여지게 됩니다. 이때 쓰여지기 전에 리턴되는 데이터 타입에 따라 MessageConverter 에서 변환이 이뤄진 후 ..

    핸들러(handler) 개념

    #1 스프링에서 핸들러란? Request로 인해 호출되는 Controller의 "메소드"를 뜻함. @GetMapping("/hello") public String hello(){ return "hello"; } 참조: https://songacoding.tistory.com/3 # 2. 정리 요청에 의해 호출되는 메소드라고 생각하자. 스프링 학습 하다보면 핸들러 매핑이라는 말이 자주 나오는데 그때 핸들러를 찾는다 할때 이 메소드를 찾는 거였음

    레이어드 아키텍처와 Controller - Service - Repository

    레이어드 아키텍처와 Controller - Service - Repository

    일단 이렇게 3 계층으로 나눠진 것은 레이어드 아키텍처(Layered Architecture) 패턴에 따라 수평으로 나눠 관리하는 것이다. 레이어드 아키텍처란 : 애플리케이션의 컴포넌트를 유사 관심사를 기준으로 레이어로 묶어 수평적으로 구성한 구조를 의미 Controller - 프리젠테이션 계층 유저 인터페이스 (UI) 계층이라고도 함 애플리케이션의 최상단 계층으로 클라이언트의 요청을 해석하고 응답하는 역할 UI 나 API를 제공 클라이언트와의 접점 별도의 비즈니스 로직을 포함하고 있지 않으므로 비즈니스 계층을 요청하고 위임하고 받은 결과를 응답하는 역할을 수행 Service - 비즈니스 계층 애플리케이션이 제공하는 기능을 정의하고 세부 작업을 수행하는 도메인 객체를 통해 업무를 위임하는 역할을 수행 핵..