-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[IDLE-518] ECR 레파지토리 변경 #254
Conversation
워크스루이 풀 리퀘스트는 GitHub Actions 워크플로우와 Docker Compose 구성 파일의 변경 사항을 포함하고 있습니다. 주요 변경 사항은 Docker 이미지 리포지토리 이름을 변경 사항
관련 가능한 풀 리퀘스트
제안된 레이블
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.github/workflows/prod-server-deployer.yaml (1)
95-95
: 파일 끝에 개행 문자 추가 필요YAML 파일 포맷팅 규칙에 따라 파일 끝에 개행 문자를 추가해주세요.
🧰 Tools
🪛 yamllint (1.35.1)
[error] 95-95: no new line character at the end of file
(new-line-at-end-of-file)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.github/workflows/dev-server-integrator.yaml
(1 hunks).github/workflows/prod-server-deployer.yaml
(1 hunks)idle-presentation/compose-dev.yaml
(1 hunks)
🧰 Additional context used
🪛 yamllint (1.35.1)
.github/workflows/prod-server-deployer.yaml
[error] 95-95: no new line character at the end of file
(new-line-at-end-of-file)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Build and analyze
🔇 Additional comments (2)
idle-presentation/compose-dev.yaml (1)
4-4
: ECR 레포지토리 이름 변경 검증 필요개발 환경의 ECR 레포지토리가 'idle-ecr'에서 'caremeet'으로 변경되었습니다. 이 변경이 로컬 개발 환경에 미치는 영향을 확인해주세요.
✅ Verification successful
ECR 레포지토리 이름 변경 검증 완료
코드베이스 검사 결과, 'idle-ecr'에서 'caremeet'로의 ECR 레포지토리 이름 변경이
compose-dev.yaml
파일에만 국한되어 있습니다. 다른 설정 파일이나 배포 스크립트에는 영향을 미치지 않습니다. 단, 새로운 ECR 레포지토리 설정 방법을 개발 문서에 추가하는 것을 권장드립니다.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # ECR 레포지토리 존재 여부 확인 aws ecr-public describe-repositories --region us-east-1 --repository-names caremeet || echo "Repository does not exist"Length of output: 240
Script:
#!/bin/bash # Search for ECR repository name references echo "=== Searching for 'idle-ecr' references ===" rg "idle-ecr" -l echo -e "\n=== Searching for 'caremeet' references ===" rg "caremeet" -lLength of output: 290
Script:
#!/bin/bash echo "=== README.md content around 'caremeet' mentions ===" rg "caremeet" README.md -B 2 -A 2Length of output: 212
.github/workflows/dev-server-integrator.yaml (1)
32-32
: CI 파이프라인 레포지토리 설정 변경 확인개발 서버 CI 파이프라인의 ECR 레포지토리가 'caremeet'으로 변경되었습니다. 이는 compose-dev.yaml의 변경사항과 일치합니다.
팀원들에게 이 변경사항이 공유되었는지 확인해주세요. 특히 로컬 개발 환경에서 이미지를 가져오는 과정에 영향을 줄 수 있습니다.
- name: SSH to Bastion and Install Docker if not present on Production server | ||
uses: appleboy/ssh-action@v1.0.3 | ||
with: | ||
host: ${{ vars.INSTANCE_HOST }} | ||
username: ${{ vars.INSTANCE_USERNAME }} | ||
host: ${{ vars.BASTION_HOST }} | ||
username: ${{ vars.BASTION_USERNAME }} | ||
key: ${{ secrets.INSTANCE_PEM_KEY }} | ||
script: | | ||
if ! command -v docker >/dev/null 2>&1; then | ||
echo "Installing Docker..." | ||
sudo apt-get update | ||
sudo apt-get install -y docker.io | ||
else | ||
echo "Docker already installed." | ||
fi | ||
if ! command -v docker-compose >/dev/null 2>&1; then | ||
echo "Installing Docker Compose..." | ||
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | ||
sudo chmod +x /usr/local/bin/docker-compose | ||
else | ||
echo "Docker Compose already installed." | ||
fi | ||
|
||
- name: Configuration Env file | ||
uses: appleboy/ssh-action@master | ||
env: | ||
VARS_CONTEXT: ${{ toJson(vars) }} | ||
SECRETS_CONTEXT: ${{ toJson(secrets) }} | ||
with: | ||
host: ${{ vars.INSTANCE_HOST }} | ||
username: ${{ vars.INSTANCE_USERNAME }} | ||
key: ${{ secrets.INSTANCE_PEM_KEY }} | ||
envs: VARS_CONTEXT,SECRETS_CONTEXT | ||
script: | | ||
cd ~/app/docker | ||
jq -s '.[0] * .[1] | del(.INSTANCE_PEM_KEY)' <(echo "$VARS_CONTEXT") <(echo "$SECRETS_CONTEXT") \ | ||
| jq -r 'to_entries | map("\(.key)=\(.value)") | .[]' > .env | ||
ssh -o "ProxyJump=${{ vars.BASTION_HOST }}" -i ${{ secrets.INSTANCE_PEM_KEY }} ${{ vars.INSTANCE_USERNAME }}@${{ vars.INSTANCE_HOST }} << 'EOF' | ||
if ! command -v docker >/dev/null 2>&1; then | ||
echo "Installing Docker..." | ||
sudo apt-get update | ||
sudo apt-get install -y docker.io | ||
else | ||
echo "Docker already installed." | ||
fi | ||
if ! command -v docker-compose >/dev/null 2>&1; then | ||
echo "Installing Docker Compose..." | ||
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | ||
sudo chmod +x /usr/local/bin/docker-compose | ||
else | ||
echo "Docker Compose already installed." | ||
fi | ||
EOF |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
배스천 호스트를 통한 Docker 설치 프로세스 개선 필요
배스천 호스트를 통한 프로덕션 서버 접근 방식이 추가되었습니다. 다음 사항들을 고려해주세요:
- Docker 설치 스크립트에 버전 지정이 없습니다
- 설치 실패 시 에러 처리가 없습니다
- sudo 명령어 실행 권한 확인이 필요합니다
다음과 같이 스크립트를 개선하는 것을 제안드립니다:
- sudo apt-get install -y docker.io
+ DOCKER_VERSION="20.10.24"
+ sudo apt-get install -y docker.io=${DOCKER_VERSION}* || {
+ echo "Docker 설치 실패"
+ exit 1
+ }
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
- name: SSH to Bastion and Install Docker if not present on Production server | |
uses: appleboy/ssh-action@v1.0.3 | |
with: | |
host: ${{ vars.INSTANCE_HOST }} | |
username: ${{ vars.INSTANCE_USERNAME }} | |
host: ${{ vars.BASTION_HOST }} | |
username: ${{ vars.BASTION_USERNAME }} | |
key: ${{ secrets.INSTANCE_PEM_KEY }} | |
script: | | |
if ! command -v docker >/dev/null 2>&1; then | |
echo "Installing Docker..." | |
sudo apt-get update | |
sudo apt-get install -y docker.io | |
else | |
echo "Docker already installed." | |
fi | |
if ! command -v docker-compose >/dev/null 2>&1; then | |
echo "Installing Docker Compose..." | |
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
else | |
echo "Docker Compose already installed." | |
fi | |
- name: Configuration Env file | |
uses: appleboy/ssh-action@master | |
env: | |
VARS_CONTEXT: ${{ toJson(vars) }} | |
SECRETS_CONTEXT: ${{ toJson(secrets) }} | |
with: | |
host: ${{ vars.INSTANCE_HOST }} | |
username: ${{ vars.INSTANCE_USERNAME }} | |
key: ${{ secrets.INSTANCE_PEM_KEY }} | |
envs: VARS_CONTEXT,SECRETS_CONTEXT | |
script: | | |
cd ~/app/docker | |
jq -s '.[0] * .[1] | del(.INSTANCE_PEM_KEY)' <(echo "$VARS_CONTEXT") <(echo "$SECRETS_CONTEXT") \ | |
| jq -r 'to_entries | map("\(.key)=\(.value)") | .[]' > .env | |
ssh -o "ProxyJump=${{ vars.BASTION_HOST }}" -i ${{ secrets.INSTANCE_PEM_KEY }} ${{ vars.INSTANCE_USERNAME }}@${{ vars.INSTANCE_HOST }} << 'EOF' | |
if ! command -v docker >/dev/null 2>&1; then | |
echo "Installing Docker..." | |
sudo apt-get update | |
sudo apt-get install -y docker.io | |
else | |
echo "Docker already installed." | |
fi | |
if ! command -v docker-compose >/dev/null 2>&1; then | |
echo "Installing Docker Compose..." | |
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
else | |
echo "Docker Compose already installed." | |
fi | |
EOF | |
- name: SSH to Bastion and Install Docker if not present on Production server | |
uses: appleboy/ssh-action@v1.0.3 | |
with: | |
host: ${{ vars.BASTION_HOST }} | |
username: ${{ vars.BASTION_USERNAME }} | |
key: ${{ secrets.INSTANCE_PEM_KEY }} | |
script: | | |
ssh -o "ProxyJump=${{ vars.BASTION_HOST }}" -i ${{ secrets.INSTANCE_PEM_KEY }} ${{ vars.INSTANCE_USERNAME }}@${{ vars.INSTANCE_HOST }} << 'EOF' | |
if ! command -v docker >/dev/null 2>&1; then | |
echo "Installing Docker..." | |
sudo apt-get update | |
DOCKER_VERSION="20.10.24" | |
sudo apt-get install -y docker.io=${DOCKER_VERSION}* || { | |
echo "Docker 설치 실패" | |
exit 1 | |
} | |
else | |
echo "Docker already installed." | |
fi | |
if ! command -v docker-compose >/dev/null 2>&1; then | |
echo "Installing Docker Compose..." | |
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
else | |
echo "Docker Compose already installed." | |
fi | |
EOF |
- name: SSH to Bastion and deploy to Production server | ||
uses: appleboy/ssh-action@master | ||
with: | ||
host: ${{ vars.INSTANCE_HOST }} | ||
username: ${{ vars.INSTANCE_USERNAME }} | ||
host: ${{ vars.BASTION_HOST }} | ||
username: ${{ vars.BASTION_USERNAME }} | ||
key: ${{ secrets.INSTANCE_PEM_KEY }} | ||
script: | | ||
ssh -o "ProxyJump=${{ vars.BASTION_HOST }}" -i ${{ secrets.INSTANCE_PEM_KEY }} ${{ vars.INSTANCE_USERNAME }}@${{ vars.INSTANCE_HOST }} << 'EOF' | ||
sudo docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | ||
sudo docker pull public.ecr.aws/f5q3r6m5/idle-prod-ecr:$IMAGE_TAG | ||
if [ $(sudo docker ps -q -f name=caremeet_server_prod) ]; then | ||
sudo docker stop caremeet_server_prod | ||
sudo docker rm caremeet_server_prod | ||
sudo docker stop caremeet_server_prod | ||
sudo docker rm caremeet_server_prod | ||
fi | ||
sudo docker run --name caremeet_server_prod --env-file ./app/docker/.env \ | ||
-e SPRING_PROFILES_ACTIVE=prod \ | ||
-d -p 8080:8080 public.ecr.aws/f5q3r6m5/idle-prod-ecr:$IMAGE_TAG | ||
EOF |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
프로덕션 배포 프로세스 보안 강화 필요
프로덕션 배포 과정에서 몇 가지 보안 관련 우려사항이 있습니다:
- Docker 로그인 정보가 로그에 노출될 수 있습니다
- 컨테이너 이름이 하드코딩되어 있습니다
- 이전 컨테이너 제거 실패 시 에러 처리가 없습니다
다음과 같은 개선을 제안드립니다:
- sudo docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
+ echo "${{ secrets.DOCKER_PASSWORD }}" | sudo docker login --username ${{ secrets.DOCKER_USERNAME }} --password-stdin
- if [ $(sudo docker ps -q -f name=caremeet_server_prod) ]; then
+ CONTAINER_NAME="caremeet_server_prod"
+ if [ $(sudo docker ps -q -f name=${CONTAINER_NAME}) ]; then
+ echo "기존 컨테이너 제거 중..."
+ sudo docker stop ${CONTAINER_NAME} || { echo "컨테이너 중지 실패"; exit 1; }
+ sudo docker rm ${CONTAINER_NAME} || { echo "컨테이너 제거 실패"; exit 1; }
+ fi
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
- name: SSH to Bastion and deploy to Production server | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ vars.INSTANCE_HOST }} | |
username: ${{ vars.INSTANCE_USERNAME }} | |
host: ${{ vars.BASTION_HOST }} | |
username: ${{ vars.BASTION_USERNAME }} | |
key: ${{ secrets.INSTANCE_PEM_KEY }} | |
script: | | |
ssh -o "ProxyJump=${{ vars.BASTION_HOST }}" -i ${{ secrets.INSTANCE_PEM_KEY }} ${{ vars.INSTANCE_USERNAME }}@${{ vars.INSTANCE_HOST }} << 'EOF' | |
sudo docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
sudo docker pull public.ecr.aws/f5q3r6m5/idle-prod-ecr:$IMAGE_TAG | |
if [ $(sudo docker ps -q -f name=caremeet_server_prod) ]; then | |
sudo docker stop caremeet_server_prod | |
sudo docker rm caremeet_server_prod | |
sudo docker stop caremeet_server_prod | |
sudo docker rm caremeet_server_prod | |
fi | |
sudo docker run --name caremeet_server_prod --env-file ./app/docker/.env \ | |
-e SPRING_PROFILES_ACTIVE=prod \ | |
-d -p 8080:8080 public.ecr.aws/f5q3r6m5/idle-prod-ecr:$IMAGE_TAG | |
EOF | |
- name: SSH to Bastion and deploy to Production server | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ vars.BASTION_HOST }} | |
username: ${{ vars.BASTION_USERNAME }} | |
key: ${{ secrets.INSTANCE_PEM_KEY }} | |
script: | | |
ssh -o "ProxyJump=${{ vars.BASTION_HOST }}" -i ${{ secrets.INSTANCE_PEM_KEY }} ${{ vars.INSTANCE_USERNAME }}@${{ vars.INSTANCE_HOST }} << 'EOF' | |
echo "${{ secrets.DOCKER_PASSWORD }}" | sudo docker login --username ${{ secrets.DOCKER_USERNAME }} --password-stdin | |
sudo docker pull public.ecr.aws/f5q3r6m5/idle-prod-ecr:$IMAGE_TAG | |
CONTAINER_NAME="caremeet_server_prod" | |
if [ $(sudo docker ps -q -f name=${CONTAINER_NAME}) ]; then | |
echo "기존 컨테이너 제거 중..." | |
sudo docker stop ${CONTAINER_NAME} || { echo "컨테이너 중지 실패"; exit 1; } | |
sudo docker rm ${CONTAINER_NAME} || { echo "컨테이너 제거 실패"; exit 1; } | |
fi | |
sudo docker run --name caremeet_server_prod --env-file ./app/docker/.env \ | |
-e SPRING_PROFILES_ACTIVE=prod \ | |
-d -p 8080:8080 public.ecr.aws/f5q3r6m5/idle-prod-ecr:$IMAGE_TAG | |
EOF |
* [IDLE-000] Production CI 스크립트 작성 * [IDLE-000] 센터 공고 수정 API 내 접수 방법 null 비허용 * [IDLE-000] 공고 지원자 조회 시, 삭제된 유저는 조회되지 않도록 수정 * [IDLE-363] 센터 관리자 전화 인증 요청 API * [IDLE-363] 개발 환경 ddl-auto 옵션 임시로 create 옵션으로 변경 * [IDLE-365] 공고 크롤러 selenium 로직 수정 및 로컬 동작 확인 * [IDLE-365] 테스트를 위한 스케줄러 기준 시각 변경 * [IDLE-365] batch job enable 옵션 비활성화 * [IDLE-365] ddl-auto update로 변경 * [IDLE-365] 크롤링 공고 필드 null 비허용 * [IDLE-365] 스케줄러 시간 02시로 설정 * [IDLE-366] spring batch selenium 크롤링을 위한 빌드 스크립트 수정 * [IDLE-366] worknet 사이트가 고용 24 사이트로 통합됨에 따라, 크롤링 스크립트 수정 * [IDLE-366] 크롤러 동작 스케줄링 시간 변경 * [IDLE-366] 스프링 초기 실행 시, spring batch 자동 실행 방지 옵션 추가 * [IDLE-366] spring batch 5 버전에서 업데이트 된 변경사항 적용 및 별도의 JobLauncher 구현 * [IDLE-366] 불필요 의존성 및 옵션 제거 * [IDLE-366] 크롤링 조회 API 내 entity status 필드 추가 및 쿼리 수정 * [IDLE-358] 운영 환경 CD 구축 및 운영 환경 profile 설정 추가 * [IDLE-358] 운영 환경 docker run 실행 시 예외 처리 * [IDLE-000] 크롤링 전체 조회 DTO 생성자 추가 * [IDLE-000] 공고 전체 조회 fetchJoin() 중복 이슈 해결을 위한 subquery 분리 * [IDLE-000] AI 코드리뷰 coderabbit 도입 * [IDLE-000] 크롤링 공고 반경범위 조회 필터를 위한 where절 추가 * [IDLE-000] TimeZone 설정이 적용되지 않는 문제 해결 * [IDLE-000] TimeZone 지정 및 @EnableScheduling 설정 * [IDLE-000] TimeZone 설정 제거 * [IDLE-000] 공고 전체 조회 쿼리 롤백 * [IDLE-000] 기존 공고 내 location을 기반으로 위.경도 값을 decoding하도록 변경 * [IDLE-000] 배포 전 최종 QA * [IDLE-000] 크롤링 공고 생성일자 필드 type 변경(timestamp -> date) * [IDLE-000] Redis 비밀번호 설정 추가 (#171) * [IDLE-000] Redis 비밀번호 설정 추가 * [IDLE-000] yaml 파일에 password 필드 추가 * [IDLE-000] redis local default password 설정 * [IDLE-000] compose 파일 내, 비밀번호 지정 command 설정 * [IDLE-000] Redis 볼륨 설정 * [IDLE-000] ci triggering branch 임시 변경 * [IDLE-000] ci triggering branch 롤백 * [IDLE-000] 테스트 심사 통과를 위한 전화번호 검증 로직 추가 * [IDLE-000] 테스트 심사 통과를 위한 전화번호 검증 로직 추가 * [IDLE-389] 센터 인증 요청 이벤트 발생 시, 디스코드 웹훅 알림을 전송하는 로직 작성 * [IDLE-389] 사업자 등록번호 client properties 클래스명 변경 * [IDLE-389] 코드 리뷰 반영 * [IDLE-000] 트랜잭션 전파 레벨 변경(REQUIRED -> REQUIRES_NEW) * [IDLE-396] FCM 모듈 추가 및 firebase 의존성 설정 * readme 제목 수정 * readme 제목 수정 * [IDLE-399] FCM Device Token 관리 API * [IDLE-399] 알림 도메인 설계 * [IDLE-000] fcm service 설정값 주입을 위한 디렉토리 구조 변경 * [IDLE-000] fcm service 설정값 주입을 위한 디렉토리 구조 변경 * [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다. * [IDLE-400] fcm 모듈 설정 추가 * [IDLE-400] 공고 지원자 발생 시, 모든 센터 관리자들에게 다중 알림을 발송한다. * [IDLE-415] 알림 조회 처리 API * [IDLE-417] 읽지 않은 알림 수 집계 API * [IDLE-418] 알림 목록 조회 API * [IDLE-418] 피드백 반영 * [IDLE-423] soft-delete가 적용된 즐겨찾기 entity에서, 즐겨찾기 해제 후 다시 설정하는 경우 발생하는 버그를 해결한다. * [IDLE-424] 요양 보호사 공고 전체 조회 시, 삭제된 공고가 함께 보이는 문제 해결 * [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다. (#183) * [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다. * [IDLE-400] fcm 모듈 설정 추가 * [IDLE-400] 공고 지원자 발생 시, 모든 센터 관리자들에게 다중 알림을 발송한다. * [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다. * [IDLE-400] fcm 모듈 설정 추가 * [IDLE-400] 공고 지원자 발생 시, 모든 센터 관리자들에게 다중 알림을 발송한다. * [IDLE-415] 알림 조회 처리 API * [IDLE-417] 읽지 않은 알림 수 집계 API * [IDLE-418] 알림 목록 조회 API * [IDLE-418] 피드백 반영 * [IDLE-423] soft-delete가 적용된 즐겨찾기 entity에서, 즐겨찾기 해제 후 다시 설정하는 경우 발생하는 버그를 해결한다. * [IDLE-424] 요양 보호사 공고 전체 조회 시, 삭제된 공고가 함께 보이는 문제 해결 * [IDLE-400] 알림 명세 변경 * [IDLE-400] fcm 설정 파일 디렉토리 path 변경 * [IDLE-400] ddl 옵션 변경 * [IDLE-400] ci/cd 옵션 변경 * [IDLE-000] ci triggering branch 복구 * [IDLE-000] develop 환경에서 fcm service 설정 파일 path 수정 * [IDLE-000] fcm service json 파일명 변경 * [IDLE-000] firebase service key 설정 경로 체크를 위해, cd 스크립트를 수정합니다. * Update README.md * [IDLE-000] fcm service key 경로를 class path 경로로 수정 시도 * [IDLE-000] ci triggering branch 임시 변경 * [IDLE-000] firebaseApp 초기화 임시 비활성화 * [IDLE-000] firebaseApp 초기화 임시 비활성화 * [IDLE-000] firebaseApp 초기화 임시 비활성화 * [IDLE-000] file path 앞에 ./ 제외 * [IDLE-000] 절대 경로로 변경 시도 * [IDLE-000] fcm service key 생성 path 수정 * [IDLE-000] fcm service key json file 생성 스크립트 작성 * [IDLE-000] ci triggering branch develop으로 롤백 * [IDLE-000] 불필요 스크립트 제거 * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 (#197) * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-000] ci triggering branch 수정 * [IDLE-000] ci triggering branch 수정 * [IDLE-000] firebase app 초기화 로직 주석 처리 * [IDLE-000] firebase app 초기화 로직 주석 처리 * [IDLE-000] firebase app 초기화 로직 주석 처리 * [IDLE-000] file 대신 string으로 주입받아 초기화하는 방식으로 전환 * [IDLE-000] 일반 string 대신 base64 인코딩 된 문자열을 주입하도록 처리 * [IDLE-000] 일반 string 주입으로 rollback * [IDLE-000] json string log 추가 * [IDLE-000] base64 문자열로 재 변경 * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-429] DB 형상관리를 위한 Flyway 적용 * [IDLE-429] Flyway latest version으로 설정 * [IDLE-429] 피드백 반영 * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-000] 알림 조회 처리 로직에 @transactional 추가 * [IDLE-000] 알림 조회 시, 생성 시각 기준이 아닌 uuid v7 id 기준으로 내림차순 정렬하도록 변경 * [IDLE-000] CI 트리거 브랜치 복구 * [IDLE-454] 테스트를 위한 크롤링 수행 시각 변경 및 로깅 추가 * [IDLE-000] 공고 범위 검색 내 중복 데이터 발생 방지 * [IDLE-000] ci 트리거 브랜치 변경 * [IDLE-000] ci 트리거 브랜치 롤백 * [IDLE-000] monitoring 모듈 추가 및 actuator, prometheus 의존성 추가 * [IDLE-456] monitoring.yml 작성 * [IDLE-456] monitoring profile 추가 * [IDLE-456] actuator dependency group name 수정 * [IDLE-000] 크롤링 주기 하루 2회로 변경 * [IDLE-000] 불필요 로그 제거 * [IDLE-000] 인증번호 SMS 내용 수정 * [IDLE-000] classPath 하위 yaml 파일 확장자 모두 .yml로 통일 * [IDLE-000] 즐겨찾기 facade service에 트랜잭션 추가 (#206) * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-000] facade service에 transaction 추가 * [IDLE-461] 유저가 다중 디바이스에서 알림을 받을 수 있도록 개선한다. (#207) * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-461] 한 유저가 다중 디바이스 설정이 가능하도록 한다. * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-000] presentation module의 gradle 파일에 monitoring 모듈 dependency 추가 * [IDLE-000] deviceToken 서비스에서 트랜잭션 어노테이션 추가 * [IDLE-000] batch 테스트를 위해 30분마다 동작하도록 변경 * [IDLE-475] 채팅, 채팅방 도메인 설계 * [IDLE-475] 채팅 메세지 최소, 최대 길이 제한 설정 * [IDLE-000] Batch 메타데이터 테이블 스크립트 변경 및 크롤링 수행 주기 설정 * [IDLE-000] 운영 환경 CD 스크립트에서 불필요한 step 제거 * [IDLE-000] 도텐브 파일 공백 제거 스크립트 작성, 크롤링 대상일자 전날 등록된 공고로 변경 * [IDLE-000] 크롤링 기준 시각 15시로 임시 변경 * [IDLE-000] cd env 파일 생성 스크립트 변경 * [IDLE-492] 동일 유저가 여러 개의 디바이스를 사용 시, 알림이 중복해서 누적되는 현상 * [IDLE-493] flyway 스크립트 오탈자 수정 * [IDLE-493] flyway 스크립트 오탈자 수정 * [IDLE-494] 요양 보호사 및 센터 프로필에서 긴 텍스트를 입력 가능한 항목을 TEXT 컬럼으로 지정한다. * [IDLE-495] 요양 보호사는 마감된 공고에 지원이 불가능하다. * [IDLE-495] 공고 마감 처리 메서드명 변경 complete -> completed * [IDLE-496] 스프링 프로파일 지정을 위한 환경변수 주입 * [IDLE-496] 로그 일부 수정 * [IDLE-000] 안드로이드 app link를 위한 asset 추가 * [IDLE-190] 센터 관리자 인증 요청 목록 조회 API * [IDLE-000] 크롤링 주기 변경 및 테스트용 에러 로그 추가 * [IDLE-000] 크롤링 대상 사이트에 알림창(alert)이 뜨는 케이스에 대한 처리 * [IDLE-509] 크롤링 전체 조회 시, 공고가 중복 노출되는 현상 해결 * [IDLE-509] 피드백 반영 * [IDLE-509] 사용하지 않는 하위 서비스 의존성 제거 * [IDLE-000] 크롤링 진행 시각 저녁 11시로 변경 * [IDLE-000] 크롤링 공고 즐겨찾기 조회 로직 버그 수정 * [IDLE-000] 요양 보호사 및 센터 관리자 전화번호 컬럼에 unique index 추가 * [IDLE-512] 센터 관리자 인증 요청 event 변경 및 NotificationInfo 인터페이스 패키지 이동 * [IDLE-512] 센터 관리자 인증 요청 event 변경 및 NotificationInfo 인터페이스 패키지 이동 * [IDLE-513] 요양 보호사 location 필드 추가 및 기존 데이터 마이그레이션 * [IDLE-513] 센터 관리자 공고 등록 시, 주변 요양보호사에게 FCM 알림을 일괄 전송한다. * [IDLE-513] 센터 관리자 공고 등록 시, 주변 요양보호사에게 FCM 알림을 일괄 전송한다. * [IDLE-000] notification type enum 속성 추가 * [IDLE-000] 센터 공고 등록 알림 제목 및 프로필 url null로 수정 * [IDLE-000] Readme 업데이트 * [IDLE-504] 센터 관리자 인증 승인 및 거절 API * [IDLE-456] prometheus, grafana 설정을 위한 monitoring.yml 설정 * [IDLE-476] 웹소켓, Redis pub/sub을 이용한 채팅 전송 기능 (#217) * [IDLE-476] 웹소켓 dependency 추가 * [IDLE-476] 웹소켓, Redis pub/sub을 이용한 채팅 전송 기능 * [IDLE-476] 불필요 클래스 제거 * [IDLE-476] 채팅 메세지 생성 책임을 하위 도메인에서 생성하도록 수정 * [IDLE-476] hash 역직렬화 시 필요한 처리를 Serializer 설정 추가 * [IDLE-476] json 역직렬화 시, 특수문자 허용 * [IDLE-476] websocket stomp 엔드포인트 노출 설정 변경 * [IDLE-476] 채팅 메세지 길이 정책 적용 * [IDLE-518] bastion서버를 통해 production 서버로 접근 후, 배포하도록 설정 (#252) * [IDLE-518] ECR 레파지토리 변경 (#254) * [IDLE-518] bastion서버를 통해 production 서버로 접근 후, 배포하도록 설정 * [IDLE-518] ECR 레파지토리 변경 * [IDLE-518] docker-compose 파일 위치 변경 (#256) * [IDLE-518] bastion서버를 통해 production 서버로 접근 후, 배포하도록 설정 * [IDLE-518] ECR 레파지토리 변경 * [IDLE-518] docker-compose 파일 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] target 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] 타겟파일 경로 원상복구 * [IDLE-518] 타겟파일 경로 수정 * [IDLE-518] compose 파일 실행 경로 수정 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] Configuration Env file 스탭 추가 * [IDLE-518] secrets로 변경 * [IDLE-518] CI/CD재가동 전, 수동 실행으로 변경 (#257) * [IDLE-518] bastion서버를 통해 production 서버로 접근 후, 배포하도록 설정 * [IDLE-518] ECR 레파지토리 변경 * [IDLE-518] docker-compose 파일 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] target 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] 타겟파일 경로 원상복구 * [IDLE-518] 타겟파일 경로 수정 * [IDLE-518] compose 파일 실행 경로 수정 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] Configuration Env file 스탭 추가 * [IDLE-518] secrets로 변경 * [IDLE-518] CI/CD 재가동 전 수동으로 수정 * [IDLE-518] CI/CD 재가동 전 수동으로 수정 * [IDLE-518] ECR 레파지토리 작성 * [IDLE-518] 서버 재구축 및 CI/CD 재가동 (#258) * [IDLE-518] bastion서버를 통해 production 서버로 접근 후, 배포하도록 설정 * [IDLE-518] ECR 레파지토리 변경 * [IDLE-518] docker-compose 파일 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] target 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] 타겟파일 경로 원상복구 * [IDLE-518] 타겟파일 경로 수정 * [IDLE-518] compose 파일 실행 경로 수정 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] Configuration Env file 스탭 추가 * [IDLE-518] secrets로 변경 * [IDLE-518] CI/CD 재가동 전 수동으로 수정 * [IDLE-518] CI/CD 재가동 전 수동으로 수정 * [IDLE-518] ECR 레파지토리 작성 * [IDLE-518] .env 파일 경로 변경 * [IDLE-518] 레지스트리 내용 변경 * [IDLE-518] DB 이름을 caremeet으로 변경 * [IDLE-518] 서비스 간 통신을 위한 컨테이너간 네트워크 설정 추가 * [IDLE-518] ddl create 적용 * [IDLE-518] private_key.pem 파일을 통해 접근하도록 수정 * [IDLE-518] 호스트키 체크 우회 수정 * [IDLE-518] SSH 세션에 터미널을 할당하도록 옵션 추가 * [IDLE-518] 터널링 방법을 수정 * [IDLE-518] Private Subnet에 존재하는 서버의 22번 포트를 로컬 2222 포트로 연결 * [IDLE-518] .env파일 생성하는 명령어 수정 * [IDLE-518] 들여쓰기 수정 * [IDLE-518] INPUT_으로 시작하는 항목, .env 파일에 제외 * [IDLE-518] null 값을 제외하는 처리를 추가 * [IDLE-518] 병합 전에 null 값을 제외하는 처리를 추가 * [IDLE-518] context 출력문 추가 * [IDLE-518] JSON 형식으로 변환한 후, SSH 스크립트 내부에서 이를 파일로 저장 * [IDLE-518] .env 파일에 INSTANCE_PEM_KEY가 들어가지 않도록 수정 * [IDLE-518] ddl을 validate으로 수정 * [IDLE-518] 브랜치 push시에 동작하도록 수정 --------- Co-authored-by: wonjunYou <youwjune@gmail.com> Co-authored-by: Wonjun You <59856002+wonjunYou@users.noreply.github.com>
* [IDLE-000] Production CI 스크립트 작성 * [IDLE-000] 센터 공고 수정 API 내 접수 방법 null 비허용 * [IDLE-000] 공고 지원자 조회 시, 삭제된 유저는 조회되지 않도록 수정 * [IDLE-363] 센터 관리자 전화 인증 요청 API * [IDLE-363] 개발 환경 ddl-auto 옵션 임시로 create 옵션으로 변경 * [IDLE-365] 공고 크롤러 selenium 로직 수정 및 로컬 동작 확인 * [IDLE-365] 테스트를 위한 스케줄러 기준 시각 변경 * [IDLE-365] batch job enable 옵션 비활성화 * [IDLE-365] ddl-auto update로 변경 * [IDLE-365] 크롤링 공고 필드 null 비허용 * [IDLE-365] 스케줄러 시간 02시로 설정 * [IDLE-366] spring batch selenium 크롤링을 위한 빌드 스크립트 수정 * [IDLE-366] worknet 사이트가 고용 24 사이트로 통합됨에 따라, 크롤링 스크립트 수정 * [IDLE-366] 크롤러 동작 스케줄링 시간 변경 * [IDLE-366] 스프링 초기 실행 시, spring batch 자동 실행 방지 옵션 추가 * [IDLE-366] spring batch 5 버전에서 업데이트 된 변경사항 적용 및 별도의 JobLauncher 구현 * [IDLE-366] 불필요 의존성 및 옵션 제거 * [IDLE-366] 크롤링 조회 API 내 entity status 필드 추가 및 쿼리 수정 * [IDLE-358] 운영 환경 CD 구축 및 운영 환경 profile 설정 추가 * [IDLE-358] 운영 환경 docker run 실행 시 예외 처리 * [IDLE-000] 크롤링 전체 조회 DTO 생성자 추가 * [IDLE-000] 공고 전체 조회 fetchJoin() 중복 이슈 해결을 위한 subquery 분리 * [IDLE-000] AI 코드리뷰 coderabbit 도입 * [IDLE-000] 크롤링 공고 반경범위 조회 필터를 위한 where절 추가 * [IDLE-000] TimeZone 설정이 적용되지 않는 문제 해결 * [IDLE-000] TimeZone 지정 및 @EnableScheduling 설정 * [IDLE-000] TimeZone 설정 제거 * [IDLE-000] 공고 전체 조회 쿼리 롤백 * [IDLE-000] 기존 공고 내 location을 기반으로 위.경도 값을 decoding하도록 변경 * [IDLE-000] 배포 전 최종 QA * [IDLE-000] 크롤링 공고 생성일자 필드 type 변경(timestamp -> date) * [IDLE-000] Redis 비밀번호 설정 추가 (#171) * [IDLE-000] Redis 비밀번호 설정 추가 * [IDLE-000] yaml 파일에 password 필드 추가 * [IDLE-000] redis local default password 설정 * [IDLE-000] compose 파일 내, 비밀번호 지정 command 설정 * [IDLE-000] Redis 볼륨 설정 * [IDLE-000] ci triggering branch 임시 변경 * [IDLE-000] ci triggering branch 롤백 * [IDLE-000] 테스트 심사 통과를 위한 전화번호 검증 로직 추가 * [IDLE-000] 테스트 심사 통과를 위한 전화번호 검증 로직 추가 * [IDLE-389] 센터 인증 요청 이벤트 발생 시, 디스코드 웹훅 알림을 전송하는 로직 작성 * [IDLE-389] 사업자 등록번호 client properties 클래스명 변경 * [IDLE-389] 코드 리뷰 반영 * [IDLE-000] 트랜잭션 전파 레벨 변경(REQUIRED -> REQUIRES_NEW) * [IDLE-396] FCM 모듈 추가 및 firebase 의존성 설정 * readme 제목 수정 * readme 제목 수정 * [IDLE-399] FCM Device Token 관리 API * [IDLE-399] 알림 도메인 설계 * [IDLE-000] fcm service 설정값 주입을 위한 디렉토리 구조 변경 * [IDLE-000] fcm service 설정값 주입을 위한 디렉토리 구조 변경 * [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다. * [IDLE-400] fcm 모듈 설정 추가 * [IDLE-400] 공고 지원자 발생 시, 모든 센터 관리자들에게 다중 알림을 발송한다. * [IDLE-415] 알림 조회 처리 API * [IDLE-417] 읽지 않은 알림 수 집계 API * [IDLE-418] 알림 목록 조회 API * [IDLE-418] 피드백 반영 * [IDLE-423] soft-delete가 적용된 즐겨찾기 entity에서, 즐겨찾기 해제 후 다시 설정하는 경우 발생하는 버그를 해결한다. * [IDLE-424] 요양 보호사 공고 전체 조회 시, 삭제된 공고가 함께 보이는 문제 해결 * [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다. (#183) * [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다. * [IDLE-400] fcm 모듈 설정 추가 * [IDLE-400] 공고 지원자 발생 시, 모든 센터 관리자들에게 다중 알림을 발송한다. * [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다. * [IDLE-400] fcm 모듈 설정 추가 * [IDLE-400] 공고 지원자 발생 시, 모든 센터 관리자들에게 다중 알림을 발송한다. * [IDLE-415] 알림 조회 처리 API * [IDLE-417] 읽지 않은 알림 수 집계 API * [IDLE-418] 알림 목록 조회 API * [IDLE-418] 피드백 반영 * [IDLE-423] soft-delete가 적용된 즐겨찾기 entity에서, 즐겨찾기 해제 후 다시 설정하는 경우 발생하는 버그를 해결한다. * [IDLE-424] 요양 보호사 공고 전체 조회 시, 삭제된 공고가 함께 보이는 문제 해결 * [IDLE-400] 알림 명세 변경 * [IDLE-400] fcm 설정 파일 디렉토리 path 변경 * [IDLE-400] ddl 옵션 변경 * [IDLE-400] ci/cd 옵션 변경 * [IDLE-000] ci triggering branch 복구 * [IDLE-000] develop 환경에서 fcm service 설정 파일 path 수정 * [IDLE-000] fcm service json 파일명 변경 * [IDLE-000] firebase service key 설정 경로 체크를 위해, cd 스크립트를 수정합니다. * Update README.md * [IDLE-000] fcm service key 경로를 class path 경로로 수정 시도 * [IDLE-000] ci triggering branch 임시 변경 * [IDLE-000] firebaseApp 초기화 임시 비활성화 * [IDLE-000] firebaseApp 초기화 임시 비활성화 * [IDLE-000] firebaseApp 초기화 임시 비활성화 * [IDLE-000] file path 앞에 ./ 제외 * [IDLE-000] 절대 경로로 변경 시도 * [IDLE-000] fcm service key 생성 path 수정 * [IDLE-000] fcm service key json file 생성 스크립트 작성 * [IDLE-000] ci triggering branch develop으로 롤백 * [IDLE-000] 불필요 스크립트 제거 * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 (#197) * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-000] ci triggering branch 수정 * [IDLE-000] ci triggering branch 수정 * [IDLE-000] firebase app 초기화 로직 주석 처리 * [IDLE-000] firebase app 초기화 로직 주석 처리 * [IDLE-000] firebase app 초기화 로직 주석 처리 * [IDLE-000] file 대신 string으로 주입받아 초기화하는 방식으로 전환 * [IDLE-000] 일반 string 대신 base64 인코딩 된 문자열을 주입하도록 처리 * [IDLE-000] 일반 string 주입으로 rollback * [IDLE-000] json string log 추가 * [IDLE-000] base64 문자열로 재 변경 * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-429] DB 형상관리를 위한 Flyway 적용 * [IDLE-429] Flyway latest version으로 설정 * [IDLE-429] 피드백 반영 * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-000] 알림 조회 처리 로직에 @transactional 추가 * [IDLE-000] 알림 조회 시, 생성 시각 기준이 아닌 uuid v7 id 기준으로 내림차순 정렬하도록 변경 * [IDLE-000] CI 트리거 브랜치 복구 * [IDLE-454] 테스트를 위한 크롤링 수행 시각 변경 및 로깅 추가 * [IDLE-000] 공고 범위 검색 내 중복 데이터 발생 방지 * [IDLE-000] ci 트리거 브랜치 변경 * [IDLE-000] ci 트리거 브랜치 롤백 * [IDLE-000] monitoring 모듈 추가 및 actuator, prometheus 의존성 추가 * [IDLE-456] monitoring.yml 작성 * [IDLE-456] monitoring profile 추가 * [IDLE-456] actuator dependency group name 수정 * [IDLE-000] 크롤링 주기 하루 2회로 변경 * [IDLE-000] 불필요 로그 제거 * [IDLE-000] 인증번호 SMS 내용 수정 * [IDLE-000] classPath 하위 yaml 파일 확장자 모두 .yml로 통일 * [IDLE-000] 즐겨찾기 facade service에 트랜잭션 추가 (#206) * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-000] facade service에 transaction 추가 * [IDLE-461] 유저가 다중 디바이스에서 알림을 받을 수 있도록 개선한다. (#207) * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-461] 한 유저가 다중 디바이스 설정이 가능하도록 한다. * [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 * [IDLE-000] presentation module의 gradle 파일에 monitoring 모듈 dependency 추가 * [IDLE-000] deviceToken 서비스에서 트랜잭션 어노테이션 추가 * [IDLE-000] batch 테스트를 위해 30분마다 동작하도록 변경 * [IDLE-475] 채팅, 채팅방 도메인 설계 * [IDLE-475] 채팅 메세지 최소, 최대 길이 제한 설정 * [IDLE-000] Batch 메타데이터 테이블 스크립트 변경 및 크롤링 수행 주기 설정 * [IDLE-000] 운영 환경 CD 스크립트에서 불필요한 step 제거 * [IDLE-000] 도텐브 파일 공백 제거 스크립트 작성, 크롤링 대상일자 전날 등록된 공고로 변경 * [IDLE-000] 크롤링 기준 시각 15시로 임시 변경 * [IDLE-000] cd env 파일 생성 스크립트 변경 * [IDLE-492] 동일 유저가 여러 개의 디바이스를 사용 시, 알림이 중복해서 누적되는 현상 * [IDLE-493] flyway 스크립트 오탈자 수정 * [IDLE-493] flyway 스크립트 오탈자 수정 * [IDLE-494] 요양 보호사 및 센터 프로필에서 긴 텍스트를 입력 가능한 항목을 TEXT 컬럼으로 지정한다. * [IDLE-495] 요양 보호사는 마감된 공고에 지원이 불가능하다. * [IDLE-495] 공고 마감 처리 메서드명 변경 complete -> completed * [IDLE-496] 스프링 프로파일 지정을 위한 환경변수 주입 * [IDLE-496] 로그 일부 수정 * [IDLE-000] 안드로이드 app link를 위한 asset 추가 * [IDLE-190] 센터 관리자 인증 요청 목록 조회 API * [IDLE-000] 크롤링 주기 변경 및 테스트용 에러 로그 추가 * [IDLE-000] 크롤링 대상 사이트에 알림창(alert)이 뜨는 케이스에 대한 처리 * [IDLE-509] 크롤링 전체 조회 시, 공고가 중복 노출되는 현상 해결 * [IDLE-509] 피드백 반영 * [IDLE-509] 사용하지 않는 하위 서비스 의존성 제거 * [IDLE-000] 크롤링 진행 시각 저녁 11시로 변경 * [IDLE-000] 크롤링 공고 즐겨찾기 조회 로직 버그 수정 * [IDLE-000] 요양 보호사 및 센터 관리자 전화번호 컬럼에 unique index 추가 * [IDLE-512] 센터 관리자 인증 요청 event 변경 및 NotificationInfo 인터페이스 패키지 이동 * [IDLE-512] 센터 관리자 인증 요청 event 변경 및 NotificationInfo 인터페이스 패키지 이동 * [IDLE-513] 요양 보호사 location 필드 추가 및 기존 데이터 마이그레이션 * [IDLE-513] 센터 관리자 공고 등록 시, 주변 요양보호사에게 FCM 알림을 일괄 전송한다. * [IDLE-513] 센터 관리자 공고 등록 시, 주변 요양보호사에게 FCM 알림을 일괄 전송한다. * [IDLE-000] notification type enum 속성 추가 * [IDLE-000] 센터 공고 등록 알림 제목 및 프로필 url null로 수정 * [IDLE-000] Readme 업데이트 * [IDLE-504] 센터 관리자 인증 승인 및 거절 API * [IDLE-456] prometheus, grafana 설정을 위한 monitoring.yml 설정 * [IDLE-476] 웹소켓, Redis pub/sub을 이용한 채팅 전송 기능 (#217) * [IDLE-476] 웹소켓 dependency 추가 * [IDLE-476] 웹소켓, Redis pub/sub을 이용한 채팅 전송 기능 * [IDLE-476] 불필요 클래스 제거 * [IDLE-476] 채팅 메세지 생성 책임을 하위 도메인에서 생성하도록 수정 * [IDLE-476] hash 역직렬화 시 필요한 처리를 Serializer 설정 추가 * [IDLE-476] json 역직렬화 시, 특수문자 허용 * [IDLE-476] websocket stomp 엔드포인트 노출 설정 변경 * [IDLE-476] 채팅 메세지 길이 정책 적용 * [IDLE-518] bastion서버를 통해 production 서버로 접근 후, 배포하도록 설정 (#252) * [IDLE-518] ECR 레파지토리 변경 (#254) * [IDLE-518] bastion서버를 통해 production 서버로 접근 후, 배포하도록 설정 * [IDLE-518] ECR 레파지토리 변경 * [IDLE-518] docker-compose 파일 위치 변경 (#256) * [IDLE-518] bastion서버를 통해 production 서버로 접근 후, 배포하도록 설정 * [IDLE-518] ECR 레파지토리 변경 * [IDLE-518] docker-compose 파일 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] target 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] 타겟파일 경로 원상복구 * [IDLE-518] 타겟파일 경로 수정 * [IDLE-518] compose 파일 실행 경로 수정 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] Configuration Env file 스탭 추가 * [IDLE-518] secrets로 변경 * [IDLE-518] CI/CD재가동 전, 수동 실행으로 변경 (#257) * [IDLE-518] bastion서버를 통해 production 서버로 접근 후, 배포하도록 설정 * [IDLE-518] ECR 레파지토리 변경 * [IDLE-518] docker-compose 파일 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] target 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] 타겟파일 경로 원상복구 * [IDLE-518] 타겟파일 경로 수정 * [IDLE-518] compose 파일 실행 경로 수정 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] Configuration Env file 스탭 추가 * [IDLE-518] secrets로 변경 * [IDLE-518] CI/CD 재가동 전 수동으로 수정 * [IDLE-518] CI/CD 재가동 전 수동으로 수정 * [IDLE-518] ECR 레파지토리 작성 * [IDLE-518] 서버 재구축 및 CI/CD 재가동 (#258) * [IDLE-518] bastion서버를 통해 production 서버로 접근 후, 배포하도록 설정 * [IDLE-518] ECR 레파지토리 변경 * [IDLE-518] docker-compose 파일 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] target 경로 변경 * [IDLE-518] 소스파일 경로 변경 * [IDLE-518] 타겟파일 경로 원상복구 * [IDLE-518] 타겟파일 경로 수정 * [IDLE-518] compose 파일 실행 경로 수정 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] 하드코딩된 변수를 secrets로 변경 * [IDLE-518] Configuration Env file 스탭 추가 * [IDLE-518] secrets로 변경 * [IDLE-518] CI/CD 재가동 전 수동으로 수정 * [IDLE-518] CI/CD 재가동 전 수동으로 수정 * [IDLE-518] ECR 레파지토리 작성 * [IDLE-518] .env 파일 경로 변경 * [IDLE-518] 레지스트리 내용 변경 * [IDLE-518] DB 이름을 caremeet으로 변경 * [IDLE-518] 서비스 간 통신을 위한 컨테이너간 네트워크 설정 추가 * [IDLE-518] ddl create 적용 * [IDLE-518] private_key.pem 파일을 통해 접근하도록 수정 * [IDLE-518] 호스트키 체크 우회 수정 * [IDLE-518] SSH 세션에 터미널을 할당하도록 옵션 추가 * [IDLE-518] 터널링 방법을 수정 * [IDLE-518] Private Subnet에 존재하는 서버의 22번 포트를 로컬 2222 포트로 연결 * [IDLE-518] .env파일 생성하는 명령어 수정 * [IDLE-518] 들여쓰기 수정 * [IDLE-518] INPUT_으로 시작하는 항목, .env 파일에 제외 * [IDLE-518] null 값을 제외하는 처리를 추가 * [IDLE-518] 병합 전에 null 값을 제외하는 처리를 추가 * [IDLE-518] context 출력문 추가 * [IDLE-518] JSON 형식으로 변환한 후, SSH 스크립트 내부에서 이를 파일로 저장 * [IDLE-518] .env 파일에 INSTANCE_PEM_KEY가 들어가지 않도록 수정 * [IDLE-518] ddl을 validate으로 수정 * [IDLE-518] 브랜치 push시에 동작하도록 수정 * [IDLE-531] 배치 작업 정상화 (#260) * [IDLE-534] Flayway 재설정 및 배치 메타데이터 테이블 생성 * [IDLE-548] Tasklet을 Chunk로 변경 * [IDLE-549] 배치 실행 API 추가 * [IDLE-533] GeoCodeService 전환 메서드 static으로 전환 * [IDLE-533] 책임별 클래스 분리 * [IDLE-547] 멀티스레드 적용 및 공유자원 분리 * [IDLE-531] 크롤링 기준 날짜 변경 --------- Co-authored-by: wonjunYou <youwjune@gmail.com> Co-authored-by: Wonjun You <59856002+wonjunYou@users.noreply.github.com>
1. 📄 Summary
하드코딩된 ECR 레파지토리 변경
5. 📸 스크린샷(선택)
Summary by CodeRabbit
idle-ecr
에서caremeet
으로 업데이트