본문 바로가기

분류 전체보기260

Plmography 프로젝트 작업 로그 #42 - 배열로 된 데이터 서버로 보내기 (23.02.01 TIL) DB 에 있는 @ElementCollection 으로 묶어준 데이터를 프론트로 보내야 하는 일이 생겼다. 객체로 보낼 수도 있지만 그 객체 안에 담겨있는 id 값을 다시 사용하기 위해서는 배열로 보내는 편이 훨씬 낫다. 일단 원본은 User 엔티티에서 VO(값 객체) 타입으로 되어 있는 Set 배열 데이터이다. // User Entity @ElementCollection private Set wishContentIds = new HashSet(); @ElementCollection private Set watchedContentIds = new HashSet(); @ElementCollection private Set favoriteContentIds = new HashSet(); 프론트에서 특정 유저 .. 2023. 2. 1.
Plmography 프로젝트 작업 로그 #41 - JPQL 에서 exists 문법 사용하기 (23.01.31 TIL) 오늘은 팔로우, 팔로우 취소 기능을 구현하면서 발생한 이슈에 대해 기록해보자. 일단 내가 원한 것은 팔로우 혹은 팔로우 취소를 누르면 만들어놓은 메서드를 통해 DB 에서 id 값을 조회해서 status 가 true 혹은 false 로 변경되는 플래그를 만드는 것이었다. 그래서 JPA 에서 지원하는 existsBy 메서드를 아래와 같이 만들고 어플리케이션을 실행시켜 보았는데 플래그에는 전혀 변경되는 사항이 없었다. boolean existsByUserIdAndFollowingId(UserId userId, FollowingId followingId); 그래서 조금 더 쿼리문을 정확히 해주기 위해 JPQL 을 사용했는데, 아래와 같은 오류가 떴다. 확인해보니 JPQL 에서는 select exists 문법은 .. 2023. 1. 31.
1월 3~4번째 주간회고 (feat. Plmography 프로젝트 5주차) 5주차가 끝이 난 어제. 사실 일주일 전이 5주차이고 지난 주가 6주차였지만 설날 연휴가 끼어있는 덕분에 일주일을 더 벌었다. 이제 이번주까지만 기능 구현에 매달리고 다음 주부터는 CSS 작업을 진행해야 하는데 데모데이 전까지 MVP 구현에 집중하겠다고 한 내 계획이 절반 정도는 완성된 것 같다. 제일 중요하게 생각했던 탐색 페이지 (필터링, 정렬) 구현과 컨텐츠 상세 페이지 구현이 끝났기 때문이다. 이제 부가적인 기능들만 일주일 안에 최대한 뽑아놔야 한다. 대충 먹인 스타일링으로 아직은 어색한 페이지들..^^ 일주일만 조금 더 스퍼트 내보자! 화이팅!!! 2023. 1. 30.
Plmography 프로젝트 작업 로그 #40 - 탐색 페이지 필터링 구현 (23.01.30 TIL) 두려워하던 탐색 페이지 필터링 및 정렬 구현이 끝났다. (+검색 기능도 추가) 2기 분들과 우리 3기 동기들이 Specification 을 사용한 것을 보고 구현해봤는데 주말부터 오늘까지 매달려서 테스트 코드 작성까지 완료했다. 구현 중 살짝 어려움을 겪었던 카테고리 파트. 정확히 이해를 못하다가 sql 문법과 같은 like, and, between 이라는 것을 깨달았다. Specification spec = (root, query, criteriaBuilder) -> null; if (platform != null) { spec = spec.and(ContentSpecification.likePlatform(platform)); } if (type != null) { spec = spec.and(Con.. 2023. 1. 30.
Plmography 프로젝트 작업 로그 #39 - 비즈니스 로직 테스트 코드는 확실하게! (23.01.20 TIL) 이번 주 월요일에 있었던 스프린트 점검에서 홀맨님께서 비즈니스 로직이 담긴 스토어나 모델의 테스트 코드는 먼저 짜고 넘어가라는 말씀을 주셨었다. UI 쪽이 있는 컴포넌트나 페이지 테스트는 화면이 어떻게 출력되는지만 봐도 되지만 비즈니스 로직은 꼭 먼저 작성하라고 하셨기 때문에 몇몇개의 스토어들의 테스트가 없었던 당시 조금 찔렸었던 기억이 있다. 구현에 급급해서 초반에만 테스트 코드를 작성하다가 나중에는 살짝 넘어갔던 부분들이 있었는데 상세 페이지의 구현이 끝난 만큼 그동안 미뤄왔던 테스트 코드의 빚을 갚기 위해 오늘은 프론트 테스트 코드를 다듬기로 했다. 전체 테스트를 돌리자마자 중간에 코드 구조를 몇 번 바꾼 만큼 테스트 몇개가 실패한 게 보였는데 대부분 구현에 조금 어려움을 겪었던 것들이라 다시 한번.. 2023. 1. 20.
Plmography 프로젝트 작업 로그 #38 - 상세 페이지 구현 완료 (23.01.19 TIL) 오늘은 드!!!!!!디어 이번 주 목표였던 상세 페이지 구현을 완료했다. 컨텐츠 정보와 함께 리뷰 작성, 수정 및 삭제를 할 수 있고 다른 사람이 쓴 리뷰에 좋아요를 누르거나 댓글을 달 수 있다. 해당 컨텐츠에 관한 포스팅도 볼 수 있다. 처음에 헤더를 만들 때 스타일링에 너무 신경을 써서 진도를 못나갔기 때문에 이제 그런 부분에 대한 집착은 버렸다. 그래서 스타일링도 거의 하지 않아 조금은 조잡해보이긴 하지만~ 그건 최종 마지막에 신경쓰기로 하고! 이제 미흡한 테스트들을 다듬고 대망의 탐색 페이지로 들어가야겠다. 이게 뭐라고 이렇게 오래 걸렸나 싶기도 하지만 내 숙련도 문제였기 때문에 어쩔 수 없다고 생각한다(ㅎㅎ). 트레이너분 말씀처럼 시간이 해결해줄 문제에 매달리지 말고 내 속도에 맞춰서 계속 달려.. 2023. 1. 19.