티스토리 뷰
[무료 제공 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월 영어모의고사
- 초등단어장
- 영어단어 시험지
- 고등모의고사
- 영단어장
- 초등학교
- 모의고사 단어
- 중학교 단어
- 영어
- 단어시험
- 초등영어
- 초등800
- 영어단어암기프로그램
- 영어단어 시험지 다운로드
- 단어프로그램
- 영단어게임
- 초등800단어
- 단어암기
- 애니보카
- 방과후영어
- 초등800단어장
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |