From bba58ce9010f6568c2d24d13d48c6c67d0db94a3 Mon Sep 17 00:00:00 2001 From: bee-p Date: Mon, 18 Aug 2025 14:13:50 +0900 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20=EC=B1=85=EA=B0=88=ED=94=BC=EB=A5=BC?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=ED=96=88=EC=9D=84=20=EB=95=8C=20=EB=8F=85?= =?UTF-8?q?=EC=84=9C=EB=85=B8=ED=8A=B8=EA=B0=80=20=EC=95=88=20=EB=B6=88?= =?UTF-8?q?=EB=9F=AC=EC=99=80=EC=A7=80=EB=8D=98=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 위치정보가 없는 책갈피를 추가한 후 독서노트를 불러오면 NullPointerException으로 오류가 났던 상황 확인, 수정함 --- .../java/com/codecozy/server/service/BookService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/com/codecozy/server/service/BookService.java b/server/src/main/java/com/codecozy/server/service/BookService.java index b86ec63..5bc06fb 100644 --- a/server/src/main/java/com/codecozy/server/service/BookService.java +++ b/server/src/main/java/com/codecozy/server/service/BookService.java @@ -195,11 +195,17 @@ public ResponseEntity getReadingNote(Long memberId, String isbn int markPercent = converterService.pageToPercent(markPage, totalPage); String dateStr = converterService.dateToString(bookmark.getDate()); + String locationName = null; + LocationInfo locationInfo = bookmark.getLocationInfo(); + if (locationInfo != null) { + locationName = locationInfo.getPlaceName(); + } + bookmarks.add(new BookmarkPreviewResponse( dateStr, markPage, markPercent, - bookmark.getLocationInfo().getPlaceName(), + locationName, bookmark.getUuid() )); } From 9db03c619a35c8c1e689c6bd75225e0d4a72a126 Mon Sep 17 00:00:00 2001 From: bee-p Date: Mon, 18 Aug 2025 14:32:12 +0900 Subject: [PATCH 2/6] =?UTF-8?q?chore:=20=EB=B9=8C=EB=93=9C=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=20=EC=88=98=EC=A0=95=20(0.0.11v)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 위치정보 없는 책갈피 등록 시 독서노트가 안 불러와지는 현상 수정 --- server/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/build.gradle b/server/build.gradle index 7772957..695dab6 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -5,7 +5,7 @@ plugins { } group = 'com.codecozy' -version = '0.0.10-SNAPSHOT' +version = '0.0.11-SNAPSHOT' java { sourceCompatibility = '17' From 21cbf9c71958507a73b599e5f0c98ab531e66493 Mon Sep 17 00:00:00 2001 From: bee-p Date: Mon, 18 Aug 2025 14:36:54 +0900 Subject: [PATCH 3/6] =?UTF-8?q?test:=20=EC=B1=85=EB=B3=84=20=EB=8F=85?= =?UTF-8?q?=EC=84=9C=EB=85=B8=ED=8A=B8=20=EC=A1=B0=ED=9A=8C=20API=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 위치정보 없는 책갈피 등록 후 독서노트 정보 불러오기 상황 테스트 --- .../server/service/BookServiceTest.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/server/src/test/java/com/codecozy/server/service/BookServiceTest.java b/server/src/test/java/com/codecozy/server/service/BookServiceTest.java index b9addaa..e8a21c3 100644 --- a/server/src/test/java/com/codecozy/server/service/BookServiceTest.java +++ b/server/src/test/java/com/codecozy/server/service/BookServiceTest.java @@ -11,6 +11,8 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import java.util.ArrayList; +import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; @@ -257,6 +259,27 @@ void succeed2() { } } + @Test + @DisplayName("위치정보 없는 책갈피 등록 후 독서노트 정보 불러오기") + void getBookRecordWithBookmark() { + // given + Bookmark bookmark = Bookmark + .create(bookRecord, "3b7d", 50, null, LocalDate.of(2024, 12, 10)); + List bookmarks = new ArrayList<>(); + bookmarks.add(bookmark); + when(bookmarkRepository.findTop3ByBookRecordOrderByDateDesc(bookRecord)).thenReturn(bookmarks); + + // when + ResponseEntity response = bookService.getReadingNote(member.getMemberId(), book.getIsbn()); + + // then + GetReadingNoteResponse found = (GetReadingNoteResponse) response.getBody().getData(); + assertThat(found).isNotNull(); + assertThat(found.bookmarks().size()).isEqualTo(1); + assertThat(found.bookmarks().get(0).uuid()).isEqualTo("3b7d"); + assertThat(found.bookmarks().get(0).location()).isNull(); + } + @Test @DisplayName("북마크 수정 테스트") void modifyBookmark() { From bba7100941b39550f7015d9c2c2a09f7fd80386f Mon Sep 17 00:00:00 2001 From: Sowon Choi <68233618+bee-p@users.noreply.github.com> Date: Mon, 18 Aug 2025 15:07:57 +0900 Subject: [PATCH 4/6] =?UTF-8?q?remove:=20CI/CD=20workflow=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=EC=97=90=EC=84=9C=20CI=20=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PR은 협업자가 아님에도 외부에서 보낼 수 있고, 이 트리거를 통해 AWS에 악용 파일이 배포될 가능성이 있다고 생각해 CI와 CD를 분리함 --- .github/workflows/deploy-aws.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy-aws.yml b/.github/workflows/deploy-aws.yml index f22f705..d17304f 100644 --- a/.github/workflows/deploy-aws.yml +++ b/.github/workflows/deploy-aws.yml @@ -1,10 +1,8 @@ -name: CI/CD to AWS +name: CD to AWS on: push: branches: [ "release" ] - pull_request: - branches: [ "release" ] permissions: id-token: write @@ -45,11 +43,10 @@ jobs: "[3].aladin['item-id-type']": "${{ secrets.AL_ITEM_ID_TYPE }}" } - - name: Test and build bootJar + - name: Build bootJar working-directory: ./server run: | chmod +x ./gradlew - ./gradlew clean test -Dspring.profiles.active=test ./gradlew build -Dspring.profiles.active=prod -x test - name: 빌드한 파일 이름 저장 From 9f36e194b40256bebb25f929517a391175ccbfb0 Mon Sep 17 00:00:00 2001 From: Sowon Choi <68233618+bee-p@users.noreply.github.com> Date: Mon, 18 Aug 2025 15:11:57 +0900 Subject: [PATCH 5/6] =?UTF-8?q?refactor:=20CI=20=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..676d6af --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,27 @@ +name: CI + +on: + push: + branches: [ "release" ] + pull_request: + branches: [ "release" ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Load file in GitHub Repository + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Test file + working-directory: ./server + run: | + chmod +x ./gradlew + ./gradlew clean test -Dspring.profiles.active=test From 8856a083f88251bd254e358755be6080b13c757d Mon Sep 17 00:00:00 2001 From: Sowon Choi <68233618+bee-p@users.noreply.github.com> Date: Mon, 18 Aug 2025 15:12:36 +0900 Subject: [PATCH 6/6] =?UTF-8?q?fix:=20CD=20=EB=B9=8C=EB=93=9C=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-aws.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-aws.yml b/.github/workflows/deploy-aws.yml index d17304f..346c5e1 100644 --- a/.github/workflows/deploy-aws.yml +++ b/.github/workflows/deploy-aws.yml @@ -47,7 +47,7 @@ jobs: working-directory: ./server run: | chmod +x ./gradlew - ./gradlew build -Dspring.profiles.active=prod -x test + ./gradlew clean build -Dspring.profiles.active=prod -x test - name: 빌드한 파일 이름 저장 run: |