Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
198 commits
Select commit Hold shift + click to select a range
ba733f1
Merge pull request #1 from JoyCrew/feature/ci-cd-setup
andrewkimswe Jul 19, 2025
08f899f
Merge pull request #2 from JoyCrew/feature/ci-cd-setup
andrewkimswe Jul 19, 2025
45170aa
Merge pull request #3 from JoyCrew/develop
andrewkimswe Jul 19, 2025
8c341d0
Update cd.yml
andrewkimswe Jul 19, 2025
532f080
Update cd.yml
andrewkimswe Jul 19, 2025
e78918a
Update cd.yml
andrewkimswe Jul 20, 2025
f798f9a
Update cd.yml
andrewkimswe Jul 20, 2025
6a2a7af
Update cd.yml
andrewkimswe Jul 20, 2025
e65868d
Update build.gradle
andrewkimswe Jul 20, 2025
5862655
feat: 로그인+프로필 조회+잔액 조회
Jul 21, 2025
ef7d1dd
feat: CORS 설정
Jul 21, 2025
9dae51b
fix: CD 파이프라인 안정성 및 보안 강화
andrewkimswe Jul 24, 2025
3d7200a
refactor: 엔티티 관계 및 필수 속성 보강 및 관계 수정
andrewkimswe Jul 24, 2025
5b56c33
refactor: 엔티티 관계 및 필수 속성 보강 및 관계 수정
andrewkimswe Jul 24, 2025
b79b9a4
test : 단위 테스트 추가
andrewkimswe Jul 24, 2025
1e528c7
test : 통합 테스트 추가
andrewkimswe Jul 24, 2025
b70dda0
test : API 테스트 추가
andrewkimswe Jul 24, 2025
4b68e76
Merge pull request #4 from JoyCrew/feature/ci-cd-setup
andrewkimswe Jul 24, 2025
05711d5
test : test 코드 CI 환경 설정
andrewkimswe Jul 24, 2025
b62a6c9
Merge pull request #5 from JoyCrew/develop
andrewkimswe Jul 24, 2025
b774706
feat: user 프로필 업데이트 API 개발
andrewkimswe Jul 26, 2025
3fd9ea9
test : user 프로필 업데이트 관련 유닛 통합 API 테스트
andrewkimswe Jul 26, 2025
33ac775
Merge pull request #6 from JoyCrew/feat/user-profile-update
andrewkimswe Jul 26, 2025
2bc1ef8
Merge pull request #7 from JoyCrew/develop
andrewkimswe Jul 26, 2025
55d6749
refactor : 계층 간의 책임 분리
andrewkimswe Jul 26, 2025
bbf3f07
refactor : event 기반 아키텍처 도입
andrewkimswe Jul 26, 2025
d2b04a9
refactor : 가변성 허용 등
andrewkimswe Jul 26, 2025
f13e2ac
refactor : 낮은 응집도 및 캡슐화 문제 해결
andrewkimswe Jul 26, 2025
6a44420
refactor : CascadeType.ALL 삭제
andrewkimswe Jul 26, 2025
3c25999
refactor : 데이터 연쇄 삭제 문제 등 해결
andrewkimswe Jul 26, 2025
3f335f0
refactor : Java Record Type 도입
andrewkimswe Jul 26, 2025
eea612a
refactor : Java Record Type 도입 2
andrewkimswe Jul 26, 2025
5340918
refactor : N+1 문제 선제적 해결
andrewkimswe Jul 26, 2025
3e2eef8
refactor : security 관련
andrewkimswe Jul 26, 2025
f3a49d8
refactor : exception 관련
andrewkimswe Jul 26, 2025
2f80620
refactor : Tell, Don't Ask
andrewkimswe Jul 26, 2025
3dca736
refactor : controller 관련
andrewkimswe Jul 26, 2025
c7eb49a
refactor : test 코드 수정
andrewkimswe Jul 26, 2025
ba0d786
refactor : ci-cd 업데이트
andrewkimswe Jul 26, 2025
4c70281
refactor : 팩토리 패턴 도입
andrewkimswe Jul 27, 2025
198ecf5
test : globalexceptionhandler 수정
andrewkimswe Jul 27, 2025
d9bbad8
Merge pull request #8 from JoyCrew/refactor/production-level
andrewkimswe Jul 27, 2025
135a8ef
Merge pull request #9 from JoyCrew/develop
andrewkimswe Jul 27, 2025
9d84b50
Update cd.yml
andrewkimswe Jul 27, 2025
b4a4360
Update cd.yml
andrewkimswe Jul 27, 2025
3d4303d
Update cd.yml
andrewkimswe Jul 27, 2025
76bd17b
Merge pull request #10 from JoyCrew/main
andrewkimswe Jul 27, 2025
14edc3b
Update build.gradle
andrewkimswe Jul 27, 2025
b23896a
feat: 단일 직원 생성 기능
Jul 27, 2025
11dcc99
Merge pull request #11 from JoyCrew/feat/admin-add-single-employee
yeoeunn Jul 27, 2025
5349562
fix: AuthControllerTest-TestConfig
Jul 28, 2025
33365e5
Merge branch 'develop' of https://github.com/JoyCrew/backend into fix…
Jul 28, 2025
bf77c3a
Merge pull request #12 from JoyCrew/fix/AuthControllerTest-TestConfig
yeoeunn Jul 28, 2025
ec97d81
feat: employee-query
Jul 28, 2025
a4befdb
Merge pull request #13 from JoyCrew/feat/employee-query
yeoeunn Jul 28, 2025
fefcb62
feat: CSV-registration
Jul 28, 2025
d4d8332
Merge pull request #14 from JoyCrew/feat/CSV-registration
yeoeunn Jul 28, 2025
c63ce1b
Merge pull request #15 from JoyCrew/develop
andrewkimswe Jul 29, 2025
92a0f23
Update application-prod.yml
andrewkimswe Jul 29, 2025
371a535
Update build.gradle
andrewkimswe Jul 29, 2025
228692a
Merge pull request #16 from JoyCrew/main
andrewkimswe Jul 29, 2025
b90b8dd
Update application-prod.yml
andrewkimswe Jul 30, 2025
8fe77ca
Update cd.yml
andrewkimswe Jul 30, 2025
d438c7e
Update cd.yml
andrewkimswe Jul 30, 2025
01eb42a
Update cd.yml
andrewkimswe Jul 30, 2025
72a887b
Update cd.yml
andrewkimswe Jul 30, 2025
be0ea3e
Update cd.yml
andrewkimswe Jul 30, 2025
54257e0
Merge branch 'develop' into main
andrewkimswe Jul 30, 2025
0923c29
Merge pull request #17 from JoyCrew/main
andrewkimswe Jul 30, 2025
5141b6b
feat: fix-employeequery-form-profileurl
Jul 30, 2025
6b103c6
Merge pull request #18 from JoyCrew/feat/add-profileurl-employeequery
yeoeunn Jul 30, 2025
5e571c9
fix: employeeName ASC
Jul 30, 2025
180da67
Merge pull request #19 from JoyCrew/fix/employeeName-ASC
yeoeunn Jul 30, 2025
7cca57a
Merge pull request #20 from JoyCrew/develop
yeoeunn Jul 30, 2025
882d485
Update SecurityConfig.java
andrewkimswe Aug 1, 2025
0dfddfa
Create HealthCheckController.java
andrewkimswe Aug 2, 2025
c656410
feat : 불필요한 enum 삭제
andrewkimswe Aug 2, 2025
14e59d0
Update SecurityConfig.java
andrewkimswe Aug 2, 2025
29bb266
Update application.yml
andrewkimswe Aug 2, 2025
d16e60b
Update application.yml
andrewkimswe Aug 2, 2025
a2ce862
fix : 로그인 응답에 포인트 및 프로필 정보 추가
andrewkimswe Aug 3, 2025
fb33e92
fix : 포인트 선물 API에 태그 추가
andrewkimswe Aug 3, 2025
a039364
fix : 직원 목록 조회 API에 페이징 정보 추가
andrewkimswe Aug 3, 2025
fbe0a35
fix : 이메일 인증을 통한 비밀번호 재설정 기능 추가
andrewkimswe Aug 3, 2025
b82a9ff
hotfix : 직원 목록 검색 결과에 각 직원의 고유 ID 추가
andrewkimswe Aug 3, 2025
d2956db
hotfix : remove dev.yml
andrewkimswe Aug 3, 2025
b325865
Merge pull request #21 from JoyCrew/fix/frontend-requests
andrewkimswe Aug 3, 2025
a1c07eb
Update SecurityConfig.java
andrewkimswe Aug 3, 2025
2054af1
Merge pull request #22 from JoyCrew/develop
andrewkimswe Aug 3, 2025
3ce80fa
Update SecurityConfig.java
andrewkimswe Aug 3, 2025
3690f4e
test : test 코드 수정
andrewkimswe Aug 4, 2025
cb26f50
feat: p2p send points+fix test errors
Aug 5, 2025
587ca65
Merge pull request #23 from JoyCrew/feat/p2p-send-points
yeoeunn Aug 5, 2025
f948b9d
feat: admin-employee-query
Aug 5, 2025
ac331c1
Merge pull request #26 from JoyCrew/feat/admin-employee-query
yeoeunn Aug 5, 2025
5b89ed4
fix: test-errors
Aug 5, 2025
bea604e
Merge pull request #28 from JoyCrew/fix/test-errors
yeoeunn Aug 5, 2025
150c560
hotfix : 긴급 배포
andrewkimswe Aug 6, 2025
94e72bd
Merge pull request #29 from JoyCrew/fix/frontend-requests
andrewkimswe Aug 6, 2025
3850dca
Merge pull request #27 from JoyCrew/develop
andrewkimswe Aug 6, 2025
3edcb85
feat : 포인트 거래 내역 조회
andrewkimswe Aug 7, 2025
039667d
feat : 관리자 직원 포인트 분배, 직원 삭제, 직원 정보 업데이트, 포인트 거래 내역 조회 API 개발
andrewkimswe Aug 7, 2025
c2cbad6
test : 관련 test 추가
andrewkimswe Aug 7, 2025
5875cd6
Merge pull request #30 from JoyCrew/fix/frontend-requests
andrewkimswe Aug 7, 2025
cd75c3c
Merge pull request #31 from JoyCrew/develop
andrewkimswe Aug 7, 2025
5c53dd8
release : 배포 관련 설정
andrewkimswe Aug 7, 2025
ac65996
Merge pull request #32 from JoyCrew/develop
andrewkimswe Aug 7, 2025
112bec6
refactor : 하드코딩 제거
andrewkimswe Aug 7, 2025
77b0275
refactor : 이름 변경
andrewkimswe Aug 7, 2025
7c5ac1e
refactor : 결합 분리
andrewkimswe Aug 7, 2025
5eefb91
refactor : 주석 및 로그 영문 변경
andrewkimswe Aug 7, 2025
54c141b
refactor : N+1 문제 해결
andrewkimswe Aug 7, 2025
d460c16
feat : S3 저장 도입
andrewkimswe Aug 7, 2025
84288cb
Merge pull request #33 from JoyCrew/release/#1
andrewkimswe Aug 7, 2025
efcbfb6
Merge pull request #34 from JoyCrew/develop
andrewkimswe Aug 7, 2025
2a23b81
release : 배포용 수정
andrewkimswe Aug 7, 2025
140425a
Merge pull request #35 from JoyCrew/release/#1
andrewkimswe Aug 7, 2025
71973a5
Merge pull request #36 from JoyCrew/develop
andrewkimswe Aug 7, 2025
e00ae00
hotfix : 실수 수정
andrewkimswe Aug 7, 2025
296bf1b
Merge pull request #37 from JoyCrew/release/#1
andrewkimswe Aug 7, 2025
7ff1adc
Merge pull request #38 from JoyCrew/develop
andrewkimswe Aug 7, 2025
e1551ef
test : test 코드 수정
andrewkimswe Aug 7, 2025
22c427f
Merge pull request #39 from JoyCrew/release/#1
andrewkimswe Aug 7, 2025
3f67d92
Update application-prod.yml
andrewkimswe Aug 8, 2025
a549e74
Update bootstrap.yml
andrewkimswe Aug 8, 2025
8018a94
Update build.gradle
andrewkimswe Aug 8, 2025
5781e41
Update bootstrap.yml
andrewkimswe Aug 8, 2025
48266b6
Update build.gradle
andrewkimswe Aug 9, 2025
6c5fa81
release : Kubernetes 등 설정
andrewkimswe Aug 9, 2025
00fea98
Merge pull request #40 from JoyCrew/release/#1
andrewkimswe Aug 9, 2025
efa7596
Merge pull request #41 from JoyCrew/develop
andrewkimswe Aug 9, 2025
a761bbb
Merge pull request #42 from JoyCrew/main
andrewkimswe Aug 9, 2025
9c76cbc
feat: get-products
Aug 11, 2025
8ed4674
Merge pull request #43 from JoyCrew/feat/get-products
yeoeunn Aug 11, 2025
24c9591
feat: order-place/cancel
Aug 11, 2025
8f8fd16
Merge pull request #44 from JoyCrew/feat/order-place/cancel
yeoeunn Aug 11, 2025
fc56127
release : Kubernetes 배포용 수정
andrewkimswe Aug 11, 2025
c06108d
Merge pull request #45 from JoyCrew/fix/ci-cd
andrewkimswe Aug 11, 2025
a2724b3
feat: recentproduct-view
Aug 11, 2025
54e81d9
Merge pull request #46 from JoyCrew/feat/recentproduct-view
yeoeunn Aug 11, 2025
5ce9518
fix: integrationTest-argument-error
Aug 12, 2025
62e5b19
feat : frontend 요청 사항
andrewkimswe Aug 12, 2025
3301feb
Merge pull request #47 from JoyCrew/fix/ci-cd
andrewkimswe Aug 12, 2025
dbd3e79
release : 발표용 배포
andrewkimswe Aug 14, 2025
f50fbdf
Merge pull request #48 from JoyCrew/release/final
andrewkimswe Aug 14, 2025
39fbb72
Merge pull request #49 from JoyCrew/develop
andrewkimswe Aug 14, 2025
de1967c
release : 발표
andrewkimswe Aug 15, 2025
647ab5b
feat: NicePass-kyc
Sep 18, 2025
f993a24
Merge pull request #50 from JoyCrew/feat/NicePass-kyc
yeoeunn Sep 18, 2025
032cc57
feat : notification
Sep 18, 2025
4aa2e14
Merge pull request #51 from JoyCrew/feat/notification
yeoeunn Sep 18, 2025
ea1a7f6
feat:solapi
Sep 29, 2025
6091b0c
Merge pull request #52 from JoyCrew/feat/solapi-final
yeoeunn Sep 29, 2025
176cbee
release : 임시 EC2 배포
Sep 30, 2025
d3e28d6
Merge pull request #53 from JoyCrew/release/final
andrewkimswe Sep 30, 2025
38595fa
Update ci-cd.yml
andrewkimswe Sep 30, 2025
a781264
Update ci-cd.yml
andrewkimswe Sep 30, 2025
21c52c5
Update ci-cd.yml
andrewkimswe Sep 30, 2025
c80497d
Update ci-cd.yml
andrewkimswe Sep 30, 2025
c9b9799
Update ci-cd.yml
andrewkimswe Sep 30, 2025
29ea2b2
Update ci-cd.yml
andrewkimswe Sep 30, 2025
c757cd9
feat/solapi-addLastloginat
Sep 30, 2025
50fe8dd
Merge branch 'main' of https://github.com/JoyCrew/backend into feat/s…
Sep 30, 2025
31ff9bd
Merge pull request #55 from JoyCrew/chore/solapi
yeoeunn Sep 30, 2025
5f539c0
fix : transaction 에러 해결
Oct 1, 2025
efba8d5
feat/kakao-biz
Oct 1, 2025
5472896
Merge remote-tracking branch 'origin/feat/kakao-biz' into fix/transac…
Oct 2, 2025
9d8a9a1
release : kakao-biz 설정
Oct 2, 2025
9c2ff3b
release : fix RDS
Oct 2, 2025
9e35060
Update application-prod.yml
andrewkimswe Oct 2, 2025
4976a42
Update application-prod.yml
andrewkimswe Oct 2, 2025
532c357
release : fast release
Oct 3, 2025
21da183
release v1
Oct 3, 2025
8537bb2
release v2
Oct 3, 2025
6937707
Update application.yml
andrewkimswe Oct 3, 2025
eb8ff14
Update SwaggerConfig.java
andrewkimswe Oct 3, 2025
313eb03
fix : add api to kyc
Oct 3, 2025
09e8ed5
fix : add api to securityconfig:
Oct 3, 2025
fdf43f8
fix : security 수정
Oct 4, 2025
4fc15d6
fix : add api logout
Oct 4, 2025
afc1fb8
fix : yml 수정
Oct 4, 2025
8e00522
fix : yml 파일 수정
Oct 4, 2025
850ac84
feat/add-brand
Oct 5, 2025
e82489c
Merge pull request #56 from JoyCrew/feat/add-brand
yeoeunn Oct 5, 2025
a858d2c
fix : FE 요청사항 수정
Oct 25, 2025
79e57a2
Merge pull request #57 from JoyCrew/fix/FE-Request
andrewkimswe Oct 25, 2025
2f39dc9
feat: 카탈로그 API 기능 추가 및 페이징 수정
Nov 2, 2025
b262ae2
Merge branch 'feat/catalog-improvements' into main
andrewkimswe Nov 2, 2025
138c986
feat/superadmin
Nov 6, 2025
c3be628
Merge pull request #59 from JoyCrew/feat/superadmin
yeoeunn Nov 6, 2025
287d521
feat/subdomainTenant
Nov 10, 2025
06d9fd8
Merge pull request #60 from JoyCrew/feat/subdomainTenant
yeoeunn Nov 10, 2025
ae2c900
feat/jwtcookie
Nov 20, 2025
4daa74f
fix/giftpointexample
Nov 20, 2025
c25e30f
feat:subscription
Dec 12, 2025
6ad8db2
fix: conflict
Dec 12, 2025
434072a
feat: subscription
Dec 24, 2025
ddfeeb8
feat: billingRequired
Dec 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 42 additions & 1 deletion .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
<<<<<<< HEAD
name: Deploy to EC2 (Self-contained)

on:
push:
branches:
- main

jobs:
build-and-deploy:
=======
name: Deploy to EKS

on:
Expand All @@ -14,6 +25,7 @@ env:
jobs:
deploy:
name: Build and Deploy
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
runs-on: ubuntu-latest
steps:
- name: Checkout source code
Expand All @@ -31,6 +43,34 @@ jobs:
- name: Build with Gradle
run: ./gradlew build -x test

<<<<<<< HEAD
- name: Transfer JAR to EC2
uses: appleboy/scp-action@v0.1.4
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_KEY }}
source: "build/libs/*.jar"
target: "/home/${{ secrets.SSH_USER }}/app"
strip_components: 2

- name: Deploy on EC2
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_KEY }}
script: |
APP_DIR="/home/${{ secrets.SSH_USER }}/app"
LOG_DIR="${APP_DIR}/logs"
DEPLOY_SCRIPT="$APP_DIR/deploy.sh"

mkdir -p $LOG_DIR

echo "> 배포 스크립트 실행"
chmod +x $DEPLOY_SCRIPT
$DEPLOY_SCRIPT
=======
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
Expand Down Expand Up @@ -74,4 +114,5 @@ jobs:
kubectl apply -f .

# 배포 확인
kubectl rollout status deployment/joycrew-backend-deployment
kubectl rollout status deployment/joycrew-backend-deployment
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
9 changes: 5 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-mail'

