티스토리 뷰

[무료 제공 IntelliJ 가이드] 섹션을 마치고 내가 배웠던 부분들을 정리하고자 한다.

사용된 annotation 중 내가 몰랐던 부분

아래는 실제 강의에 사용된 org.example.model.TodoModel.java 를 가지고 온 것이다. 사용된 어노테이션들을 하나씩 살펴보자.

Annotation : 어노테이션은 일반적으로 설명 그 이상의 역할을 수행한다. 어노테이션이 붙은 코드는 어노테이션의 구현된 정보에 따라 연결되는 방향이 결정된다.
이 속성을 어떤 용도로 사용할까? 이 클래스에게 어떤 역할을 줄까? 를 결정해서 붙여준다고 이해하면 쉽다.
어노테이션은 소스코드에 메타데이터를 삽입하는 것이므로 잘 이용하면 구독성 뿐 아니라 체계적인 소스코드를 구성하는데 도움을 준다.
출처 : https://www.nextree.co.kr/p5864/

// org.example.model.TodoModel.javaㄱ
package org.example.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;

@Data
@Entity
@NoArgsConstructor  // 파라미터가 없는 기본 생성자를 생성해준다.
@AllArgsConstructor // 모든 필드를 파라미터로 받는 생성자를 만들어준다.
public class TodoModel {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String title;

    @Column(name = "todoOrder", nullable = false)
    private Long order;

    @Column(nullable = false)
    private Boolean completed;
}

lombok 관련 어노테이션들은 유명하니 어떤 역할을 하는지 바로 알 수 있을것이다.

@Data 가 좀 낯선데 무슨 뜻 일까?

@Data는 @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode 을 한꺼번에 설정해주는 매우 유용한 어노테이션이다.

그런데 뜬금없이 javax.persistence 는 무엇일까?

javax.persistence 는 persistence 관리와 object/relational mapping 을 위한 API 라고 한다.

위의 예제에는 h2 관계형 데이터베이스 인메모리 데이터베이스를 사용했으므로
자바는 객체지향 프로그래밍언어인데 SQL 과의 상호작용을 위해 위의 javax.persistence API 를 사용하는 것이다.

인상깊었던 코드 방식

몇몇 필드가 optional 하게 들어올 수 있으므로 각각 비어있는지 체크하고 기본 값을 넣어 주어 처리해주는 모습이다.
상당히 인상깊었다.

    @PostMapping
    public ResponseEntity<TodoResponse> create(@RequestBody TodoRequest request){
        log.info("CREATE");
        if(ObjectUtils.isEmpty(request.getTitle()))
            return ResponseEntity.badRequest().build();

        if(ObjectUtils.isEmpty(request.getOrder()))
            request.setOrder(0L);

        if(ObjectUtils.isEmpty(request.getCompleted()))
            request.setCompleted(false);

        TodoModel result = this.service.add(request);
        return ResponseEntity.ok(new TodoResponse(result));
    }

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online.
https://bit.ly/3FVdhDa

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

댓글