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

박정인 API 구축 코드 #4

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Jeonginn-Park
Copy link

@Jeonginn-Park Jeonginn-Park commented Jun 4, 2024

HelloController를 통해 홈페이지에 입력 내용이 출력이 잘 되는지 확인했습니다.
ItemController를 통해 상품의 이름과 개수를 입력하고, 목록 조회 및 수정, 삭제 등이 가능하도록 했습니다.

Copy link
Member

@mjj111 mjj111 left a comment

Choose a reason for hiding this comment

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

고생하셨습니다 ㅎㅎㅎ👍

.name(item.getName())
.count(item.getCount())
.build())
.collect(Collectors.toList()); // itemRepository를 통해 모든 item을 찾아서 반환
Copy link
Member

Choose a reason for hiding this comment

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

.collect(Collectors.toList()); -> .toList()
자바 17 버전부터는 위 방법을 추천합니다!

class HellospringApplicationTests {

@Test
void contextLoads() {
Copy link
Member

Choose a reason for hiding this comment

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

흡 ㅠ 테스트 코드가 없어서 조금 아쉽네요

}

// 애플리케이션 시작 시 테스트 데이터를 추가합니다.
static {
Copy link
Member

Choose a reason for hiding this comment

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

호오 신박하군요.위 방법은 어떤식으로 동작하나요?

private String name;
private Long count;

@Builder
Copy link
Member

Choose a reason for hiding this comment

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

필요한 메서드에만 빌더 애너테이션 !👍

Copy link
Contributor

@coke98 coke98 left a comment

Choose a reason for hiding this comment

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

LGTM! 계층과 클래스를 잘 나누어 작성해주셨네요! 고생하셨습니다 :)


@PostMapping("items")
public void save(@RequestBody ItemDto itemDto) { //item의 종류와 개수를 등록
itemService.saveItem(itemDto);
Copy link
Contributor

Choose a reason for hiding this comment

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

서비스 계층을 분리해서 구현해주셨네요~! 메서드들이 잘 읽혀서 가독성이 좋습니다👍

}

@PatchMapping("items/{id}")
public void updateItemById(@PathVariable Long id, @RequestBody ItemDto itemDto) { //id번호에 해당하는 item의 종류나 개수를 수정
Copy link
Contributor

Choose a reason for hiding this comment

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

수정과 관련하여 어떤 분들은 put으로, 어떤 분들은 patch를 사용하시는 경우도 있었는데요. 둘은 실제 각각 어떤 경우에서 사용될 수 있을까요? 그렇다면 현재의 경우 put이 맞을까요? patch가 맞을까요? 둘간의 차이, 멱등성에 대한 설명과 함께 노션 링크로 답변 남겨주시면 감사하겠습니다~!

private Long count; // 물건의 개수(재고)

//Item 객체를 생성
@Builder
Copy link
Contributor

Choose a reason for hiding this comment

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

롬복 사용하셨네용~ 잘쓰면 가독성에도 좋지만, 나중에 혹시 무분별하게 사용된다면 고려해야할 점도 몇몇 생기긴합니다. setter뿐아니라 getter조차도 두지 말라는... 객체지향적 사고를 고민해보게된다면 롬복보다는 직접 게터를 쓰는게 마음 편할때가 생기긴하더라구요

[참고글 - getter 쓰지 말라고만 하고 가버리면 어떡해요]
https://velog.io/@backfox/getter-%EC%93%B0%EC%A7%80-%EB%A7%90%EB%9D%BC%EA%B3%A0%EB%A7%8C-%ED%95%98%EA%B3%A0-%EA%B0%80%EB%B2%84%EB%A6%AC%EB%A9%B4-%EC%96%B4%EB%96%A1%ED%95%B4%EC%9A%94


@Data
@NoArgsConstructor
public class ItemDto { //데이터(정보)를 주고 받을 때 사용
Copy link
Contributor

Choose a reason for hiding this comment

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

dto와 엔티티를 구분해주신 점도 좋았습니다


import java.util.List;

public interface ItemRepository {
Copy link
Contributor

Choose a reason for hiding this comment

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

인터페이스도 잘 활용해주셨네요 LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants