일개미 : 일상과 개발의 미학
[이노베이션 캠프] 7주차 회고록 본문
드디어..? 7주차까지 마감되었다....드디어라고 하기엔 너무 무서운 실전주차 시작....
부족한 실력이지만 마음맞는 사람 한분이라도 데려가려고 팀리더를 하게되었다 실전주차에 만난 팀원분들께 너무 감사한 마음,,
왠지 말을 많이하게 되서 귀찮을 법한 내용들도 공동의 프로젝트니 당연하겠지만 잘 따라와주시고 의견도 부족하지 않게 내주셔서 좋은 조합으로 만난 것 같다.
각설하고 지난 7주차는 클론코딩 주차로 사이트 하나를 정해서 말그대로 복제하는 것이다.
완전할 수 없겠지만 기능을 정해서 스코프를 축소하여 백엔드쪽에서도 데이터 활용이 좋은 샵 위주로 테슬라 홈페이지를 클론하였다.
크롤링을 할 데이터 항목이 좋지않아서 제일 고생하셨던 분도 계시고...장바구니 기능의 연관관계 때문에 머리 많이 아프셨던 분까지 ㅠㅠ
어떻게 보면 좀 무난한 기능을 많은 것 같아서 미안하기도 했고 감사하기도 했던 프로젝트였던 것 같다.
그렇게 완성된 메인 뷰 이미지..! 프론트 분들께서 완전 똑같이 잘해주셨다 ..!
내가 맡은 기능은 상품정보 조회 페이지, 카테고리를 포함한?
첨에 리스트 형식으로 API를 설계했기 때문에 그에 맞춰서 연관관계를 맺혀서 작성하려고 하니
Response 를 해결하는데 어려움이 있었다.......그냥 내가 못하는 거라서 그렇지만 builder를 사용해서 작성한 코드안에 같이 리스트형태로 담아보려고 하니 머리가 깨짐
아마 실전하면서도 레퍼런스를 더 찾아보고 연구해봐야 실전주차에 맡게되는 기능을 완벽히 구현할 수 있을 것 같다
그거 어떻게 하는건데......
아무튼 get요청 밖에 없어서 서비스단 부분적으로 코드 가져오자면 구성은 대충이렇다.
카테고리 테이블(entity)을 따로 만들지 않고 product 테이블에 컬럼으로 카테고리 값을 지정해서 넣어주고 필터링으로 걸러오게끔 구현했다.
@Transactional(readOnly = true)
public ResponseDto<?> getProductsByCategory(String category) {
if (category == null) {
return ResponseDto.fail("NOT_FOUND", "This page does not exist.");
}
List<Product> productList = productRepository.findAllByCategory(category);
List<ProductResponseDto> productResponseDtoList = new ArrayList<>();
for (Product product : productList) {
productResponseDtoList.add(
ProductResponseDto.builder()
.id(product.getId())
.productName(product.getProductName())
.price(product.getPrice())
.imageUrl(product.getImageUrl())
.build()
);
}
return ResponseDto.success(productResponseDtoList);
만약 카테고리가 우리가 한 방식처럼 대분류라고 해야할지? 하위 카테고리가 없다고 한다면 이 방식이 관리테이블을 줄이기에 최적화 방식일 수 있겠다. 테이블을 늘리지 않기 때문에
만약 카테고리 테이블 두고싶다면 태그 기능도 이와 비슷하기 때문에 다른 조원분께 여쭤보니 중간 다리 역할을 해주는 테이블을 만들어주면 비교적 쉽게 해결할 수 있다고 하셨다. PK와 FK로만 이루어진 테이블이랄까
그나저나 피드백으로는 @Transactional 을 사용하지 않을만한 곳도 다 썼다고 하셨다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
피드백 주신대로 한번 더 공부해야징..
어노테이션 잘 이해하고 쓰자^-^...만들면서 공부하는 코딩...
실전주차는 기존의 매니저님들이 떠나신다...가지마세요...😭 두려움과 맞이하는 실전주차...6주간 잘해보자...
'Innovation Camp' 카테고리의 다른 글
[이노베이션 캠프] 8주차 회고록_실전프로젝트(W8-1) (1) | 2022.09.25 |
---|---|
[이노베이션 캠프] 5주차 회고록 (0) | 2022.09.04 |
[이노베이션 캠프_서울] 4주차 회고 (0) | 2022.08.28 |