From 6de26081ca21af1cc1460e373fb357aee9628b78 Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 9 Nov 2025 17:48:47 +0900 Subject: [PATCH 01/12] =?UTF-8?q?feat:=20=EB=8F=84=EC=BB=A4=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 9 +++++++++ src/main/resources/application.yml | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4cc9fec --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM eclipse-temurin:17 + +WORKDIR /app + +COPY build/libs/*.jar app.jar + +EXPOSE 8080 + +ENTRYPOINT ["java", "-Dspring.profiles.active=dev", "-jar", "app.jar"] diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e3c312c..713047c 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: include: private - active: dev # prod (배포 환경) + active: local # prod (배포 환경) From d767c3ec2092287b3c72f56d4bfdb06ae64f5386 Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 9 Nov 2025 18:16:10 +0900 Subject: [PATCH 02/12] =?UTF-8?q?tmp:=20dev=20cd=20=ED=8A=B8=EB=A6=AC?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/wooteco/wiki/WikiApplication.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/wooteco/wiki/WikiApplication.java b/src/main/java/com/wooteco/wiki/WikiApplication.java index 29c2808..ab35129 100644 --- a/src/main/java/com/wooteco/wiki/WikiApplication.java +++ b/src/main/java/com/wooteco/wiki/WikiApplication.java @@ -9,5 +9,4 @@ public class WikiApplication { public static void main(String[] args) { SpringApplication.run(WikiApplication.class, args); } - } From f847f66a6fb9292d6edc36e895f5dfcf8563448b Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 9 Nov 2025 18:31:46 +0900 Subject: [PATCH 03/12] =?UTF-8?q?tmp:=20dev=20cd=20=ED=8A=B8=EB=A6=AC?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/wooteco/wiki/WikiApplication.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/wooteco/wiki/WikiApplication.java b/src/main/java/com/wooteco/wiki/WikiApplication.java index ab35129..29c2808 100644 --- a/src/main/java/com/wooteco/wiki/WikiApplication.java +++ b/src/main/java/com/wooteco/wiki/WikiApplication.java @@ -9,4 +9,5 @@ public class WikiApplication { public static void main(String[] args) { SpringApplication.run(WikiApplication.class, args); } + } From 4c26dd0dee5b5304b432c09474b406f6b623c2ca Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 9 Nov 2025 19:33:15 +0900 Subject: [PATCH 04/12] =?UTF-8?q?tmp:=20dev=20cd=20=ED=8A=B8=EB=A6=AC?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/wooteco/wiki/WikiApplication.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/wooteco/wiki/WikiApplication.java b/src/main/java/com/wooteco/wiki/WikiApplication.java index 29c2808..ab35129 100644 --- a/src/main/java/com/wooteco/wiki/WikiApplication.java +++ b/src/main/java/com/wooteco/wiki/WikiApplication.java @@ -9,5 +9,4 @@ public class WikiApplication { public static void main(String[] args) { SpringApplication.run(WikiApplication.class, args); } - } From 5534cbf7bca3ea82c8089d0baee275c166bb0478 Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 9 Nov 2025 19:40:44 +0900 Subject: [PATCH 05/12] =?UTF-8?q?tmp:=20dev=20cd=20=ED=8A=B8=EB=A6=AC?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/wooteco/wiki/WikiApplication.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/wooteco/wiki/WikiApplication.java b/src/main/java/com/wooteco/wiki/WikiApplication.java index ab35129..29c2808 100644 --- a/src/main/java/com/wooteco/wiki/WikiApplication.java +++ b/src/main/java/com/wooteco/wiki/WikiApplication.java @@ -9,4 +9,5 @@ public class WikiApplication { public static void main(String[] args) { SpringApplication.run(WikiApplication.class, args); } + } From 30beb53a922e04e78f7b0e2ba09cfb426ff6aee4 Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 9 Nov 2025 19:51:52 +0900 Subject: [PATCH 06/12] =?UTF-8?q?tmp:=20dev=20cd=20=ED=8A=B8=EB=A6=AC?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/wooteco/wiki/WikiApplication.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/wooteco/wiki/WikiApplication.java b/src/main/java/com/wooteco/wiki/WikiApplication.java index 29c2808..ab35129 100644 --- a/src/main/java/com/wooteco/wiki/WikiApplication.java +++ b/src/main/java/com/wooteco/wiki/WikiApplication.java @@ -9,5 +9,4 @@ public class WikiApplication { public static void main(String[] args) { SpringApplication.run(WikiApplication.class, args); } - } From 94d39e6df1221b1ffc28e0e1a901e405b37e6a50 Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 9 Nov 2025 20:18:41 +0900 Subject: [PATCH 07/12] =?UTF-8?q?chore:=20.gitignore=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- src/main/resources/application-dev.yml | 22 ++++++++++++++++++++++ src/main/resources/application-local.yml | 0 src/main/resources/application-private.yml | 17 +++++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/application-dev.yml create mode 100644 src/main/resources/application-local.yml create mode 100644 src/main/resources/application-private.yml diff --git a/.gitignore b/.gitignore index 2071836..fa99f61 100644 --- a/.gitignore +++ b/.gitignore @@ -36,4 +36,4 @@ out/ ### VS Code ### .vscode/ -application-*.yml +application-prod.yml diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml new file mode 100644 index 0000000..773f800 --- /dev/null +++ b/src/main/resources/application-dev.yml @@ -0,0 +1,22 @@ +server: + port: 8080 + +spring: + datasource: + url: ${DEV_DB_URL} + username: ${DEV_DB_USERNAME} + password: ${DEV_DB_PASSWORD} + driver-class-name: com.mysql.cj.jdbc.Driver + + jpa: + hibernate: + ddl-auto: update + properties: + hibernate: + dialect: org.hibernate.dialect.MySQL8Dialect + +cors: + allowed-origins: http://localhost:3000, https://dev.crew-wiki.site, https://dev.api.crew-wiki.site + +swagger: + server-url: https://dev.api.crew-wiki.site diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/application-private.yml b/src/main/resources/application-private.yml new file mode 100644 index 0000000..fa7b38c --- /dev/null +++ b/src/main/resources/application-private.yml @@ -0,0 +1,17 @@ +security: + jwt: + token: + secret-key: ${JWT_SECRET_KEY} + expire-length: ${JWT_SECRET_EXPIRE_LENGTH} + +cloud: + aws: + credentials: + access-key: ${AWS_CREDENTIALS_ACCESS_KEY} + secret-key: ${AWS_CREDENTIALS_SECRET_KEY} + s3: + bucket: ${S3_BUCKET} + region: + static: ap-northeast-2 + stack: + auto: false From b81911597d7015ae43db731a3a617e5364aa4b99 Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 9 Nov 2025 20:25:53 +0900 Subject: [PATCH 08/12] =?UTF-8?q?chore:=20.gitignore=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index fa99f61..2071836 100644 --- a/.gitignore +++ b/.gitignore @@ -36,4 +36,4 @@ out/ ### VS Code ### .vscode/ -application-prod.yml +application-*.yml From cb69ae2739542bbaaf58941a0e56c5d7daeb1fb1 Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 9 Nov 2025 20:44:09 +0900 Subject: [PATCH 09/12] =?UTF-8?q?tmp:=20dev=20cd=20=ED=8A=B8=EB=A6=AC?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/wooteco/wiki/WikiApplication.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/wooteco/wiki/WikiApplication.java b/src/main/java/com/wooteco/wiki/WikiApplication.java index ab35129..29c2808 100644 --- a/src/main/java/com/wooteco/wiki/WikiApplication.java +++ b/src/main/java/com/wooteco/wiki/WikiApplication.java @@ -9,4 +9,5 @@ public class WikiApplication { public static void main(String[] args) { SpringApplication.run(WikiApplication.class, args); } + } From 2aa974ec7ad50e3912319157f08ed2c5e966409c Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Mon, 17 Nov 2025 16:14:39 +0900 Subject: [PATCH 10/12] =?UTF-8?q?feat:=20=EB=AC=B8=EC=84=9C=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20=EC=9A=94=EC=B2=AD=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20(id=20->=20uuid)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wiki/admin/controller/AdminController.java | 9 +++++---- .../com/wooteco/wiki/admin/service/AdminService.java | 7 +++---- .../wiki/document/repository/DocumentRepository.java | 2 ++ .../wiki/document/service/DocumentService.java | 12 ++++++------ .../wiki/document/service/DocumentServiceTest.java | 8 ++++---- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/wooteco/wiki/admin/controller/AdminController.java b/src/main/java/com/wooteco/wiki/admin/controller/AdminController.java index a6226b5..07ce2be 100644 --- a/src/main/java/com/wooteco/wiki/admin/controller/AdminController.java +++ b/src/main/java/com/wooteco/wiki/admin/controller/AdminController.java @@ -4,6 +4,7 @@ import com.wooteco.wiki.global.common.ApiResponse; import com.wooteco.wiki.global.common.ApiResponseGenerator; import io.swagger.v3.oas.annotations.Operation; +import java.util.UUID; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -20,10 +21,10 @@ public AdminController(AdminService adminService) { this.adminService = adminService; } - @Operation(summary = "문서 삭제", description = "문서 ID로 문서를 삭제합니다.") - @DeleteMapping("/documents/{documentId}") - public ApiResponse> deleteDocumentByDocumentId(@PathVariable Long documentId) { - adminService.deleteDocumentByDocumentId(documentId); + @Operation(summary = "문서 삭제", description = "문서 Uuid로 문서를 삭제합니다.") + @DeleteMapping("/documents/{documentUuid}") + public ApiResponse> deleteDocumentByDocumentId(@PathVariable UUID documentUuid) { + adminService.deleteDocumentByDocumentUuid(documentUuid); return ApiResponseGenerator.success(HttpStatus.NO_CONTENT); } } diff --git a/src/main/java/com/wooteco/wiki/admin/service/AdminService.java b/src/main/java/com/wooteco/wiki/admin/service/AdminService.java index e947a3a..53d27e3 100644 --- a/src/main/java/com/wooteco/wiki/admin/service/AdminService.java +++ b/src/main/java/com/wooteco/wiki/admin/service/AdminService.java @@ -1,8 +1,7 @@ package com.wooteco.wiki.admin.service; import com.wooteco.wiki.document.service.DocumentService; -import com.wooteco.wiki.global.exception.ErrorCode; -import com.wooteco.wiki.global.exception.WikiException; +import java.util.UUID; import org.springframework.stereotype.Service; @Service @@ -14,7 +13,7 @@ public AdminService(DocumentService documentService) { this.documentService = documentService; } - public void deleteDocumentByDocumentId(Long documentId) { - documentService.deleteById(documentId); + public void deleteDocumentByDocumentUuid(UUID documentUuid) { + documentService.deleteByUuid(documentUuid); } } diff --git a/src/main/java/com/wooteco/wiki/document/repository/DocumentRepository.java b/src/main/java/com/wooteco/wiki/document/repository/DocumentRepository.java index 628297b..d1e1e1a 100644 --- a/src/main/java/com/wooteco/wiki/document/repository/DocumentRepository.java +++ b/src/main/java/com/wooteco/wiki/document/repository/DocumentRepository.java @@ -26,4 +26,6 @@ public interface DocumentRepository extends JpaRepository { Optional findIdByUuid(@Param("uuid") UUID documentUuid); List findAllByUuidIn(Set uuids); + + void deleteByUuid(UUID documentUuid); } diff --git a/src/main/java/com/wooteco/wiki/document/service/DocumentService.java b/src/main/java/com/wooteco/wiki/document/service/DocumentService.java index d42c524..7344526 100644 --- a/src/main/java/com/wooteco/wiki/document/service/DocumentService.java +++ b/src/main/java/com/wooteco/wiki/document/service/DocumentService.java @@ -106,12 +106,6 @@ public DocumentResponse put(UUID uuid, DocumentUpdateRequest request) { return mapToResponse(document); } - public void deleteById(Long id) { - documentRepository.findById(id) - .orElseThrow(() -> new WikiException(ErrorCode.DOCUMENT_NOT_FOUND)); - documentRepository.deleteById(id); - } - public void flushViews(Map views) { List documents = documentRepository.findAllByUuidIn(views.keySet()); @@ -126,6 +120,12 @@ public void flushViews(Map views) { documentRepository.saveAll(documents); } + public void deleteByUuid(UUID documentUuid) { + documentRepository.findByUuid(documentUuid) + .orElseThrow(() -> new WikiException(ErrorCode.DOCUMENT_NOT_FOUND)); + documentRepository.deleteByUuid(documentUuid); + } + private DocumentResponse mapToResponse(Document document) { long latestVersion = historyService.findLatestVersionByDocument(document); List organizationDocumentResponses = diff --git a/src/test/java/com/wooteco/wiki/document/service/DocumentServiceTest.java b/src/test/java/com/wooteco/wiki/document/service/DocumentServiceTest.java index ac7502b..87cfd7c 100644 --- a/src/test/java/com/wooteco/wiki/document/service/DocumentServiceTest.java +++ b/src/test/java/com/wooteco/wiki/document/service/DocumentServiceTest.java @@ -246,8 +246,8 @@ void findAll_throwsException_byNegativeNumber() { } @Nested - @DisplayName("문서 id로 삭제 기능") - class deleteById { + @DisplayName("문서 uuid로 삭제 기능") + class deleteByUuid { @DisplayName("존재하는 문서 id일 경우 문서가 로그들과 함께 삭제된다") @Test @@ -262,7 +262,7 @@ void deleteById_success_byExistsId() { assertThat(historyRepository.findAll()).hasSize(1); // when - documentService.deleteById(documentResponse.getDocumentId()); + documentService.deleteByUuid(documentResponse.getDocumentUUID()); // after then assertThat(documentRepository.findAll()).hasSize(0); @@ -274,7 +274,7 @@ void deleteById_success_byExistsId() { void deleteById_throwsException_byNonExistsId() { // when & then WikiException ex = assertThrows(WikiException.class, - () -> documentService.deleteById(Long.MAX_VALUE)); + () -> documentService.deleteByUuid(UUID.randomUUID())); assertThat(ex.getErrorCode()).isEqualTo(DOCUMENT_NOT_FOUND); } } From 9ece70907c18a6b6fe8931a50a60733dee067e37 Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 14 Dec 2025 16:50:36 +0900 Subject: [PATCH 11/12] =?UTF-8?q?feat:=20local=20yml=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-local.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index e69de29..100b669 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -0,0 +1,24 @@ +spring: + datasource: + url: jdbc:h2:mem:testdb;MODE=MySQL + driver-class-name: org.h2.Driver + + jpa: + hibernate: + ddl-auto: update + open-in-view: false + properties: + hibernate: + dialect: org.hibernate.dialect.H2Dialect + + h2: + console: + enabled: true + path: /h2-console + + +cors: + allowed-origins: http://localhost:3000, https://dev.crew-wiki.site, https://dev.api.crew-wiki.site + +swagger: + server-url: https://dev.api.crew-wiki.site From 5e1e391ad2da67c6046c2119139d4b59328b0bd8 Mon Sep 17 00:00:00 2001 From: "2jin2.1031" <2jin2.1031@gmail.com> Date: Sun, 14 Dec 2025 17:24:06 +0900 Subject: [PATCH 12/12] =?UTF-8?q?tmp:=20cd=20=ED=8A=B8=EB=A6=AC=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/wooteco/wiki/WikiApplication.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/wooteco/wiki/WikiApplication.java b/src/main/java/com/wooteco/wiki/WikiApplication.java index 29c2808..ab35129 100644 --- a/src/main/java/com/wooteco/wiki/WikiApplication.java +++ b/src/main/java/com/wooteco/wiki/WikiApplication.java @@ -9,5 +9,4 @@ public class WikiApplication { public static void main(String[] args) { SpringApplication.run(WikiApplication.class, args); } - }