Skip to content

[RELEASE-20251127]#192

Merged
alsgud8311 merged 26 commits intomainfrom
development
Nov 27, 2025
Merged

[RELEASE-20251127]#192
alsgud8311 merged 26 commits intomainfrom
development

Conversation

@alsgud8311
Copy link
Contributor

RELEASE-20251127

  • 서버 이전 과정에서 기존의 빌드 시간이 너무 길어 최적화 하기 위한 작업을 진행했습니다.
  • Dockerfile과 compose, nginx 설정을 일부 수정했습니다.
  • 페이지들의 meta tag에서 누락된 pathname을 추가했습니다.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @alsgud8311, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 Pull Request는 서버 이전 과정에서 발생한 긴 빌드 시간을 최적화하고, 전반적인 배포 환경을 개선하기 위한 변경 사항을 포함합니다. 클라이언트 및 서버 애플리케이션의 Dockerfile과 Docker Compose 설정을 재구성하여 빌드 효율성을 높였으며, Nginx 설정을 업데이트하여 개발 환경에서 API 서버 프록시를 추가하고 보안 및 로깅 기능을 강화했습니다. 또한, 일부 페이지의 메타 태그에 누락된 pathname을 추가하여 SEO를 개선했습니다.

Highlights

  • 빌드 시간 최적화: 서버 이전 과정에서 발생한 긴 빌드 시간을 단축하기 위해 Dockerfile 및 Yarn Plug'n'Play 관련 파일 구조를 개선했습니다.
  • Docker Compose 재구성: 개발 및 프로덕션 환경을 위한 Docker Compose 파일들을 docker/clientdocker/server 디렉토리로 분리하고, 빌드 컨텍스트 경로를 조정하여 관리 효율성을 높였습니다.
  • Nginx 설정 강화: 개발 환경 Nginx 설정에 API 서버 프록시를 추가하고, HTTP 리디렉션, Certbot 지원, TLS/보안 헤더 및 로깅 기능을 개선하여 안정성과 보안을 강화했습니다.
  • 메타 태그 누락 수정: 특정 페이지(apps/client/src/pages/resume/eval/index.tsx)의 메타 태그에 누락된 pathname 속성을 추가하여 SEO를 개선했습니다.
