Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Second seminar 과제 제출 #4

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open

Second seminar 과제 제출 #4

wants to merge 13 commits into from

Conversation

jiyeoon00
Copy link
Member

@jiyeoon00 jiyeoon00 commented Apr 18, 2023

🍟 기본과제
세미나에서 진행한 USER API & POST API 실습

🍕 심화과제
간단한 서점 프로그램을 만들어 아래 4개의 API를 구현하며 실습하였습니다.
[API 명세서] ➡️ https://lovely-watercress-8a3.notion.site/API-046fdf2ed510493da8b6f584f3962dd2

  • POST: 도서 등록하기
  • PUT: 도서 가격 수정하기
  • GET: 전체 도서 목록 가져오기
  • DELETE: 도서 삭제하기

🍔 생각과제
2주차 생각과제는 아직 안 했는데 3주차 세미나 전까지 완료하겠습니다~!

@jiyeoon00 jiyeoon00 added 🙂기본과제 기본과제 😎심화과제 심화과제 labels Apr 18, 2023
@jiyeoon00 jiyeoon00 linked an issue Apr 18, 2023 that may be closed by this pull request
4 tasks

@Getter
public class PriceUpdateDto {
@NotNull(message = "도서 고유번호는 필수입니다.")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P5] @NotNull 어노테이션 사용하셨군요! 저두 dto에도 @NotNull 붙이는 습관 길러야겠습니다..


@Getter
public class RegisterRequestDto {
@NotBlank(message = "도서 제목은 필수입니다.")
Copy link
Member

@ddongseop ddongseop Apr 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P5] 저는 NotNull밖에 사용해본적이 없어서, 이 코드를 보고 NotBlank와 NotEmpty까지 알아보는 시간을 가질 수 있었습니다!

  1. NotNull: Null만 허용하지 않음, 따라서 ""(초기화된 String)이나 " "(공백) 허용
  2. NotEmpty: Null과 ""(초기화된 String) 허용하지 않음, " "(공백)은 허용
  3. NotBlank: Null과 ""(초기화된 String), " "(공백) 모두 허용하지 않음

import java.util.List;

@Getter
public class BookListResponseDto {
Copy link
Member

@ddongseop ddongseop Apr 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P5] Dto의 List를 담는 BookListResponseDto를 따로 정의하셨군요!
List에 있는 객체들을 Dto로 바꾸는 과정을 어디에서 처리해야할지 고민하다가 저는 그냥 Service 계층에서 처리했었는데, 뭔가 불만족스러웠거든요! 이렇게 처리하면 훨씬 깔끔한 것 같습니다!


@Builder.Default
private int view_count = 0;

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P5] 저는 이번에 생각 과제를 하면서 Builder 패턴에 대해 처음 알게되었는데, 이런 어노테이션도 존재하는군요!
빌더 패턴을 통해 인스턴스를 만들 때 특정 필드를 특정 값으로 초기화하고 싶다면 사용하는 Builder.Default,, 기억하겠습니다!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

기억하겠습니다!

Copy link
Member

@ddongseop ddongseop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

세미나 시간에 한 내용이라서 비슷한 코드일거라고 생각했는데, 배울점이 굉장히 많았어요!
제 코드에 반영할 수 있는 부분 반영해보겠습니다!!

Copy link

@YuSuhwa-ve YuSuhwa-ve left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지연언니 코드 열심히 보고 커비처럼 잡아먹어야지

}

@PutMapping("/book")
public BookInfoResponseDto updatePrice(@RequestBody @Valid PriceUpdateDto priceUpdateDto) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Valid로 유효성 검증 좋아요. 나도 할걸.... 언니 코드 커비처럼 잡아먹어야지

public class BookListResponseDto {
List<BookInfoResponseDto> bookInfoList;

public BookListResponseDto(List<Book> bookList) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 dto내부에서 로직을 넣어서 할수도 있구나! 난 지금까지 dto는 데이터 형식이라고만 생각했는데 이렇게 코드를 짜니 훨씬 깔끔하고 좋아요


@Builder.Default
private int view_count = 0;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

기억하겠습니다!

jinsu4755

This comment was marked as duplicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
😎심화과제 심화과제 🙂기본과제 기본과제
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2주차 세미나
4 participants