0
stars
1
forks
source link
๐ My-Books
๊ฐ๋ฐ ๊ธฐ๊ฐ
๊ตฌ์ฑ์
๊ฐ๋ฐ ํ๊ฒฝ
- ๊ฐ๋ฐ๋๊ตฌ: Intellij IDEA - Ultimate
- ์ธ์ด: Java 11 LTS
- ๋น๋๋๊ตฌ: Maven
- ๊ฐ๋ฐ
- Spring Framework: 5.3
- Spring Boot: 2.7.18
- Spring Cloud
- Spring Cloud Gateway
- Spring Cloud Netflex(Eureka)
- Spring Cloud Config
- Spring Data
- Spring Data JPA
- Spring Data Elasticsearch
- Spring Data Redis
- Spring Batch
- Spring Rest Docs
- JPA
- QueryDSL
- ํ
์คํธ
- Junit5
- AssertJ
- Mockito
- SonarQube
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๊ฒ์์์ง
- ERD
- UI
- NHN Cloud
- Instance
- Secure Key Manager
- Object Storage
- Load Balancer
- ๊ธฐํ
์ฌ์ฉ ๊ธฐ์
![SonarQube](https://img.shields.io/badge/SonarQube-4E9BCD.svg?style=for-the-badge&logo=sonarqube&logoColor=white)
์ํคํ
์ณ ๊ตฌ์กฐ
![my-books service architecture](https://github.com/nhnacademy-be4-My-Books/etc/assets/121997029/f451aa1e-7312-465c-ab46-01c95a38fe7c)
CI/CD
![CI_CD](https://github.com/nhnacademy-be4-My-Books/.github/assets/80580473/5cd4f639-bd75-47cc-8c04-eb0383b8e31f)
ERD
![er1](https://github.com/nhnacademy-be4-My-Books/.github/assets/80580473/443914c1-c967-4032-a8d2-48e584220bf2)
WBS
ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง
- Resource API
![tc2](https://github.com/nhnacademy-be4-My-Books/.github/assets/80580473/26664d9e-0b39-4381-8393-301e9bcf8c4f)
- Authorization API
๊ธฐ๋ฅ
ํ์
- ๋ด๋น์ : ์ด์น์ฌ
- ํ์๊ฐ์
, ์์ , ํํด ,์กฐํ
- ํ์๊ฐ์
์ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ ์ค๋ณต๊ฒ์ฌ , dooray message hook์ ์ด์ฉํ ์ธ์ฆ
- ํ์ ๋น๋ฐ๋ฒํธ๋ BCrypt ๋ฅผ ์ฌ์ฉํด ์ํธํ ํ์ฌ DB์ ์ ์ฅ
- payco ๋ก๊ทธ์ธ API ์ถ๊ฐ
- ํ์ ๋ฑ๊ธ
- ๋ฑ๋ก , ์กฐํ
- ํ์ ๋ฑ๊ธ์ ์ถ๊ฐ์ ๊ธฐ์กด์ ๋ฑ๊ธ์ ์๋์ผ๋ก ๋์ฒด (๊ธฐ์กด ๋ฑ๊ธ์ ๋นํ์ฑ์ผ๋ก ๋ณ๊ฒฝ)
- ํ์ ์ํ
- ์กฐํ
- ํ์ฑ , ํด๋ฉด , ์ ๊ธ , ํํด
์ธ์ฆ/์ธ๊ฐ
- ๋ด๋น์ : ์ด์น์ฌ
- Filter, Interceptor , AOP , JWT ์ฌ์ฉ
์ถํ์ฌ
- ๋ด๋น์: ์ ์ฌํ, ๋ฐ๋ฏผ์
- ์ถํ์ฌ ๋ฑ๋ก, ์์ , ์ญ์
์ ์
- ๋ด๋น์: ์ ์ฌํ, ๋ฐ๋ฏผ์
- ์ ์ ๋ฑ๋ก, ์์ , ์ญ์
- ํ๋ช
์ ์ ์์ ๋ํด ์๊ฐ๊ธ์ ์ถ๊ฐ๋ก ์
๋ ฅํ์ฌ ์ ์ ๊ตฌ๋ถ
์นดํ
๊ณ ๋ฆฌ
- ๋ด๋น์ : ์ด๋ดํธ
- ์นดํ
๊ณ ๋ฆฌ ์์ฑ, ์์ , ์กฐํ
- 1๋จ๊ณ, 2๋จ๊ณ, 3๋จ๊ณ ์นดํ
๊ณ ๋ฆฌ๋ก ์ด๋ฃจ์ด์ง 3์ฐจ์ ํํ
ํ๊ทธ
- ๋ด๋น์ : ์ด๋ดํธ
- ํ๊ทธ ์์ฑ, ์์ , ์ญ์
ํ์ผ
- ๋ด๋น์ : ์ ์ฌํ
- ํ์ผ ์
๋ก๋, ์์ , ์ญ์ , ๋ค์ด๋ก๋ ์ฒ๋ฆฌ
- ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง์ ํ์ผ์ ์ ์ฅํ ์ ์๋ค
- ํ์ผ Multiple ๊ธฐ๋ฅ
- ํ์ผ์ multiple๋ก ์์ฑ ๋ฐ ์์ ์ด ๊ฐ๋ฅํ๋ค
์ํ(๋์)
- ๋ด๋น์: ์ ์ฌํ
- ์ํ ๋ฑ๋ก, ์์ , soft delete
- ์ํ ์์ธ์กฐํ
- ๊ด๋ฆฌ์์ฉ ์ํ ์์ฝ ์กฐํ
์ํ์ข์์
- ๋ด๋น์: ์ ์ฌํ
- ์ํ์ ์ข์์ ๋ฐ ์ทจ์
- ํ์์ฉ ์ข์์ํ ์ํ ์์ฝ ์กฐํ
๊ฒ์
- ๋ด๋น์: ์ ์ฌํ
- ELK ์ฌ์ฉ
- Elasticsearch์์ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ธ๋ฑ์ฑ
- Logstash๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ์
๋ ฅ
- Kibana๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ํ์
- Ngram, Nori ๋ถ์๊ธฐ๋ฅผ ์ด์ฉํ ์ํ ๊ฒ์
redis
- ๋ด๋น์ : ์ ์ฌํ
- ๋น๋ฒํ ๋ด์ฉ ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง๋ ์ฅ๋ฐ๊ตฌ๋์ ์๋ง๊ฒ Redis ์ ์ฉ
- DB์ ๋ถํ๋ฅผ ์ค์ด๊ณ ๋น ๋ฅธ ์๋ต์ ํตํ ์ฌ์ฉ์ฑ ํ๋ณด
- ๋ฉ์ธ ํ์ด์ง์์ ๋ณด์ฌ์ง๋ ๊ฐ๊ฐ์ ์ฑ
๋ชฉ๋ก๋ค ์บ์ฑ
์ฅ๋ฐ๊ตฌ๋
- ๋ด๋น์: ์ ์ฌํ
- ์ฅ๋ฐ๊ตฌ๋ ํ์ด์ง ๋ด์์ ์๋ ์กฐ์ ๋ฐ ์ญ์ ๊ฐ๋ฅ
- ์ฅ๋ฐ๊ตฌ๋ ์์ ๋ฑ๋ก ์ญ์ ์กฐํ ๊ฐ๋ฅํ๋๋ก ๊ตฌํ
- ๋นํ์ ์ฅ๋ฐ๊ตฌ๋๋ ์ฟ ํค๋ก ๊ตฌํ
- ํ์ ์ฅ๋ฐ๊ตฌ๋๋ redis, mysql ์ ์ด์ฉํ์ฌ ๊ตฌํ
- ์๋์ 1 ๋ถํฐ ํด๋น ์ฑ
์ ์ฌ๊ณ ๊น์ง ์ค์
- ๋์ ์ํ๊ฐ ํ๋งค์ค์ด ์๋๊ฒฝ์ฐ ์ฅ๋ฐ๊ตฌ๋์์ ํด๋น ๋์ ์ญ์
- redis์ Pub sub, Phantom Key๋ฅผ ์ฌ์ฉํ์ฌ Redis์ TTL ๋ง๋ฃ ์ DB ์๋์ ์ฅ์ ํตํ ๋ฐ์ดํฐ ์๊ตฌ ์ ์ฅ ๋ฐ ๋ณต์
์ฃผ๋ฌธ
- ๋ด๋น์ : ๋ฐ๋ฏผ์, ์ด์น์ฌ
- ์ฃผ๋ฌธ ์์ฑ ๋ฐ ์กฐํ
- ์ฃผ๋ฌธ์์ ๊ธฐ๋ณธ ์ฃผ๋ฌธ ์ ๋ณด
- ํน์ ์ฃผ๋ฌธ ์ํ์์๋ง ์ฃผ๋ฌธ ์ทจ์
๊ฒฐ์
- ๋ด๋น์ : ๋ฐ๋ฏผ์
- ๊ฒฐ์ ์์ฑ ๋ฐ ์์
- toss payment API ์ฌ์ฉ
ํฌ์ธํธ
- ๋ด๋น์ : ์ด๋ดํธ, ๋ฐ๋ฏผ์, ์ด์น์ฌ
- ํฌ์ธํธ ๋ด์ญ ์์ฑ ์กฐํ, ํฌ์ธํธ ์ ๋ฆฝ
- ๋ฆฌ๋ทฐ, ์ํ ๊ตฌ๋งค, ๋ฑ๊ธ ๋ณ ํฌ์ธํธ ๋ถ์ฌ
- ์ ์ฑ
์ ๋ฐ๋ผ ์ ๋ฆฝ
์ฟ ํฐ
- ๋ด๋น์ : ์ด๋ดํธ
- ์ฟ ํฐ ์์ฑ, ์ญ์ , ์กฐํ
- ์์ผ์ฟ ํฐ ๋ฐ๊ธ
- Spring Bach ์ฌ์ฉ
์ฃผ์
- ๋ด๋น์ : ์ด์น์ฌ
- ์ฃผ์ ๋ฑ๋ก , ์์ , ์ญ์ , ์กฐํ
- Daum ์ฃผ์ api ๋ฅผ ์ด์ฉํด ์ฐํธ๋ฒํธ , ๋๋ก๋ช
์ฃผ์ ์กฐํ
- ์ต๋ 10๊ฐ๊น์ง์ ์ฃผ์ ์ ์ฅ
๋ฆฌ๋ทฐ(์ํํ)
- ๋ด๋น์ : ์ด์น์ฌ
- ๋ฆฌ๋ทฐ ๋ฑ๋ก, ์์ , ์กฐํ
- ๋ณ์ ๋ถ์ฌ ๊ฐ๋ฅ (1 ~ 5)
- ๊ตฌ๋งค์ธ๋ง ๋ฆฌ๋ทฐ ์์ฑ ๊ฐ๋ฅ
- ๋ฆฌ๋ทฐ๋ ๊ตฌ๋งคํ ๋์๋น 1ํ๋ง ์์ฑ ๊ฐ๋ฅ
- ๋ฆฌ๋ทฐ ์์ฑ์ ํฌ์ธํธ ์ ๋ฆฝ
- ์ฑ
์กฐํ์ ์ ์ฒด ๋ฆฌ๋ทฐ ๊ฐ์์ ํ์ ์ ํ๊ท ์ ํจ๊ป ๋ณด์ฌ์ค
๋ฐฐ์ก๊ท์
- ๋ด๋น์ : ์ ์ฌํ
- ๋ฐฐ์ก ๊ท์ ๋ช
๋ฑ๋ก, ์์ , ์กฐํ, ์ญ์
- ๋ฐฐ์ก ๊ท์ ๋ฑ๋ก, ์กฐํ, ์์ , ์ฝ์ญ์
- ๋ฐฐ์ก ๊ท์ ์ ์ํ ๊ฐ์ผ๋ก ํ์ฑํ ๋นํ์ฑํ๋ก ์ฝ ์ญ์ ๋ฅผ ํจ
์ธํ๋ผ
- ๋ด๋น์ : ๋ฐ๋ฏผ์, ์ ์ฌํ
- Github Actions: front, resource, eureka, batch ์๋ฒ CI/CD ๊ด๋ฆฌ
- Jenkins: auth, gateway ์๋ฒ CI/CD ๊ด๋ฆฌ
- ํ๋ก ํธ ์๋ฒ์ Nginx ์น ์๋ฒ ์ค์น ๋ฐ L4 ์ ์ฉ
- ์ ๋ ์นด: client server์ ์ํ๋ฅผ ๊ด์ธกํ๊ธฐ ์ํ ๋๊ตฌ
๋ก๊ทธ
- ๋ด๋น์ : ์ ์ฌํ
- logback ์ฌ์ฉ
- ๊ฐ api ์๋ฒ์ ๋ํด ์ด์ ํ๊ฒฝ๋ณ๋ก ๋ก๊ทธ ๋ ๋ฒจ ์ค์
- ๋ก๊ทธ ํ์ผ ์์ฑ