티스토리 뷰
[무료 제공 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
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Spring' 카테고리의 다른 글
| Spring ObjectMapper 실무 사례 알아보기 | 6일차 (1) | 2021.11.07 | 
|---|---|
| 객체지향과 디자인 패턴 & Web 기초 | 패스트캠퍼스 챌린지 4일차 (406) | 2021.11.05 | 
| 객체지향과 디자인 패턴 & Web 기초 | 패스트캠퍼스 챌린지 5일차 (421) | 2021.11.05 | 
| 객체지향과 디자인 패턴 & Web 기초 | 패스트캠퍼스 챌린지 3일차 (1) | 2021.11.03 | 
- Total
 
- Today
 
- Yesterday
 
- 영어단어암기프로그램
 - 영어단어 시험지
 - 2019년 3월 영어모의고사
 - 영단어
 - 영어단어
 - 영어단어장
 - 영어
 - 영단어장
 - 단어암기
 - 단어프로그램
 - 영어단어 시험지 다운로드
 - 중1영어단어장
 - 초등단어
 - 단어시험
 - 초등800단어장
 - 중3영어단어장
 - 영어단어게임
 - 중학교단어장
 - 초등학교
 - 모의고사 단어
 - 애니보카
 - 초등단어게임
 - 고등모의고사
 - 영단어게임
 - 방과후영어
 - 영어모의고사
 - 초등800단어
 - 초등영어
 - 초등800
 - 중학교3학년영어단어장
 
| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
