-
Notifications
You must be signed in to change notification settings - Fork 14
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
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this 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을 찾아서 반환 |
There was a problem hiding this comment.
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() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
흡 ㅠ 테스트 코드가 없어서 조금 아쉽네요
} | ||
|
||
// 애플리케이션 시작 시 테스트 데이터를 추가합니다. | ||
static { |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
필요한 메서드에만 빌더 애너테이션 !👍
There was a problem hiding this 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); |
There was a problem hiding this comment.
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의 종류나 개수를 수정 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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 { //데이터(정보)를 주고 받을 때 사용 |
There was a problem hiding this comment.
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 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
인터페이스도 잘 활용해주셨네요 LGTM
HelloController를 통해 홈페이지에 입력 내용이 출력이 잘 되는지 확인했습니다.
ItemController를 통해 상품의 이름과 개수를 입력하고, 목록 조회 및 수정, 삭제 등이 가능하도록 했습니다.