-│ ├── controller
-│ ├── dto
-│ └── service
-│
-├── adevspoon-common ### 공통 모듈 ### (exception, enum,dto)
-├── adevspoon-domain ### 도메인 모듈 ###
-│ ├── common # 도메인 전역적으로 사용되는 컴포넌트
-│ ├── config # 도메인 전역적으로 적용되는 설정
-│ └── <도메인>
-│ ├── domain
-│ ├── dto
-│ ├── exception
-│ ├── repository
-│ └── service
-│
-└── adevspoon-infrastructure ### 외부 시스템 모듈 ###
- ├── common # 인프라 전역적으로 사용되는 컴포넌트
- ├── config # 인프라 전역적으로 적용되는 설정
- └── <외부 시스템> # Oauth, Storage 등
- ├── dto
- ├── exception
- ├── service # interface와 구현체를 분리하여 외부 시스템의 변경에 유연하게 대응
- └── # client, config, util 등 필요에따라 패키지 분리
-```
-
+## 기술스택
+*서버리스 아키텍쳐(AWS API Gateway + Lambda) -> Spring Boot 마이그레이션*
+Spring Boot, Kotlin, JPA, MySQL, LocalStack, AWS, Terraform, Github Actions
-### 🪜 Infra Structure
-AWS & Terraform 기반으로 배포. 프리티어 내에서 최대한 비용 효율적으로 구성
-
-(과거) Serverless 기반
-
+## 인프라
+AWS & Terraform 기반 배포. 비용 효율적으로 구성
+- 구조 : ALB -> EC2 -> RDS (3티어 아키텍쳐)
+- 배포 : Github Actions + CodeDeploy + ALB를 통한 무중단(블루/그린) 배포
-![Serverless](https://github.com/kids-ground/adevspoon-backend/assets/52196792/0a0a9e95-64c0-4280-b552-3a1017d80d5c)
-
-
+![adevspoon-v1](https://github.com/kids-ground/adevspoon-backend/assets/52196792/c3c5eef5-f6b9-4352-bcb3-6454397fc193)
-
-(현재) EC2 기반
-
+## CI/CD & 자동화
+브랜치 & PR 기반 자동화. 무중단 배포 파이프라인 구축
-(작성중)
+![adevspoon-automation](https://github.com/kids-ground/adevspoon-backend/assets/52196792/957ffd4d-9daa-499f-91e7-d68e2be5dca6)
-
-
+1. 최신 Tag 기반으로 자동 버전업된 release 브랜치 생성
+2. 최신 Tag 기반 hotfix 브랜치 생성
+3. release & hotfix 브랜치 내 커밋 시 dev 환경 자동배포
+4. release & hotfix -> develop으로 PR 머지 시 Tag/Release 생성
+5. Tag 생성 시 prod 환경 자동배포
-
-CI/CD
-
-
-1. Github Push
-2. Github Actions 동작 -> ECR Push
-3. EventBridge로 CodePipeline 트리거
-4. CodeDeploy로 블루/그린 배포
-
-
-
-
-
-
-## Rule
-### 📎 Issue & Branch & Commit
-- **Issue**
- - `feature` : 새로운 기능 추가
- - `bugfix` : 버그 수정용
- - `hotfix` : 긴급 수정용
-- **Branch**
- - `main` : 배포 가능한 상태의 코드만 merge
- - `develop` : 기준 브랜치
- - `feat/#{iusse}` : (기능 개발) 이슈번호 기준으로 생성
- - `bugfix/#{issue}` : (버그 수정)
- - `hotfix/#{issue}` : (긴급 수정) main 브랜치에서 생성
-- **Commit**
- - `{깃모지} 메세지` : Gitmoji 기반으로 메시지 작성
-
-
+## History
+**Product**
+- [iOS 앱스토어](https://apps.apple.com/kr/app/%EA%B0%9C%EB%B0%9C-%ED%95%9C-%EC%8A%A4%ED%91%BC/id1638716398)
+- [Android 플레이스토어](https://play.google.com/store/apps/details?id=com.adevspoon.adevspoon&hl=ko&gl=US)
-### 🖇️ Pull Request
-PR Template 기반으로 작성
-- PR Title - `Feat#{issue}. 내용`
-- 본문
- - Issue : `close #issue번호`로 이슈 연결시키기
- - Summary : 기능/버그 요약
- - Description : 설명이 필요한 부분 작성
\ No newline at end of file
+**Tech Log**
+- [AOP를 이용해 이벤트 발행, 비동기로 이벤트 처리하기](https://theliar.tistory.com/11)
+- [MySQL로 분산락 처리하기, 확장성/비용 효율적으로 동시성 관리하기](https://theliar.tistory.com/10)
+- [늘어나는 예외 정보 확장성/가독성 좋게 관리하기](https://theliar.tistory.com/8)
+- [어노테이션으로 API별 인증 해제시키고 가독성/개발생산성 높이기](https://theliar.tistory.com/6)
+- [동일한 API 응답형식 공통처리하여 개발 생산성 높이기](https://theliar.tistory.com/5)
+- [서버 마이그레이션, 요청 및 응답에 포함된 Legacy Enum 효율적으로 관리하기](https://theliar.tistory.com/1)
+
+**Repository**
+- Mobile Repository
+- Infra Repository
+- [Wiki](https://github.com/kids-ground/adevspoon-backend/wiki)
\ No newline at end of file
diff --git a/adevspoon-api/scripts/deploy.sh b/adevspoon-api/scripts/deploy.sh
index edc25371..74bdec24 100644
--- a/adevspoon-api/scripts/deploy.sh
+++ b/adevspoon-api/scripts/deploy.sh
@@ -8,7 +8,7 @@ echo "[$NOW] $JAR 복사"
cp $ROOT_PATH/build/libs/adevspoon-api-0.0.1-SNAPSHOT.jar $JAR
echo "[$NOW] > $JAR 실행"
-nohup java -jar -Dspring.profiles.active=prod $JAR > /dev/null 2> /dev/null < /dev/null &
+nohup java -Duser.timezone=Asia/Seoul -Dspring.profiles.active=prod -jar $JAR > /dev/null 2> /dev/null < /dev/null &
SERVICE_PID=$(pgrep -f $JAR)
diff --git a/adevspoon-config b/adevspoon-config
index c524fcb1..96ee0c6f 160000
--- a/adevspoon-config
+++ b/adevspoon-config
@@ -1 +1 @@
-Subproject commit c524fcb1def20d0064dfd865d6269511ec332d4f
+Subproject commit 96ee0c6ff2b7c28919c381eb0bf4f3dc8db224dc
diff --git a/adevspoon-domain/src/main/kotlin/com/adevspoon/domain/techQuestion/repository/AnswerRepository.kt b/adevspoon-domain/src/main/kotlin/com/adevspoon/domain/techQuestion/repository/AnswerRepository.kt
index c06737f1..1070add4 100644
--- a/adevspoon-domain/src/main/kotlin/com/adevspoon/domain/techQuestion/repository/AnswerRepository.kt
+++ b/adevspoon-domain/src/main/kotlin/com/adevspoon/domain/techQuestion/repository/AnswerRepository.kt
@@ -15,7 +15,7 @@ interface AnswerRepository: JpaRepository, AnswerRepositoryC
@Query("SELECT a FROM AnswerEntity a " +
"LEFT JOIN FETCH a.question " +
"LEFT JOIN FETCH a.user " +
- "WHERE a.question.id = :questionId " +
+ "WHERE a.question.id = :questionId and a.status != com.adevspoon.domain.techQuestion.domain.enums.AnswerStatus.PRIVATE " +
"ORDER BY a.likeCnt DESC " +
"LIMIT 1")
fun findBestAnswerListByQuestionId(questionId: Long): List