diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml new file mode 100644 index 0000000..52c0e49 --- /dev/null +++ b/.github/workflows/cd.yml @@ -0,0 +1,47 @@ +name: CD + +on: + workflow_run: + workflows: ["CI with Gradle"] # CI 워크플로우 이름과 정확히 일치해야 함 + types: [completed] + branches: [main] # main 브랜치에서 CI가 성공적으로 끝났을 때만 실행 + +permissions: + contents: read + +env: + IMAGE: ${{ secrets.DOCKER_USERNAME }}/bearchive # CI와 동일한 이미지명 사용 + +jobs: + deploy: + name: Deploy to Server + runs-on: ubuntu-latest + # CI 워크플로우가 실패하면 실행되지 않도록 조건 추가 + if: ${{ github.event.workflow_run.conclusion == 'success' }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + # SSH로 서버에 접속해 배포 + - name: Deploy over SSH + uses: appleboy/ssh-action@v1.2.0 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SERVER_SSH_KEY }} + port: 22 + script: | + echo "${{ secrets.ENV_FILE }}" > /home/${{ secrets.SERVER_USER }}/.env + echo "[1/3] Pull latest Docker image..." + docker pull ${{ env.IMAGE }}:latest + + echo "[2/3] Restart container with new image..." + docker stop bearchive || true + docker rm bearchive || true + docker run -d --name bearchive \ + --env-file /home/${{ secrets.SERVER_USER }}/.env \ + -p 8080:8080 \ + ${{ env.IMAGE }}:latest + + echo "[3/3] Cleanup unused images..." + docker image prune -f diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1aa9dab --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,86 @@ +name: CI with Gradle + +on: + pull_request: + branches: ["main"] # main 브랜치에 PR 이벤트 발생 시 CI 실행 + push: + branches: ["main"] # main 브랜치로 직접 push될 때도 CI 실행 + workflow_dispatch: # Actions 탭에서 수동 실행 버튼 제공 + +# 같은 브랜치에서 중복 실행되면 이전 빌드 취소 +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +# 전역 환경변수 +env: + JAVA_VERSION: '21' + IMAGE: ${{ secrets.DOCKER_USERNAME }}/bearchive # Docker Hub 이미지명 (소문자 필수) + +jobs: + build: + name: Build + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Temurin JDK + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: ${{ env.JAVA_VERSION }} + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build JAR + # 빌드할 모듈을 ':moamoa:' 로 명확히 지정 + run: ./gradlew :moamoa:bootJar -x test --no-daemon + + - name: Upload JAR artifact + uses: actions/upload-artifact@v4 + with: + name: app-jar + # JAR 파일의 경로를 'moamoa' 모듈의 빌드 경로로 변경 + path: moamoa/build/libs/*.jar + + docker-push: + name: Docker Build & Push + # 조건: PR 이벤트가 아니고 && 대상 브랜치가 main일 때만 이미지 푸시 + if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' + needs: build # 빌드 Job 성공 후에만 실행 + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Download JAR artifact + uses: actions/download-artifact@v4 + with: + name: app-jar + # ✅ [수정] 아티팩트를 다운로드할 위치도 맞춰주는 것이 좋습니다. + path: moamoa/build/libs + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build & Push image + uses: docker/build-push-action@v6 + with: + context: . + push: true + tags: | + ${{ env.IMAGE }}:latest + ${{ env.IMAGE }}:${{ github.sha }} diff --git a/.gitignore b/.gitignore index 5ca0973..301b3ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,54 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac ### .DS_Store +### 환경 변수, 시크릿 파일 ### +application-secret.properties +.env + +### 환경변수 파일 ### +**/application-secret.properties + +*.zip + +logs + +application.properties + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4972f32 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM eclipse-temurin:21-jre + +# 애플리케이션 실행 디렉토리 +WORKDIR /app + +# CI에서 만든 JAR 파일의 경로를 'moamoa' 모듈 경로로 변경 +COPY moamoa/build/libs/*.jar /app/app.jar + +# 실행 +ENTRYPOINT ["java","-jar","/app/app.jar"] diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..a4b76b9 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/moamoa/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties similarity index 94% rename from moamoa/gradle/wrapper/gradle-wrapper.properties rename to gradle/wrapper/gradle-wrapper.properties index 37f853b..9355b41 100644 --- a/moamoa/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/moamoa/gradlew b/gradlew old mode 100644 new mode 100755 similarity index 97% rename from moamoa/gradlew rename to gradlew index faf9300..f5feea6 --- a/moamoa/gradlew +++ b/gradlew @@ -86,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -205,7 +206,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. diff --git a/moamoa/gradlew.bat b/gradlew.bat similarity index 96% rename from moamoa/gradlew.bat rename to gradlew.bat index 9d21a21..9b42019 100644 --- a/moamoa/gradlew.bat +++ b/gradlew.bat @@ -1,94 +1,94 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem -@rem SPDX-License-Identifier: Apache-2.0 -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/moamoa/.gitignore b/moamoa/.gitignore deleted file mode 100644 index 551fe0a..0000000 --- a/moamoa/.gitignore +++ /dev/null @@ -1,49 +0,0 @@ -HELP.md -.gradle -build/ -!gradle/wrapper/gradle-wrapper.jar -!**/src/main/**/build/ -!**/src/test/**/build/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache -bin/ -!**/src/main/**/bin/ -!**/src/test/**/bin/ - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr -out/ -!**/src/main/**/out/ -!**/src/test/**/out/ - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ - -### VS Code ### -.vscode/ - -### Mac ### -.DS_Store - -### 환경 변수, 시크릿 파일 ### -application-secret.properties -.env - -### 환경변수 파일 ### -**/application-secret.properties - -*.zip \ No newline at end of file diff --git a/moamoa/gradle/wrapper/gradle-wrapper.jar b/moamoa/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 9bbc975..0000000 Binary files a/moamoa/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/moamoa/logs/app.log b/moamoa/logs/app.log deleted file mode 100644 index 91adf3e..0000000 --- a/moamoa/logs/app.log +++ /dev/null @@ -1,351 +0,0 @@ -2025-05-28T00:18:30.661+09:00 INFO 76289 --- [moamoa] [main] com.likelion.moamoa.MoamoaApplication : Starting MoamoaApplication using Java 21.0.5 with PID 76289 (/Users/juhan/Desktop/project/BeArchive/moamoa/build/classes/java/main started by juhan in /Users/juhan/Desktop/project/BeArchive/moamoa) -2025-05-28T00:18:30.663+09:00 INFO 76289 --- [moamoa] [main] com.likelion.moamoa.MoamoaApplication : No active profile set, falling back to 1 default profile: "default" -2025-05-28T00:18:31.162+09:00 INFO 76289 --- [moamoa] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-05-28T00:18:31.206+09:00 INFO 76289 --- [moamoa] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 39 ms. Found 6 JPA repository interfaces. -2025-05-28T00:18:31.566+09:00 INFO 76289 --- [moamoa] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2025-05-28T00:18:31.576+09:00 INFO 76289 --- [moamoa] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2025-05-28T00:18:31.576+09:00 INFO 76289 --- [moamoa] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.40] -2025-05-28T00:18:31.597+09:00 INFO 76289 --- [moamoa] [main] o.a.c.c.C.[.[localhost].[/moamoa] : Initializing Spring embedded WebApplicationContext -2025-05-28T00:18:31.597+09:00 INFO 76289 --- [moamoa] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 913 ms -2025-05-28T00:18:31.674+09:00 INFO 76289 --- [moamoa] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2025-05-28T00:18:31.704+09:00 INFO 76289 --- [moamoa] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.13.Final -2025-05-28T00:18:31.721+09:00 INFO 76289 --- [moamoa] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2025-05-28T00:18:31.864+09:00 INFO 76289 --- [moamoa] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2025-05-28T00:18:31.878+09:00 INFO 76289 --- [moamoa] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2025-05-28T00:18:32.116+09:00 INFO 76289 --- [moamoa] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@44a14de0 -2025-05-28T00:18:32.117+09:00 INFO 76289 --- [moamoa] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2025-05-28T00:18:32.166+09:00 WARN 76289 --- [moamoa] [main] org.hibernate.orm.deprecation : HHH90000025: MySQL8Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-05-28T00:18:32.167+09:00 WARN 76289 --- [moamoa] [main] org.hibernate.orm.deprecation : HHH90000026: MySQL8Dialect has been deprecated; use org.hibernate.dialect.MySQLDialect instead -2025-05-28T00:18:32.174+09:00 INFO 76289 --- [moamoa] [main] org.hibernate.orm.connections.pooling : HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] - Database driver: undefined/unknown - Database version: 8.0 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2025-05-28T00:18:32.672+09:00 INFO 76289 --- [moamoa] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2025-05-28T00:18:32.785+09:00 INFO 76289 --- [moamoa] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-05-28T00:18:33.228+09:00 WARN 76289 --- [moamoa] [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-05-28T00:18:33.267+09:00 DEBUG 76289 --- [moamoa] [main] s.w.s.m.m.a.RequestMappingHandlerMapping : 21 mappings in 'requestMappingHandlerMapping' -2025-05-28T00:18:33.310+09:00 DEBUG 76289 --- [moamoa] [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Patterns [/webjars/**, /**] in 'resourceHandlerMapping' -2025-05-28T00:18:33.324+09:00 DEBUG 76289 --- [moamoa] [main] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice -2025-05-28T00:18:33.354+09:00 DEBUG 76289 --- [moamoa] [main] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice -2025-05-28T00:18:33.451+09:00 INFO 76289 --- [moamoa] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/moamoa' -2025-05-28T00:18:33.457+09:00 INFO 76289 --- [moamoa] [main] com.likelion.moamoa.MoamoaApplication : Started MoamoaApplication in 3.032 seconds (process running for 3.629) -2025-05-28T00:18:34.068+09:00 INFO 76289 --- [moamoa] [http-nio-8080-exec-1] o.a.c.c.C.[.[localhost].[/moamoa] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-05-28T00:18:34.069+09:00 INFO 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2025-05-28T00:18:34.069+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected StandardServletMultipartResolver -2025-05-28T00:18:34.069+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected AcceptHeaderLocaleResolver -2025-05-28T00:18:34.069+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected FixedThemeResolver -2025-05-28T00:18:34.070+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator@24c94e95 -2025-05-28T00:18:34.070+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.support.SessionFlashMapManager@2c5e2a44 -2025-05-28T00:18:34.070+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data -2025-05-28T00:18:34.071+09:00 INFO 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms -2025-05-28T00:18:34.076+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : GET "/moamoa/user/1/folder", parameters={} -2025-05-28T00:18:34.081+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.folder.web.controller.FolderController#getAllByFolder(Long) -2025-05-28T00:18:34.438+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:18:34.440+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=200, data=FolderSummaryRes[userId=1, folderSummeryList=[FolderSummary[fol (truncated)...] -2025-05-28T00:18:34.483+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed 200 OK -2025-05-28T00:18:48.699+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] o.s.web.servlet.DispatcherServlet : POST "/moamoa/folder/1/reference", parameters={multipart} -2025-05-28T00:18:48.750+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.reference.web.controller.ReferenceController#SaveReference(Long, SaveReferenceReq) -2025-05-28T00:18:48.858+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.likelion.moamoa.global.exception.GlobalExceptionHandler#handleBusinessException(BaseException) -2025-05-28T00:18:48.858+09:00 ERROR 76289 --- [moamoa] [http-nio-8080-exec-3] c.l.m.g.e.GlobalExceptionHandler : BusinessError -2025-05-28T00:18:48.858+09:00 ERROR 76289 --- [moamoa] [http-nio-8080-exec-3] c.l.m.g.e.GlobalExceptionHandler : 이미 존재하는 파일명입니다. -2025-05-28T00:18:48.861+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:18:48.861+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ErrorResponse(httpStatus=409, data=null)] -2025-05-28T00:18:48.862+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.likelion.moamoa.domain.reference.exception.DuplicateImgNameException] -2025-05-28T00:18:48.863+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] o.s.web.servlet.DispatcherServlet : Completed 409 CONFLICT -2025-05-28T00:18:55.110+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : GET "/moamoa/folder/1/reference", parameters={multipart} -2025-05-28T00:18:55.170+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-4] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.reference.web.controller.ReferenceController#getAllReference(Long) -2025-05-28T00:18:55.355+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-4] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:18:55.362+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-4] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=200, data=ReferenceSummaryRes[folderId=1, referenceSummaryList=[Reference (truncated)...] -2025-05-28T00:18:55.375+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Completed 200 OK -2025-05-28T00:19:02.132+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : POST "/moamoa/recommendation", parameters={} -2025-05-28T00:19:02.136+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-5] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.recommendation.web.controller.RecommendationController#createRecommendation(CreateRecommendationReq) -2025-05-28T00:19:02.165+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-5] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json;charset=UTF-8" to [com.likelion.moamoa.domain.recommendation.web.dto.CreateRecommendationReq@14251abc] -2025-05-28T00:19:02.206+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-5] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.likelion.moamoa.global.exception.GlobalExceptionHandler#handleBusinessException(BaseException) -2025-05-28T00:19:02.206+09:00 ERROR 76289 --- [moamoa] [http-nio-8080-exec-5] c.l.m.g.e.GlobalExceptionHandler : BusinessError -2025-05-28T00:19:02.206+09:00 ERROR 76289 --- [moamoa] [http-nio-8080-exec-5] c.l.m.g.e.GlobalExceptionHandler : 이미 추천질문이 존재합니다. -2025-05-28T00:19:02.206+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-5] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:19:02.206+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-5] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ErrorResponse(httpStatus=409, data=null)] -2025-05-28T00:19:02.207+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-5] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.likelion.moamoa.domain.recommendation.exception.DuplicateRecommendationException] -2025-05-28T00:19:02.207+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Completed 409 CONFLICT -2025-05-28T00:19:06.184+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.web.servlet.DispatcherServlet : GET "/moamoa/recommendation/2", parameters={multipart} -2025-05-28T00:19:06.194+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.recommendation.web.controller.RecommendationController#getRecommendation(Long) -2025-05-28T00:19:06.207+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.likelion.moamoa.global.exception.GlobalExceptionHandler#handleBusinessException(BaseException) -2025-05-28T00:19:06.207+09:00 ERROR 76289 --- [moamoa] [http-nio-8080-exec-6] c.l.m.g.e.GlobalExceptionHandler : BusinessError -2025-05-28T00:19:06.207+09:00 ERROR 76289 --- [moamoa] [http-nio-8080-exec-6] c.l.m.g.e.GlobalExceptionHandler : 레퍼런스가 존재하지 않습니다. -2025-05-28T00:19:06.207+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:19:06.208+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ErrorResponse(httpStatus=404, data=null)] -2025-05-28T00:19:06.209+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.likelion.moamoa.domain.recommendation.exception.NotFoundReferenceException] -2025-05-28T00:19:06.209+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.web.servlet.DispatcherServlet : Completed 404 NOT_FOUND -2025-05-28T00:19:10.050+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] o.s.web.servlet.DispatcherServlet : GET "/moamoa/recommendation/2", parameters={multipart} -2025-05-28T00:19:10.056+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.recommendation.web.controller.RecommendationController#getRecommendation(Long) -2025-05-28T00:19:10.073+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.likelion.moamoa.global.exception.GlobalExceptionHandler#handleBusinessException(BaseException) -2025-05-28T00:19:10.073+09:00 ERROR 76289 --- [moamoa] [http-nio-8080-exec-7] c.l.m.g.e.GlobalExceptionHandler : BusinessError -2025-05-28T00:19:10.073+09:00 ERROR 76289 --- [moamoa] [http-nio-8080-exec-7] c.l.m.g.e.GlobalExceptionHandler : 레퍼런스가 존재하지 않습니다. -2025-05-28T00:19:10.073+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:19:10.074+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ErrorResponse(httpStatus=404, data=null)] -2025-05-28T00:19:10.075+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.likelion.moamoa.domain.recommendation.exception.NotFoundReferenceException] -2025-05-28T00:19:10.075+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] o.s.web.servlet.DispatcherServlet : Completed 404 NOT_FOUND -2025-05-28T00:19:16.872+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-8] o.s.web.servlet.DispatcherServlet : GET "/moamoa/recommendation/1", parameters={multipart} -2025-05-28T00:19:16.885+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-8] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.recommendation.web.controller.RecommendationController#getRecommendation(Long) -2025-05-28T00:19:16.918+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-8] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:19:16.927+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-8] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=200, data=RecommendationDetailRes[recommendationId=1, question=넷플릭스 드라마에서 (truncated)...] -2025-05-28T00:19:16.934+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-8] o.s.web.servlet.DispatcherServlet : Completed 200 OK -2025-05-28T00:19:30.448+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] o.s.web.servlet.DispatcherServlet : POST "/moamoa/chat", parameters={} -2025-05-28T00:19:30.451+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.chat.web.controller.ChatController#sendMessage(ChatMessageReq) -2025-05-28T00:19:30.460+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json;charset=UTF-8" to [com.likelion.moamoa.domain.chat.web.dto.ChatMessageReq@419140d2] -2025-05-28T00:19:30.643+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] o.s.web.client.RestTemplate : HTTP POST https://api.openai.com/v1/chat/completions -2025-05-28T00:19:30.650+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] o.s.web.client.RestTemplate : Accept=[application/json, application/cbor, application/*+json] -2025-05-28T00:19:30.651+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] o.s.web.client.RestTemplate : Writing [{max_tokens=200, temperature=0.7, messages=[{role=system, content=당신은 사용자의 창의적인 브레인스토밍을 적극적으로 돕는 AI 챗봇입니다. 사용자의 질문과 아이디어에 대해 단순히 정보를 제공하는 것을 넘어, 다양한 관점을 제시하고, 새로운 아이디어를 제안하며, 심층적인 질문을 통해 사용자의 생각을 확장하고 발전시키도록 유도하세요. 핵심은 '질문을 통해 다음 아이디어를 이끌어내는 것'입니다. 예를 들어, '이 아이디어의 장점은 무엇일까요?', '다른 방식으로 접근한다면?', '이 아이디어가 현실화될 때 예상되는 어려움은 무엇인가요?'와 같은 질문을 던지며 대화를 이어가세요. 당신은 항상 대화의 흐름을 주도하며 사용자의 아이디어가 구체화되고 풍부해지도록 돕습니다. 답변은 항상 완성된 문장으로 구성하며, 최대 4줄을 넘지 않도록 간결하게 작성해주세요. 현재 브레인스토밍 중인 추천 질문은 다음과 같습니다: 넷플릭스 드라마에서 백강혁의 역할이 시청자에게 깊은 인상을 남긴 이유는 무엇일까요?}, {role=user, content=다른 캐릭터들은 적자라고 싫어했던 백강혁을 나중에는 인정하게 돼 놀랍지?}, {role=user, content=다른 캐릭터들은 적자라고 싫어했던 백강혁을 나중에는 인정하게 돼 놀랍지?}], model=gpt-4o}] as "application/json" -2025-05-28T00:19:32.778+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] o.s.web.client.RestTemplate : Response 200 OK -2025-05-28T00:19:32.784+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] o.s.web.client.RestTemplate : Reading to [java.util.Map] -2025-05-28T00:19:32.821+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:19:32.822+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=201, data=ChatMessageRes[chatId=2, recommendationId=1, message=정말 흥미로운 전개 (truncated)...] -2025-05-28T00:19:32.830+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-9] o.s.web.servlet.DispatcherServlet : Completed 201 CREATED -2025-05-28T00:20:23.202+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] o.s.web.servlet.DispatcherServlet : POST "/moamoa/chat", parameters={} -2025-05-28T00:20:23.208+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.chat.web.controller.ChatController#sendMessage(ChatMessageReq) -2025-05-28T00:20:23.212+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json;charset=UTF-8" to [com.likelion.moamoa.domain.chat.web.dto.ChatMessageReq@16a51767] -2025-05-28T00:20:23.557+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] o.s.web.client.RestTemplate : HTTP POST https://api.openai.com/v1/chat/completions -2025-05-28T00:20:23.558+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] o.s.web.client.RestTemplate : Accept=[application/json, application/cbor, application/*+json] -2025-05-28T00:20:23.558+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] o.s.web.client.RestTemplate : Writing [{max_tokens=200, temperature=0.7, messages=[{role=system, content=당신은 사용자의 창의적인 브레인스토밍을 적극적으로 돕는 AI 챗봇입니다. 사용자의 질문과 아이디어에 대해 단순히 정보를 제공하는 것을 넘어, 다양한 관점을 제시하고, 새로운 아이디어를 제안하며, 심층적인 질문을 통해 사용자의 생각을 확장하고 발전시키도록 유도하세요. 핵심은 '질문을 통해 다음 아이디어를 이끌어내는 것'입니다. 예를 들어, '이 아이디어의 장점은 무엇일까요?', '다른 방식으로 접근한다면?', '이 아이디어가 현실화될 때 예상되는 어려움은 무엇인가요?'와 같은 질문을 던지며 대화를 이어가세요. 당신은 항상 대화의 흐름을 주도하며 사용자의 아이디어가 구체화되고 풍부해지도록 돕습니다. 답변은 항상 완성된 문장으로 구성하며, 최대 4줄을 넘지 않도록 간결하게 작성해주세요. 현재 브레인스토밍 중인 추천 질문은 다음과 같습니다: 넷플릭스 드라마에서 백강혁의 역할이 시청자에게 깊은 인상을 남긴 이유는 무엇일까요?}, {role=user, content=다른 캐릭터들은 적자라고 싫어했던 백강혁을 나중에는 인정하게 돼 놀랍지?}, {role=assistant, content=정말 흥미로운 전개네요. 그렇다면 백강혁의 어떤 행동이나 성격이 다른 캐릭터들의 마음을 변화시켰을까요? 그의 성장 과정이나 특정 사건이 그 변화에 어떻게 기여했는지 생각해볼 수 있을까요? 이 이야기가 시청자들에게 주는 교훈은 무엇일까요?}, {role=user, content=백강혁은 누구보다 뛰어나 그의 성장 과정은 드라마에 나오지 않았지만 지금 웹툰에서 진행하고 있어. 시청자들에게 정말 큰 교훈을 줄꺼야}, {role=user, content=백강혁은 누구보다 뛰어나 그의 성장 과정은 드라마에 나오지 않았지만 지금 웹툰에서 진행하고 있어. 시청자들에게 정말 큰 교훈을 줄꺼야}], model=gpt-4o}] as "application/json" -2025-05-28T00:20:26.807+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] o.s.web.client.RestTemplate : Response 200 OK -2025-05-28T00:20:26.810+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] o.s.web.client.RestTemplate : Reading to [java.util.Map] -2025-05-28T00:20:26.826+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:20:26.826+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=201, data=ChatMessageRes[chatId=4, recommendationId=1, message=흥미로운 전개네요! (truncated)...] -2025-05-28T00:20:26.828+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-10] o.s.web.servlet.DispatcherServlet : Completed 201 CREATED -2025-05-28T00:20:54.035+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : POST "/moamoa/chat", parameters={} -2025-05-28T00:20:54.041+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.chat.web.controller.ChatController#sendMessage(ChatMessageReq) -2025-05-28T00:20:54.046+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json;charset=UTF-8" to [com.likelion.moamoa.domain.chat.web.dto.ChatMessageReq@49a7cad0] -2025-05-28T00:20:54.079+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] o.s.web.client.RestTemplate : HTTP POST https://api.openai.com/v1/chat/completions -2025-05-28T00:20:54.080+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] o.s.web.client.RestTemplate : Accept=[application/json, application/cbor, application/*+json] -2025-05-28T00:20:54.080+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] o.s.web.client.RestTemplate : Writing [{max_tokens=200, temperature=0.7, messages=[{role=system, content=당신은 사용자의 창의적인 브레인스토밍을 적극적으로 돕는 AI 챗봇입니다. 사용자의 질문과 아이디어에 대해 단순히 정보를 제공하는 것을 넘어, 다양한 관점을 제시하고, 새로운 아이디어를 제안하며, 심층적인 질문을 통해 사용자의 생각을 확장하고 발전시키도록 유도하세요. 핵심은 '질문을 통해 다음 아이디어를 이끌어내는 것'입니다. 예를 들어, '이 아이디어의 장점은 무엇일까요?', '다른 방식으로 접근한다면?', '이 아이디어가 현실화될 때 예상되는 어려움은 무엇인가요?'와 같은 질문을 던지며 대화를 이어가세요. 당신은 항상 대화의 흐름을 주도하며 사용자의 아이디어가 구체화되고 풍부해지도록 돕습니다. 답변은 항상 완성된 문장으로 구성하며, 최대 4줄을 넘지 않도록 간결하게 작성해주세요. 현재 브레인스토밍 중인 추천 질문은 다음과 같습니다: 넷플릭스 드라마에서 백강혁의 역할이 시청자에게 깊은 인상을 남긴 이유는 무엇일까요?}, {role=user, content=다른 캐릭터들은 적자라고 싫어했던 백강혁을 나중에는 인정하게 돼 놀랍지?}, {role=assistant, content=정말 흥미로운 전개네요. 그렇다면 백강혁의 어떤 행동이나 성격이 다른 캐릭터들의 마음을 변화시켰을까요? 그의 성장 과정이나 특정 사건이 그 변화에 어떻게 기여했는지 생각해볼 수 있을까요? 이 이야기가 시청자들에게 주는 교훈은 무엇일까요?}, {role=user, content=백강혁은 누구보다 뛰어나 그의 성장 과정은 드라마에 나오지 않았지만 지금 웹툰에서 진행하고 있어. 시청자들에게 정말 큰 교훈을 줄꺼야}, {role=assistant, content=흥미로운 전개네요! 백강혁의 뛰어난 점이 무엇인지, 그리고 그가 어떻게 다른 캐릭터들에게 영향을 미치는지 더 깊이 탐구해보면 어떨까요? 웹툰에서 그의 성장 과정을 통해 시청자들이 어떤 구체적인 교훈을 얻을 수 있을까요? 또한, 그의 이야기를 통해 사람들이 어떤 감정적 또는 지적인 연결을 경험할 수 있을지 생각해보세요.}, {role=user, content=그는 사실 타고난 천재야. 사람을 살리겠다는 의지가 누구보다 대단해}, {role=user, content=그는 사실 타고난 천재야. 사람을 살리겠다는 의지가 누구보다 대단해}], model=gpt-4o}] as "application/json" -2025-05-28T00:20:57.005+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] o.s.web.client.RestTemplate : Response 200 OK -2025-05-28T00:20:57.006+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] o.s.web.client.RestTemplate : Reading to [java.util.Map] -2025-05-28T00:20:57.016+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:20:57.016+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=201, data=ChatMessageRes[chatId=6, recommendationId=1, message=백강혁의 천재성과 (truncated)...] -2025-05-28T00:20:57.017+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed 201 CREATED -2025-05-28T00:20:59.613+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : GET "/moamoa/chat/history/2", parameters={multipart} -2025-05-28T00:20:59.618+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.chat.web.controller.ChatController#getChatHistory(Long) -2025-05-28T00:20:59.633+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:20:59.633+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=200, data=[])] -2025-05-28T00:20:59.635+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed 200 OK -2025-05-28T00:21:05.628+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] o.s.web.servlet.DispatcherServlet : GET "/moamoa/chat/history", parameters={multipart} -2025-05-28T00:21:05.662+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped to ResourceHttpRequestHandler [classpath [META-INF/resources/], classpath [resources/], classpath [static/], classpath [public/], ServletContext [/]] -2025-05-28T00:21:05.668+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] o.s.w.s.r.ResourceHttpRequestHandler : Resource not found -2025-05-28T00:21:05.674+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.likelion.moamoa.global.exception.GlobalExceptionHandler#handleException(Exception) -2025-05-28T00:21:05.674+09:00 ERROR 76289 --- [moamoa] [http-nio-8080-exec-3] c.l.m.g.e.GlobalExceptionHandler : Exception Error - -org.springframework.web.servlet.resource.NoResourceFoundException: No static resource chat/history. - at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:585) ~[spring-webmvc-6.2.6.jar:6.2.6] - at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52) ~[spring-webmvc-6.2.6.jar:6.2.6] - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.2.6.jar:6.2.6] - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.2.6.jar:6.2.6] - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.2.6.jar:6.2.6] - at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.2.6.jar:6.2.6] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.40.jar:6.0] - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.2.6.jar:6.2.6] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.40.jar:6.0] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.40.jar:10.1.40] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.2.6.jar:6.2.6] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.6.jar:6.2.6] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.2.6.jar:6.2.6] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.6.jar:6.2.6] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.2.6.jar:6.2.6] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.6.jar:6.2.6] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:116) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.40.jar:10.1.40] - at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] - -2025-05-28T00:21:05.683+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:21:05.683+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ErrorResponse(httpStatus=500, data=null)] -2025-05-28T00:21:05.684+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.servlet.resource.NoResourceFoundException: No static resource chat/history.] -2025-05-28T00:21:05.685+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-3] o.s.web.servlet.DispatcherServlet : Completed 500 INTERNAL_SERVER_ERROR -2025-05-28T00:21:10.469+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : GET "/moamoa/chat/history/1", parameters={multipart} -2025-05-28T00:21:10.477+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-4] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.chat.web.controller.ChatController#getChatHistory(Long) -2025-05-28T00:21:10.504+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-4] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:21:10.504+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-4] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=200, data=[ChatMessageRes[chatId=1, recommendationId=1, message=다른 캐릭터들은 (truncated)...] -2025-05-28T00:21:10.506+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Completed 200 OK -2025-05-28T00:21:17.258+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.web.servlet.DispatcherServlet : POST "/moamoa/keywords/extract", parameters={} -2025-05-28T00:21:17.261+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.keyword.web.controller.KeywordController#extractKeyword(ExtractKeywordReq) -2025-05-28T00:21:17.272+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json;charset=UTF-8" to [com.likelion.moamoa.domain.keyword.web.dto.ExtractKeywordReq@3a121f62] -2025-05-28T00:21:17.307+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.web.client.RestTemplate : HTTP POST https://api.openai.com/v1/chat/completions -2025-05-28T00:21:17.307+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.web.client.RestTemplate : Accept=[application/json, application/cbor, application/*+json] -2025-05-28T00:21:17.308+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.web.client.RestTemplate : Writing [{max_tokens=200, messages=[{role=user, content=다음 텍스트에서 중요한 키워드 10개를 뽑고 각각 몇 번 나왔는지 세어서 '키워드:횟수,키워드:횟수' 형식으로만 답해줘. 예: 인공지능:3,데이터:2 - -다른 캐릭터들은 적자라고 싫어했던 백강혁을 나중에는 인정하게 돼 놀랍지? 정말 흥미로운 전개네요. 그렇다면 백강혁의 어떤 행동이나 성격이 다른 캐릭터들의 마음을 변화시켰을까요? 그의 성장 과정이나 특정 사건이 그 변화에 어떻게 기여했는지 생각해볼 수 있을까요? 이 이야기가 시청자들에게 주는 교훈은 무엇일까요? 백강혁은 누구보다 뛰어나 그의 성장 과정은 드라마에 나오지 않았지만 지금 웹툰에서 진행하고 있어. 시청자들에게 정말 큰 교훈을 줄꺼야 흥미로운 전개네요! 백강혁의 뛰어난 점이 무엇인지, 그리고 그가 어떻게 다른 캐릭터들에게 영향을 미치는지 더 깊이 탐구해보면 어떨까요? 웹툰에서 그의 성장 과정을 통해 시청자들이 어떤 구체적인 교훈을 얻을 수 있을까요? 또한, 그의 이야기를 통해 사람들이 어떤 감정적 또는 지적인 연결을 경험할 수 있을지 생각해보세요. 그는 사실 타고난 천재야. 사람을 살리겠다는 의지가 누구보다 대단해 백강혁의 천재성과 강한 의지는 그의 캐릭터를 더욱 매력적으로 만드네요. 그렇다면 그의 천재성이 어떤 방식으로 드라마의 갈등을 해결하는 데 기여할 수 있을까요? 그의 의지가 다른 캐릭터들에게 어떤 영향을 미치고, 그로 인해 생기는 변화는 무엇인지 생각해보면 좋겠습니다. 또한, 이러한 요소들이 시청자들에게 어떤 감정적 울림을 줄 수 있을지 탐구해보세요. }], model=gpt-4o}] as "application/json" -2025-05-28T00:21:19.025+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.web.client.RestTemplate : Response 200 OK -2025-05-28T00:21:19.026+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.web.client.RestTemplate : Reading to [java.util.Map] -2025-05-28T00:21:19.083+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:21:19.084+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=200, data=ExtractKeywordRes[folderId=1, keywordList=[ExtractKeyword[keywo (truncated)...] -2025-05-28T00:21:19.095+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-6] o.s.web.servlet.DispatcherServlet : Completed 200 OK -2025-05-28T00:21:29.279+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] o.s.web.servlet.DispatcherServlet : GET "/moamoa/keywords/folder/1", parameters={} -2025-05-28T00:21:29.290+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.keyword.web.controller.KeywordController#getKeywords(Long) -2025-05-28T00:21:29.313+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:21:29.314+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=200, data=KeywordSummaryRes[folderId=1, keywordList=[KeywordSummary[keywo (truncated)...] -2025-05-28T00:21:29.321+09:00 DEBUG 76289 --- [moamoa] [http-nio-8080-exec-7] o.s.web.servlet.DispatcherServlet : Completed 200 OK -2025-05-28T00:39:02.099+09:00 INFO 76289 --- [moamoa] [SpringApplicationShutdownHook] o.s.b.w.e.tomcat.GracefulShutdown : Commencing graceful shutdown. Waiting for active requests to complete -2025-05-28T00:39:02.188+09:00 INFO 76289 --- [moamoa] [tomcat-shutdown] o.s.b.w.e.tomcat.GracefulShutdown : Graceful shutdown complete -2025-05-28T00:39:02.284+09:00 INFO 76289 --- [moamoa] [SpringApplicationShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' -2025-05-28T00:39:02.317+09:00 INFO 76289 --- [moamoa] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... -2025-05-28T00:39:02.434+09:00 INFO 76289 --- [moamoa] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. -2025-05-28T00:39:08.688+09:00 INFO 86301 --- [moamoa] [main] com.likelion.moamoa.MoamoaApplication : Starting MoamoaApplication using Java 21.0.5 with PID 86301 (/Users/juhan/Desktop/project/BeArchive/moamoa/build/classes/java/main started by juhan in /Users/juhan/Desktop/project/BeArchive/moamoa) -2025-05-28T00:39:08.689+09:00 INFO 86301 --- [moamoa] [main] com.likelion.moamoa.MoamoaApplication : No active profile set, falling back to 1 default profile: "default" -2025-05-28T00:39:09.320+09:00 INFO 86301 --- [moamoa] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-05-28T00:39:09.365+09:00 INFO 86301 --- [moamoa] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 40 ms. Found 6 JPA repository interfaces. -2025-05-28T00:39:09.706+09:00 INFO 86301 --- [moamoa] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2025-05-28T00:39:09.713+09:00 INFO 86301 --- [moamoa] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2025-05-28T00:39:09.714+09:00 INFO 86301 --- [moamoa] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.40] -2025-05-28T00:39:09.739+09:00 INFO 86301 --- [moamoa] [main] o.a.c.c.C.[.[localhost].[/moamoa] : Initializing Spring embedded WebApplicationContext -2025-05-28T00:39:09.739+09:00 INFO 86301 --- [moamoa] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1016 ms -2025-05-28T00:39:09.826+09:00 INFO 86301 --- [moamoa] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2025-05-28T00:39:09.866+09:00 INFO 86301 --- [moamoa] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.13.Final -2025-05-28T00:39:09.885+09:00 INFO 86301 --- [moamoa] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2025-05-28T00:39:10.043+09:00 INFO 86301 --- [moamoa] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2025-05-28T00:39:10.058+09:00 INFO 86301 --- [moamoa] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2025-05-28T00:39:10.329+09:00 INFO 86301 --- [moamoa] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@3f64d943 -2025-05-28T00:39:10.330+09:00 INFO 86301 --- [moamoa] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2025-05-28T00:39:10.372+09:00 WARN 86301 --- [moamoa] [main] org.hibernate.orm.deprecation : HHH90000025: MySQL8Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-05-28T00:39:10.372+09:00 WARN 86301 --- [moamoa] [main] org.hibernate.orm.deprecation : HHH90000026: MySQL8Dialect has been deprecated; use org.hibernate.dialect.MySQLDialect instead -2025-05-28T00:39:10.380+09:00 INFO 86301 --- [moamoa] [main] org.hibernate.orm.connections.pooling : HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] - Database driver: undefined/unknown - Database version: 8.0 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2025-05-28T00:39:10.823+09:00 INFO 86301 --- [moamoa] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2025-05-28T00:39:10.917+09:00 INFO 86301 --- [moamoa] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-05-28T00:39:11.294+09:00 WARN 86301 --- [moamoa] [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-05-28T00:39:11.337+09:00 DEBUG 86301 --- [moamoa] [main] s.w.s.m.m.a.RequestMappingHandlerMapping : 21 mappings in 'requestMappingHandlerMapping' -2025-05-28T00:39:11.370+09:00 DEBUG 86301 --- [moamoa] [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Patterns [/webjars/**, /**] in 'resourceHandlerMapping' -2025-05-28T00:39:11.381+09:00 DEBUG 86301 --- [moamoa] [main] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice -2025-05-28T00:39:11.398+09:00 DEBUG 86301 --- [moamoa] [main] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice -2025-05-28T00:39:11.443+09:00 INFO 86301 --- [moamoa] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/moamoa' -2025-05-28T00:39:11.446+09:00 INFO 86301 --- [moamoa] [main] com.likelion.moamoa.MoamoaApplication : Started MoamoaApplication in 3.173 seconds (process running for 3.775) -2025-05-28T00:39:28.970+09:00 INFO 86301 --- [moamoa] [http-nio-8080-exec-1] o.a.c.c.C.[.[localhost].[/moamoa] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-05-28T00:39:28.973+09:00 INFO 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2025-05-28T00:39:28.974+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected StandardServletMultipartResolver -2025-05-28T00:39:28.974+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected AcceptHeaderLocaleResolver -2025-05-28T00:39:28.974+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected FixedThemeResolver -2025-05-28T00:39:28.980+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator@35ab0bf3 -2025-05-28T00:39:28.980+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.support.SessionFlashMapManager@21e60eed -2025-05-28T00:39:28.980+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data -2025-05-28T00:39:28.981+09:00 INFO 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 7 ms -2025-05-28T00:39:28.990+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : GET "/moamoa/recommendation/2", parameters={multipart} -2025-05-28T00:39:29.017+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.recommendation.web.controller.RecommendationController#getRecommendation(Long) -2025-05-28T00:39:29.144+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.likelion.moamoa.global.exception.GlobalExceptionHandler#handleBusinessException(BaseException) -2025-05-28T00:39:29.144+09:00 ERROR 86301 --- [moamoa] [http-nio-8080-exec-1] c.l.m.g.e.GlobalExceptionHandler : BusinessError -2025-05-28T00:39:29.144+09:00 ERROR 86301 --- [moamoa] [http-nio-8080-exec-1] c.l.m.g.e.GlobalExceptionHandler : 레퍼런스가 존재하지 않습니다. -2025-05-28T00:39:29.183+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:39:29.186+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ErrorResponse(httpStatus=404, data=null)] -2025-05-28T00:39:29.207+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.likelion.moamoa.domain.recommendation.exception.NotFoundReferenceException] -2025-05-28T00:39:29.207+09:00 DEBUG 86301 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed 404 NOT_FOUND -2025-05-28T00:39:44.490+09:00 INFO 86301 --- [moamoa] [SpringApplicationShutdownHook] o.s.b.w.e.tomcat.GracefulShutdown : Commencing graceful shutdown. Waiting for active requests to complete -2025-05-28T00:39:44.529+09:00 INFO 86301 --- [moamoa] [tomcat-shutdown] o.s.b.w.e.tomcat.GracefulShutdown : Graceful shutdown complete -2025-05-28T00:39:44.575+09:00 INFO 86301 --- [moamoa] [SpringApplicationShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' -2025-05-28T00:39:44.596+09:00 INFO 86301 --- [moamoa] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... -2025-05-28T00:39:44.638+09:00 INFO 86301 --- [moamoa] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. -2025-05-28T00:39:53.015+09:00 INFO 86670 --- [moamoa] [main] com.likelion.moamoa.MoamoaApplication : Starting MoamoaApplication using Java 21.0.5 with PID 86670 (/Users/juhan/Desktop/project/BeArchive/moamoa/build/classes/java/main started by juhan in /Users/juhan/Desktop/project/BeArchive/moamoa) -2025-05-28T00:39:53.165+09:00 INFO 86670 --- [moamoa] [main] com.likelion.moamoa.MoamoaApplication : No active profile set, falling back to 1 default profile: "default" -2025-05-28T00:39:53.581+09:00 INFO 86670 --- [moamoa] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-05-28T00:39:53.740+09:00 INFO 86670 --- [moamoa] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 37 ms. Found 6 JPA repository interfaces. -2025-05-28T00:39:54.088+09:00 INFO 86670 --- [moamoa] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2025-05-28T00:39:54.094+09:00 INFO 86670 --- [moamoa] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2025-05-28T00:39:54.094+09:00 INFO 86670 --- [moamoa] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.40] -2025-05-28T00:39:54.113+09:00 INFO 86670 --- [moamoa] [main] o.a.c.c.C.[.[localhost].[/moamoa] : Initializing Spring embedded WebApplicationContext -2025-05-28T00:39:54.113+09:00 INFO 86670 --- [moamoa] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 910 ms -2025-05-28T00:39:54.188+09:00 INFO 86670 --- [moamoa] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2025-05-28T00:39:54.216+09:00 INFO 86670 --- [moamoa] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.13.Final -2025-05-28T00:39:54.229+09:00 INFO 86670 --- [moamoa] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2025-05-28T00:39:54.356+09:00 INFO 86670 --- [moamoa] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2025-05-28T00:39:54.373+09:00 INFO 86670 --- [moamoa] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2025-05-28T00:39:54.580+09:00 INFO 86670 --- [moamoa] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@2430cf17 -2025-05-28T00:39:54.581+09:00 INFO 86670 --- [moamoa] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2025-05-28T00:39:54.614+09:00 WARN 86670 --- [moamoa] [main] org.hibernate.orm.deprecation : HHH90000025: MySQL8Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-05-28T00:39:54.615+09:00 WARN 86670 --- [moamoa] [main] org.hibernate.orm.deprecation : HHH90000026: MySQL8Dialect has been deprecated; use org.hibernate.dialect.MySQLDialect instead -2025-05-28T00:39:54.621+09:00 INFO 86670 --- [moamoa] [main] org.hibernate.orm.connections.pooling : HHH10001005: Database info: - Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] - Database driver: undefined/unknown - Database version: 8.0 - Autocommit mode: undefined/unknown - Isolation level: undefined/unknown - Minimum pool size: undefined/unknown - Maximum pool size: undefined/unknown -2025-05-28T00:39:55.061+09:00 INFO 86670 --- [moamoa] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2025-05-28T00:39:55.180+09:00 INFO 86670 --- [moamoa] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-05-28T00:39:55.561+09:00 WARN 86670 --- [moamoa] [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-05-28T00:39:55.597+09:00 DEBUG 86670 --- [moamoa] [main] s.w.s.m.m.a.RequestMappingHandlerMapping : 21 mappings in 'requestMappingHandlerMapping' -2025-05-28T00:39:55.632+09:00 DEBUG 86670 --- [moamoa] [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Patterns [/webjars/**, /**] in 'resourceHandlerMapping' -2025-05-28T00:39:55.644+09:00 DEBUG 86670 --- [moamoa] [main] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice -2025-05-28T00:39:55.662+09:00 DEBUG 86670 --- [moamoa] [main] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice -2025-05-28T00:39:55.713+09:00 INFO 86670 --- [moamoa] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/moamoa' -2025-05-28T00:39:55.718+09:00 INFO 86670 --- [moamoa] [main] com.likelion.moamoa.MoamoaApplication : Started MoamoaApplication in 3.021 seconds (process running for 3.935) -2025-05-28T00:40:00.922+09:00 INFO 86670 --- [moamoa] [http-nio-8080-exec-1] o.a.c.c.C.[.[localhost].[/moamoa] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-05-28T00:40:00.923+09:00 INFO 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2025-05-28T00:40:00.923+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected StandardServletMultipartResolver -2025-05-28T00:40:00.923+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected AcceptHeaderLocaleResolver -2025-05-28T00:40:00.923+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected FixedThemeResolver -2025-05-28T00:40:00.928+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator@6f999cf4 -2025-05-28T00:40:00.928+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.support.SessionFlashMapManager@5e8359da -2025-05-28T00:40:00.928+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data -2025-05-28T00:40:00.928+09:00 INFO 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 5 ms -2025-05-28T00:40:00.932+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : GET "/moamoa/recommendation/2", parameters={multipart} -2025-05-28T00:40:00.946+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.recommendation.web.controller.RecommendationController#getRecommendation(Long) -2025-05-28T00:40:00.994+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.likelion.moamoa.global.exception.GlobalExceptionHandler#handleBusinessException(BaseException) -2025-05-28T00:40:00.994+09:00 ERROR 86670 --- [moamoa] [http-nio-8080-exec-1] c.l.m.g.e.GlobalExceptionHandler : BusinessError -2025-05-28T00:40:00.994+09:00 ERROR 86670 --- [moamoa] [http-nio-8080-exec-1] c.l.m.g.e.GlobalExceptionHandler : 레퍼런스가 존재하지 않습니다. -2025-05-28T00:40:01.009+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:40:01.010+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ErrorResponse(httpStatus=404, data=null)] -2025-05-28T00:40:01.016+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.likelion.moamoa.domain.recommendation.exception.NotFoundReferenceException] -2025-05-28T00:40:01.017+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed 404 NOT_FOUND -2025-05-28T00:40:29.082+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-3] o.s.web.servlet.DispatcherServlet : GET "/moamoa/recommendation/2", parameters={} -2025-05-28T00:40:29.086+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-3] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.recommendation.web.controller.RecommendationController#getRecommendation(Long) -2025-05-28T00:40:29.101+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-3] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.likelion.moamoa.global.exception.GlobalExceptionHandler#handleBusinessException(BaseException) -2025-05-28T00:40:29.101+09:00 ERROR 86670 --- [moamoa] [http-nio-8080-exec-3] c.l.m.g.e.GlobalExceptionHandler : BusinessError -2025-05-28T00:40:29.102+09:00 ERROR 86670 --- [moamoa] [http-nio-8080-exec-3] c.l.m.g.e.GlobalExceptionHandler : 레퍼런스가 존재하지 않습니다. -2025-05-28T00:40:29.104+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-3] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:40:29.104+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-3] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ErrorResponse(httpStatus=404, data=null)] -2025-05-28T00:40:29.105+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-3] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.likelion.moamoa.domain.recommendation.exception.NotFoundReferenceException] -2025-05-28T00:40:29.106+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-3] o.s.web.servlet.DispatcherServlet : Completed 404 NOT_FOUND -2025-05-28T00:40:53.587+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : POST "/moamoa/folder/1/reference", parameters={multipart} -2025-05-28T00:40:53.604+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-4] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.reference.web.controller.ReferenceController#SaveReference(Long, SaveReferenceReq) -2025-05-28T00:40:54.025+09:00 WARN 86670 --- [moamoa] [http-nio-8080-exec-4] com.amazonaws.util.Base64 : JAXB is unavailable. Will fallback to SDK implementation which may be less performant.If you are using Java 9+, you will need to include javax.xml.bind:jaxb-api as a dependency. -2025-05-28T00:40:54.071+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-4] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:40:54.073+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-4] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [SuccessResponse(httpStatus=200, data=SaveReferenceRes[referenceId=2, referenceName=중증외상센터1, referenc (truncated)...] -2025-05-28T00:40:54.078+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Completed 200 OK -2025-05-28T00:40:59.750+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : GET "/moamoa/recommendation/2", parameters={} -2025-05-28T00:40:59.754+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-5] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.likelion.moamoa.domain.recommendation.web.controller.RecommendationController#getRecommendation(Long) -2025-05-28T00:40:59.786+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-5] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.likelion.moamoa.global.exception.GlobalExceptionHandler#handleBusinessException(BaseException) -2025-05-28T00:40:59.786+09:00 ERROR 86670 --- [moamoa] [http-nio-8080-exec-5] c.l.m.g.e.GlobalExceptionHandler : BusinessError -2025-05-28T00:40:59.786+09:00 ERROR 86670 --- [moamoa] [http-nio-8080-exec-5] c.l.m.g.e.GlobalExceptionHandler : 추천질문이 없습니다. -2025-05-28T00:40:59.787+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-5] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/cbor] -2025-05-28T00:40:59.787+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-5] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ErrorResponse(httpStatus=404, data=null)] -2025-05-28T00:40:59.788+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-5] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.likelion.moamoa.domain.chat.exception.NotFoundRecommendationException] -2025-05-28T00:40:59.789+09:00 DEBUG 86670 --- [moamoa] [http-nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Completed 404 NOT_FOUND diff --git a/moamoa/settings.gradle b/moamoa/settings.gradle deleted file mode 100644 index 5db2e6e..0000000 --- a/moamoa/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'moamoa' diff --git a/moamoa/src/main/resources/application.properties b/moamoa/src/main/resources/application.properties deleted file mode 100644 index 65f6131..0000000 --- a/moamoa/src/main/resources/application.properties +++ /dev/null @@ -1,49 +0,0 @@ -spring.application.name=moamoa -server.servlet.context-path=/moamoa - -# application-secret.properties -spring.config.import=optional:application-secret.properties - -# Datasource -spring.datasource.url=${DATABASE_URL} -spring.datasource.username=${DATABASE_USERNAME} -spring.datasource.password=${DATABASE_PASSWORD} - -# JPA -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true -spring.jpa.properties.hibernate.format_sql=true -spring.jpa.properties.hibernate.use_sql_comments=true -spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect - -# AWS S3 -cloud.aws.s3.bucket=${BUCKET_NAME} -cloud.aws.stack.auto=false -cloud.aws.region.static=ap-northeast-2 -cloud.aws.credentials.access-key=${CLOUD_AWS_CREDENTIALS_ACCESS_KEY} -cloud.aws.credentials.secret-key=${CLOUD_AWS_CREDENTIALS_SECRET_KEY} - -# GPT api -openai.model=gpt-4o -openai.api.url=${OPENAI_API_URL} -openai.api.key=${OPENAI_API_KEY} - -# H2 -#spring.datasource.driver-class-name=org.h2.Driver -#spring.jpa.database-platform=org.hibernate.dialect.H2Dialect - -#################### ??? #################### - -logging.level.root=INFO - -# Hibernate SQL ??? DEBUG? ?? (??? ?? ??) -#logging.level.org.hibernate.SQL=DEBUG - -# ?? ?? ???(??? ??)? ?? ??? DEBUG? ?? -logging.level.com.yourpackage=DEBUG - -# Spring ? ?? ??? ??? ??? ?? -logging.level.org.springframework.web=DEBUG - -# ?? ?? ?? ?? (??? ??? ???) -logging.file.name=logs/app.log \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..a3feb72 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,3 @@ +rootProject.name = 'Backend' + +include 'moamoa' \ No newline at end of file