boOKshelf(소장도서관리pj)
-
[개인 프로젝트] n+1를 처음 마주친 사람boOKshelf(소장도서관리pj) 2025. 6. 18. 15:34
ERD를 또 수정했다.기능을 생각하다보니, 내가 일대다(1:N)라고 생각했던 관계가 다대다(N:M)인 경우가 있었다.구현을 위해 N:M을 1:N, 1:M으로 나눌 수 있도록 중간 테이블을 추가하였다.createdDate와 modifiedDate 같은 기본 부가 정보는 김영한 강사님의 Auditing 파트 강의를 참고해 BaseEntity로 만들어 자동으로 생성도록 했다.N+1 문제드디어 마주한 유명한 문제. n+1 문제를 만나게 되었다.1:n 연관관계에서의 @ManyToOne lazy loading 방식을 이용하면, 지연로딩의 특성상 연관된 데이터가 필요할 때가 되어서야 쿼리를 호출해서 부르기 때문에 연관관계에 엮어있는 필드 개수만큼 쿼리가 추가로 나간다고 하여 n+1 문제라고 이름지어졌다.프로젝트를 진..
-
[개인 프로젝트] boOKshelf를 뒤집어 엎기boOKshelf(소장도서관리pj) 2025. 4. 11. 00:28
4월이 되었습니다.작년에 자바를 잘 모르는 상태로 무작정 구상을 시작했던 도서 소장 관리 웹 서비스 bookshelf.JPA까지 수업을 들은 후에 아예 다시 갈아엎고 다시 시작했습니다.어떤 문제가 있었고, 어떻게 해결하고 있는지 중간과정을 정리해보려 합니다. 1. 일단 구현부터.???: "이것저것 새로운 기술을 써보고~", "차근차근 문서로 작성하면서~" 꿈이 거창했던 것 같습니다.처음부터 프로젝트의 전체를 바라볼 수 있는 관록이 전무하기 때문에, 서류는 서류대로, 개발은 개발대로 진행하게 되는 저의 모습을 보게 되었습니다. 오히려 문서화에 발이 묶여 개발도 미루게 되는 상황이 와서는 안된다는 판단 하에 가장 최소의 기능을 충족하는 서비스부터 일단 만들어보기로 했습니다. 소장 도서 관리 프로그램은 아주 ..
-
[Error]비동기로 api 호출 후 결과 받아오기(NaN 에러)boOKshelf(소장도서관리pj) 2024. 9. 23. 00:12
서버 api로 login이 잘 되었는지 확인하기 위해쿠키에 저장된 jwt 값을 decoding하여 userId 값을 받아오는 과정을 수행 중이었다.기대값은 userId 값인 (Number) 3 출력값은 자꾸 NaN 이 떴다. 백엔드에서 userId를 추출할 때는 문제가 없는데, 프론트로 반환값을 가져올 때 자꾸 NaN 에러가 뜨는 걸로 보였다.- response 그대로 출력해보면 response data는 뜨지만 값이 안뜬다.console.log(response);- Response.text()로 출력하면 Promise 객체 값이 나온다.console.log(response.text());내가 원하는 것은 맨 아래 있는 3인데 자꾸 저 안에 들어가서 나오자나뭐가 문젠건뎅 - 비동기 await으로 출력하면..
-
[Error]Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.boOKshelf(소장도서관리pj) 2024. 9. 20. 23:06
Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag. intelli j 가 만료돼서 community 버전으로 바꾸고 난 뒤,Setting > Build > Gradle > Build Tools 에서 빌드 툴을 intelliJ IDEA 로 바꾸었더니 발생한 문제였다.Gradle로 바꾸면 해당 문제가 발생하지 않는다. 해당 문제의 해결 방법은 이곳을 참고하였다.https://velog.io/@ghwns9991/%EC%8A%A4%ED%94%84%EB%..
-
기획 - 명세서 작성하기boOKshelf(소장도서관리pj) 2024. 9. 18. 04:44
명세서 작성을 위해 아이디어를 구체화해보았다.변경의 여지가 있지만 가장 작게 쪼개어 일단 기능이 되도록 구현하는 것이 목표다. 명세서 작성 계획 -1. 기능 명세서 작성-2. DB 설계서 작성-3. ERD 작성-4. API 설계서 작성 협업도 안하면서 왜 이것을 다 적는지 누군가 묻는다면...내가 처음부터 끝까지 차근차근 개발해본 경험이 없기 때문이다.이건 무조건 좋은 경험이 될 것임ㅇㅇ 처음 적어보는 것이기 때문에, 검색을 통해 참고한 부분들이 있다.참고한 사이트 : https://minbbal.tistory.com/감사합니다..1. 기능 명세서2. DB 설계서3. API 설계서(현재 개발하면서 수시로 수정중에 있다.)필요한 데이터만 고르는게 이렇게 힘들다니..........개발하다보니 검색이 가능하고..
-
개인pj-소장 도서 정리 웹 'boOKshelf' 개발하기boOKshelf(소장도서관리pj) 2024. 9. 18. 04:29
목표집에 있는 책을 검색해서 저장하고 조회하는 간단한 웹 어플리케이션[!note]향후 : 소장 도서에 대한 독서기록을 간단히 남기고, 독서습관을 추적하는 기능 추가하고 싶음개발 동기민음사 세계문학전집 수집하는 것이 취미 중 하나인데,점점 쌓이다보니 내가 어떤 것을 샀는지도 잊어버리는 지경이 되었다. 이 책들 이외에도 다양한 책이 있는데, 집에 책이 많다보니흥미로운 책을 발견했을 때 집에 있는지 확실히 알 수 없어 불편했다.집에 있는 도서들을 단순히 검색만으로도 소장하고 있는지 알 수 있다면 좋겠다라는 생각으로 구상하게 된 프로젝트.계획여태까지의 프로젝트는 거의 기획은 머릿 속으로만 하고, 개발하면서 구체화시켰다.이번 프로젝트에서는 기초부터 기획하여 개발하고 싶어서 명세서를 열심히 작성하였다.개발 환경여태..