본문 바로가기

카테캠10

[카카오테크캠퍼스] 4주차 과제 코드리뷰 정리 내 질문Q1. menu 수정 메서드를 필드별로 구현해야할지 아니면 지금처럼 menu 전체를 수정하는 메서드로 구현해도 괜찮은지A.요구사항에 따라 다르다. 한꺼번에 수정하는 것이 주요하다면 통으로, 각각 나누어 수정하는 경우가 갖다면 나누어 구현하는게 좋다. Q2. 객체 생성을 위한 DTO와 수정을 위한 DTO를 따로 만들어야 하나요A.이것도 경우에 따라 다른데 이와 같은 고민이 드는 경우라면 분리하는 것이 좋다. Q3. 메뉴를 추가할 때 카테고리 객체 통째로 받는게 좋을지 아니면 카테고리 id만 받는게 좋은지A.카테고리 id는 같지만 이름이 다른 객체가 들어오면 곤란해진다. 이런 문제도 있고, 클라이언트의 편의를 위해서 id만 전달하는 것이 좋을 것 같다. 피드백Rest api prefix 변경이건 칭찬.. 2024. 9. 3.
[카카오테크캠퍼스] 3주차 과제 코드리뷰 정리 내 질문Q1실제 기능에서는 getter가 필요하지 않는데, 테스트를 위해서는 필요한 경우가 있다. 이 때 테스트를 위해서 보안을 조금 포기하더라도 getter을 만드는 것이 좋은지 궁금합니다. A.필요하면 만들어야하긴하지만, 값을 꼭 꺼내어 확인해야하는지 고민해보아야한다. 특히 값이 바뀌는 것에 대한 테스트는 굳이 필요하지 않을수도 있기 때문이다.  Q2이번 작업과 같이 한 도메인에서 특정 기능을 만들 때 commit를 도메인 단위로 하는게 좋은지 아니면 controller, service단위로 하는지 궁금합니다. A.commit는 문제가 발생했을 때 롤백 지점을 쉽게 잡기 위한 포인트읻. 나중에 "이쯤에서 롤백하면 되겠네"가 편하도록 단위를 정하자 피드백equlas, hashcode로 동등성을 부여하자.. 2024. 9. 3.
[기획 프로젝트] Hire Higher - 외국인 노동자를 위한 구인구직 서비스 보호되어 있는 글 입니다. 2024. 8. 31.
[카카오테크캠퍼스] JPA 연관관계 매핑 참고!객체는 파스칼 표기법(Line, Station,LineStation)을 따르고, 테이블은 스네이크 표기법을 따른다(line, station, line_station) 단방향 : 회원 -> 팀, 팀 -> 회원 둘 중 한 쪽만 참조하는 것양방향 : 회원 -> 팀, 팀 -> 회원 둘 다 참조하는 것 방향은 객체관계에서만 존재하고, 테이블 관계는 항상 양방향이다. 다중성다대일 일대다 일대일, 다대다가 있다. 연관관계 주인객체를 양방향 연관관계로 만들면 연관관계의 주인을 정해야한다. 단방향 연관관계 다대일 단방향 관계 회원과 팀이 있다.회원은 하나의 팀에만 소속될 수 있다.회원과 팀은 다대일 관계이다. 객체 연관관계회원 객체는 Member.team필드를 통해 팀을 알 수 있지만, 반대로 팀은 회원을 알 수 .. 2024. 7. 16.
[카카오테크캠퍼스] JPA 엔티티 매핑, 영속성 컨텍스트 JDBC는 쿼리문을 써주고, Repository를 직접 써줘야했지만, JPA는 이를 훨씬 간편하게 구현할 수 있게 해준다. SQL을 직접 다룰 때의 문제점새로운 필드가 추가되면 관련된 SQL을 다 수정해야한다. 또한 개발자들이 엔티티를 신뢰하고 사용할 수 없다. 스키마 생성하는 방법 application.properties에 spring.jpa.hibernate.ddl-auto=create이를 추가한다. create: 기존 테이블 삭제 후 다시 생성 (DROP + CREATE)create-drop: create와 같으나 종료시점에 테이블 DROPupdate: 변경된 부분만 반영 (운영 DB에 사용하면 안됌)validate: entity와 table이 정상 매핑되었는지만 확인none: 사용하지 않음  @E.. 2024. 7. 13.
[카카오테크캠퍼스] 2주차 과제 코드리뷰 정리 1. 페이지 응답을 담당하는 핸들러와 클라이언트의 요청을 받는 핸들러를 분리하자처음에는 한 엔티티에 대한 컨트롤러가 하나여야한다고 생각했어서 어떤 것을 고쳐야하는지 잘 몰랐었는데, 팀원분들께 물어보니까 컨트롤러를 2개 만들어도 된다고 하셨다. 그래서 @RestController을 쓰는 컨트롤러, @Controller을 쓰는 컨트롤러 이렇게 2가지를 만들었다.@Controller@RequestMapping("/menus/view")public class MenuController { private final MenuService menuService; public MenuController(MenuService menuService) { this.menuService = menuSe.. 2024. 7. 11.