// Added from merged branch
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-registry-prometheus'

Expand All @@ -52,14 +53,14 @@ dependencies {
// AWS SDK for S3 and Secrets Manager Integration
implementation platform('io.awspring.cloud:spring-cloud-aws-dependencies:3.1.1')
implementation 'io.awspring.cloud:spring-cloud-aws-starter-secrets-manager'
implementation(platform("software.amazon.awssdk:bom:2.21.46"))
implementation platform("software.amazon.awssdk:bom:2.21.46")
implementation 'software.amazon.awssdk:s3'

implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'

// Database Drivers
runtimeOnly 'com.mysql:mysql-connector-j' // For production
runtimeOnly 'com.h2database:h2' // For development
runtimeOnly 'com.mysql:mysql-connector-j'
runtimeOnly 'com.h2database:h2'

// Developer Tools
compileOnly 'org.projectlombok:lombok'
Expand All @@ -76,7 +77,7 @@ bootJar {
enabled = true
}

// Disables the plain JAR generation as the bootJar is sufficient.
// Disables the plain JAR generation.
jar {
enabled = false
}
Expand Down
69 changes: 69 additions & 0 deletions infra/eks/cluster.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
<<<<<<< HEAD
# ===================================================================
# EKS Cluster Configuration for JoyCrew Backend
# This version is configured to use your EXISTING VPC and subnets.
# ===================================================================
=======
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

Expand All @@ -6,6 +13,24 @@ metadata:
region: ap-northeast-2
version: "1.29"

<<<<<<< HEAD
# Enable IAM Roles for Service Accounts (IRSA)
iam:
withOIDC: true

vpc:
id: "vpc-067968d8c7f0de694"
subnets:
# The worker nodes will be placed in the private subnets.
private:
ap-northeast-2b: { id: "subnet-0b1c4ed704fe8809c" }
ap-northeast-2d: { id: "subnet-00394d1c845cc1187" }
public:
ap-northeast-2a: { id: "subnet-03e9e38db1457d819" }
ap-northeast-2c: { id: "subnet-0283caa043409b846" }

# Configuration for managed node groups
=======
vpc:
id: "vpc-028bab1adc7ebda69"
subnets:
Expand All @@ -29,15 +54,59 @@ iam:
wellKnownPolicies:
awsLoadBalancerController: true

>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
managedNodeGroups:
- name: app-workers
instanceType: t3.small
desiredCapacity: 2
minSize: 1
<<<<<<< HEAD
maxSize: 4
# 'privateNetworking' is not needed when subnets are specified above.
# eksctl will automatically use the private subnets for the nodes.
=======
maxSize: 3
privateNetworking: false # Public 서브넷 사용
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
ssh:
allow: true
publicKeyName: joycrew-deploy-key
labels:
role: application
<<<<<<< HEAD
environment: production
volumeSize: 20
volumeType: gp3
iam:
attachPolicyARNs:
- arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
- arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
- arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly
- arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

# Manage essential EKS add-ons
addons:
- name: vpc-cni
version: latest
configurationValues: |-
enableNetworkPolicy: "true"
- name: coredns
version: latest
- name: kube-proxy
version: latest
- name: aws-ebs-csi-driver
version: latest
wellKnownPolicies:
ebsCSIController: true

# CloudWatch logging configuration
cloudWatch:
clusterLogging:
enableTypes:
- api
- audit
- authenticator
- controllerManager
- scheduler
=======
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
44 changes: 44 additions & 0 deletions k8s/deployment.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
<<<<<<< HEAD
# Defines the desired state for the application pods.
=======
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
apiVersion: apps/v1
kind: Deployment
metadata:
name: joycrew-backend-deployment
labels:
app: joycrew-backend
spec:
<<<<<<< HEAD
# Runs 2 replicas of the pod for high availability.
=======
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
replicas: 2
selector:
matchLabels:
Expand All @@ -14,6 +22,30 @@ spec:
labels:
app: joycrew-backend
spec:
<<<<<<< HEAD
# Use a dedicated service account for the application pods.
# This is crucial for securely granting AWS permissions via IRSA.
serviceAccountName: joycrew-service-account
containers:
- name: backend-container
image: "566105751077.dkr.ecr.ap-northeast-2.amazonaws.com/joycrew-backend:a761bbb-1754808557"
ports:
- containerPort: 8082
env:
- name: SPRING_DATASOURCE_HIKARI_CONNECTION_TIMEOUT
value: "20000" # 20 seconds
- name: SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE
value: "5"
# Define resource requests and limits for better scheduling and stability.
resources:
requests:
memory: "128Mi"
cpu: "150m"
limits:
memory: "1Gi"
cpu: "500m"
# Readiness probe checks if the container is ready to accept traffic.
=======
# cluster.yml에서 생성한 서비스 계정 이름과 일치해야 함
serviceAccountName: joycrew-service-account
containers:
Expand Down Expand Up @@ -43,15 +75,27 @@ spec:
memory: "1Gi"
cpu: "1000m"

>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
readinessProbe:
httpGet:
path: /
port: 8082
<<<<<<< HEAD
initialDelaySeconds: 30
periodSeconds: 10
# Liveness probe checks if the container is still running correctly.
# If it fails, Kubernetes will restart the container.
=======
initialDelaySeconds: 40
periodSeconds: 10
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
livenessProbe:
httpGet:
path: /
port: 8082
<<<<<<< HEAD
initialDelaySeconds: 60
=======
initialDelaySeconds: 90
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
periodSeconds: 20
28 changes: 28 additions & 0 deletions k8s/ingress.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,35 @@
<<<<<<< HEAD
# /k8s/ingress.yml
# Defines how external traffic reaches the service inside the cluster.
# This configuration uses the AWS Load Balancer Controller to provision an ALB.
=======
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: joycrew-backend-ingress
annotations:
<<<<<<< HEAD
# Creates an internet-facing load balancer.
alb.ingress.kubernetes.io/scheme: internet-facing
# Routes traffic directly to Pod IPs for better performance.
alb.ingress.kubernetes.io/target-type: ip
# Specifies the ARN of the ACM certificate for HTTPS.
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-northeast-2:566105751077:certificate/d5930928-10dc-4f4d-9cc4-67770a94522b
# Configures the ALB to listen on port 443 (HTTPS).
alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
# Redirects HTTP traffic to HTTPS.
alb.ingress.kubernetes.io/ssl-redirect: '443'
spec:
# Specifies that the 'alb' ingress controller should handle this Ingress. (Modern way)
=======
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-northeast-2:566105751077:certificate/d5930928-10dc-4f4d-9cc4-67770a94522b
alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
alb.ingress.kubernetes.io/ssl-redirect: '443'
spec:
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
ingressClassName: alb
rules:
- host: api.joycrew.co.kr
Expand All @@ -18,6 +39,13 @@ spec:
pathType: Prefix
backend:
service:
<<<<<<< HEAD
# Forwards traffic to the 'joycrew-backend-service'.
name: joycrew-backend-service
port:
# Forwards to the service's port 80.
=======
name: joycrew-backend-service
port:
>>>>>>> 12d0498008b5251ba390633e46e4cbf9f1235fd7
number: 80
9 changes: 9 additions & 0 deletions k8s/serviceaccount.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Defines a dedicated identity for the application pods within the cluster.
apiVersion: v1
kind: ServiceAccount
metadata:
name: joycrew-service-account
# Annotations for IAM Roles for Service Accounts (IRSA).
# This links the Kubernetes service account to an AWS IAM role.
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::566105751077:role/eksctl-joycrew-cluster-addon-iamserviceaccoun-Role1-65tzCzsgly5T"
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@
import com.joycrew.backend.service.KycTokenService;
import com.joycrew.backend.util.EmailMasker;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; // 로그 확인용 추가
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Objects;
import java.util.stream.Stream;

@Slf4j // 로그를 찍어보시려면 추가하세요
@Slf4j
@RestController
@RequestMapping("/accounts/emails")
@RequiredArgsConstructor
Expand All @@ -29,12 +29,13 @@ public ResponseEntity<EmailsByPhoneResponse> emailsByPhone(
// 1. 토큰에서 폰번호 추출 (하이픈이 있을 수도 있음)
String rawPhone = kycTokenService.validateAndExtractPhone(kycToken);

// 🚨 [수정 핵심] 숫자 이외의 문자(하이픈 등) 제거 -> "01044907174"
// 숫자 이외의 문자(하이픈 등) 제거 -> "01044907174" 형태로 정규화
String cleanPhone = rawPhone.replaceAll("\\D", "");

log.info("Email Lookup Request - Raw: {}, Clean: {}", rawPhone, cleanPhone);

// 2. 정제된 번호(cleanPhone)로 DB 조회
// EmployeeRepository.findByPhoneNumber(cleanPhone) 가 List<Employee> 라고 가정
List<String> emails = employeeRepo.findByPhoneNumber(cleanPhone).stream()
.flatMap(e -> Stream.of(e.getEmail(), e.getPersonalEmail()))
.filter(Objects::nonNull)
Expand All @@ -52,4 +53,4 @@ public ResponseEntity<EmailsByPhoneResponse> emailsByPhone(
message
));
}
}
}
Loading