Ignored Files
  • Ignored by pattern: .github/workflows/** (4)
    • .github/workflows/deploy-dev.yml
    • .github/workflows/deploy-nest-dev.yml
    • .github/workflows/deploy-nest-prod.yml
    • .github/workflows/deploy.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link

🛠️ Build Summary

Status: ✅ SUCCESS
Duration: 63초
Exit Code: 0
Commit: 22b7673

📋 Build Output (마지막 45줄)

├ ○ /404 (1488 ms)                         1.77 kB         315 kB
├ ○ /500 (1486 ms)                           758 B         311 kB
├ ƒ /api/auth/logout                           0 B         310 kB
├ ƒ /dashboard                             14.3 kB         637 kB
├ ƒ /interviews                            8.19 kB         349 kB
├ ƒ /interviews/[interviewId]              11.7 kB         607 kB
├ ƒ /interviews/[interviewId]/result       7.78 kB         365 kB
├ ○ /layout (1486 ms)                        540 B         311 kB
├   └ css/2af4d3721e97fa9b.css               280 B
├ ƒ /login                                 2.59 kB         315 kB
├ ƒ /login/callback                        2.01 kB         336 kB
├ ƒ /login/google/callback                 2.02 kB         336 kB
├ ƒ /login/profile                         7.65 kB         369 kB
├ ƒ /members/[memberId]                       4 kB         341 kB
├ ƒ /members/[memberId]/sitemap.xml          429 B         311 kB
├ ƒ /members/interviews/[interviewId]      6.91 kB         341 kB
├ ƒ /purchase                              7.64 kB         631 kB
├ ƒ /purchase/confirm                      1.78 kB         335 kB
├ ○ /purchase/error (1486 ms)                800 B         313 kB
├ ƒ /rank                                  3.34 kB         340 kB
├ ƒ /recruit                               7.39 kB         348 kB
├ ƒ /resume                                  865 B         438 kB
├ ƒ /resume/eval                            2.4 kB         440 kB
├ ƒ /resume/eval/demo                      2.67 kB         440 kB
├ ƒ /server-sitemap.xml                      422 B         311 kB
├ ƒ /sitemap/members.xml                     424 B         311 kB
├ ƒ /sitemap/rank.xml                        421 B         311 kB
├ ƒ /terms/privacy                         5.23 kB         339 kB
└ ƒ /terms/termsofuse                      5.06 kB         339 kB
+ First Load JS shared by all               326 kB
  ├ chunks/framework-dc17cf7945e40527.js   57.6 kB
  ├ chunks/main-21a55c8a646f07b1.js         176 kB
  ├ chunks/pages/_app-6579d1d69d18093d.js  74.7 kB
  ├ css/8582497d0c87733e.css               15.9 kB
  └ other shared chunks (total)            1.92 kB

ƒ Middleware                               96.2 kB

○  (Static)   prerendered as static content
ƒ  (Dynamic)  server-rendered on demand

   Memory usage report:
    - Total time spent in GC: 394.34ms
    - Peak heap usage: 69.21 MB
    - Peak RSS usage: 691.05 MB

🤖 Generated by GitHub Actions at Thu Nov 27 07:03:49 UTC 2025

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 서버 이전과 빌드 최적화를 위한 중요한 변경사항들을 포함하고 있습니다. Dockerfile을 멀티스테이지 빌드로 전환하고, Docker 레이어 캐시를 최적화한 점은 매우 훌륭합니다. Nginx 설정 또한 보안 헤더 추가 및 구조 개선 등 긍정적인 변화가 많습니다.

다만, 리뷰 과정에서 몇 가지 잠재적인 이슈를 발견했습니다. 프로덕션 Nginx 설정에서 map 블록이 누락되어 설정 로드에 실패할 수 있는 치명적인 문제가 있으며, Docker 빌드 과정에서 types:buildsitemap 생성 스크립트가 제거된 점은 의도된 변경인지 확인이 필요해 보입니다. 자세한 내용은 각 파일에 남긴 코멘트를 참고해주세요.

access_log /var/log/nginx/dev_kokomen_access.log main;
error_log /var/log/nginx/dev_kokomen_error.log warn;
}
} No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

proxy_set_header Connection $connection_upgrade; 지시어에서 $connection_upgrade 변수를 사용하고 있지만, 이 변수를 정의하는 map 블록이 누락되었습니다. 이로 인해 Nginx가 설정을 로드하지 못하고 "unknown "connection_upgrade" variable" 에러를 발생시킬 것입니다. nginx.dev.conf 파일처럼 http 블록 내에 map 블록을 추가해야 합니다.

    # HTTP/2에서 Connection 헤더 값은 "upgrade"가 아닌 경우가 있어 안전하게 변수로 처리
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
}


COPY . .
RUN corepack enable
RUN yarn install --immutable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

이전 Dockerfile에 있던 RUN yarn types:build 명령이 제거되었습니다. 만약 @kokomen/client의 빌드가 @kokomen/types 패키지의 빌드 결과물에 의존한다면, 이 단계가 생략되어 빌드가 실패하거나 오래된 타입 정보로 인해 런타임 에러가 발생할 수 있습니다. 이 빌드 단계가 더 이상 필요 없는지, 또는 다른 방식으로 처리되는지 확인이 필요합니다. (apps/kokomen-server/Dockerfile에서도 동일한 변경점이 있습니다.)

@@ -8,8 +8,6 @@ COPY . .

RUN yarn install
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

이전 Dockerfile에 있던 RUN yarn types:build 명령이 제거되었습니다. 만약 서버 빌드가 @kokomen/types 패키지의 빌드 결과물에 의존한다면, 이 단계가 생략되어 빌드가 실패하거나 오래된 타입 정보로 인해 런타임 에러가 발생할 수 있습니다. 이 빌드 단계가 더 이상 필요 없는지, 또는 다른 방식으로 처리되는지 확인이 필요합니다.

ARG NODE_ENV

WORKDIR /app/apps/client
RUN yarn workspace @kokomen/client build
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

RUN yarn sitemap 명령이 빌드 과정에서 제거되었습니다. apps/client/.gitignoresitemap.xml이 추가된 것을 보면 사이트맵 생성 방식에 변경이 있는 것으로 보입니다. 만약 프로덕션 빌드에 사이트맵이 포함되어야 한다면, 현재 구성에서는 누락될 수 있습니다. 이 변경 사항이 의도된 것이며, 사이트맵이 다른 프로세스를 통해 정상적으로 생성 및 배포되는지 확인 부탁드립니다.

@github-actions
Copy link

🛠️ Build Summary

Status: ✅ SUCCESS
Duration: 64초
Exit Code: 0
Commit: d9a8ffd

📋 Build Output (마지막 45줄)

├ ○ /404 (1455 ms)                         1.77 kB         315 kB
├ ○ /500 (1454 ms)                           758 B         311 kB
├ ƒ /api/auth/logout                           0 B         310 kB
├ ƒ /dashboard                             14.3 kB         637 kB
├ ƒ /interviews                            8.19 kB         349 kB
├ ƒ /interviews/[interviewId]              11.7 kB         607 kB
├ ƒ /interviews/[interviewId]/result       7.78 kB         365 kB
├ ○ /layout (1453 ms)                        540 B         311 kB
├   └ css/2af4d3721e97fa9b.css               280 B
├ ƒ /login                                 2.59 kB         315 kB
├ ƒ /login/callback                        2.01 kB         336 kB
├ ƒ /login/google/callback                 2.02 kB         336 kB
├ ƒ /login/profile                         7.65 kB         369 kB
├ ƒ /members/[memberId]                       4 kB         341 kB
├ ƒ /members/[memberId]/sitemap.xml          429 B         311 kB
├ ƒ /members/interviews/[interviewId]      6.91 kB         341 kB
├ ƒ /purchase                              7.64 kB         631 kB
├ ƒ /purchase/confirm                      1.78 kB         335 kB
├ ○ /purchase/error (1453 ms)                800 B         313 kB
├ ƒ /rank                                  3.34 kB         340 kB
├ ƒ /recruit                               7.39 kB         348 kB
├ ƒ /resume                                  865 B         438 kB
├ ƒ /resume/eval                            2.4 kB         440 kB
├ ƒ /resume/eval/demo                      2.67 kB         440 kB
├ ƒ /server-sitemap.xml                      422 B         311 kB
├ ƒ /sitemap/members.xml                     424 B         311 kB
├ ƒ /sitemap/rank.xml                        421 B         311 kB
├ ƒ /terms/privacy                         5.23 kB         339 kB
└ ƒ /terms/termsofuse                      5.06 kB         339 kB
+ First Load JS shared by all               326 kB
  ├ chunks/framework-dc17cf7945e40527.js   57.6 kB
  ├ chunks/main-c47823d258e71661.js         176 kB
  ├ chunks/pages/_app-6579d1d69d18093d.js  74.7 kB
  ├ css/8582497d0c87733e.css               15.9 kB
  └ other shared chunks (total)            1.92 kB

ƒ Middleware                               96.2 kB

○  (Static)   prerendered as static content
ƒ  (Dynamic)  server-rendered on demand

   Memory usage report:
    - Total time spent in GC: 449.16ms
    - Peak heap usage: 212.84 MB
    - Peak RSS usage: 779.47 MB

🤖 Generated by GitHub Actions at Thu Nov 27 07:14:34 UTC 2025

@alsgud8311 alsgud8311 merged commit 2a474cd into main Nov 27, 2025
8 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant