ํ MYAONG์ ํ๋ก์ ํธ PPLOG ๋ฐฑ์๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋๋ค.
์๋น์ค ์๊ฐ ๋ฐ ๊ณตํต ๋ฌธ์๋ organization ํ์ด์ง์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
๊ฐ micro service๋ณ ๋ฆฌํฌ์งํ ๋ฆฌ๋ ์๋์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
๊ธฐ๋ฅ๋ณ ๋ฆฌํฌ์งํ ๋ฆฌ
blog service โ ํฌ์คํธ ๋ฐ ํ๋กํ ๊ด๋ฆฌ, ์ปค๋ฎค๋์ผ์ด์
face expression service โ ๋ชจ์ ๋ฉด์ ํ์ ๋ถ์
member service โ ํ์ ๊ฐ์ , ๊ณ์ ์ธ์ฆ/์ธ๊ฐ
personal statement service โ ์๊ธฐ์๊ฐ์ ๊ด๋ฆฌ ๋ฐ ์ฒจ์ญ
portfolio service โ ํฌํธํด๋ฆฌ์ค ๊ด๋ฆฌ
preferred job service โ ๊ด์ฌ ์ง๊ตฐ ์ค์ ๋ฐ ๊ด๋ฆฌ
inquiry service โ ๋ฌธ์์ฌํญ
interview service โ AI ๋ชจ์๋ฉด์
notification service โ ์๋ฆผ ์ฒ๋ฆฌ
kafka streams โ Kafka Streams (post table CDC)
์๋น์ค ๋ฉ์
api gateway โ API Gateway
config โ ์๋น์ค๋ณ ํ๊ฒฝ๋ณ์ ์ค์ ๊ด๋ฆฌ
discovery โ ๋ก์ปฌ ๋ฐ ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ discovery
-
์ ์ฒด
์์ด ๋ค๋ฅธ ๊ฒ๋ผ๋ฆฌ๋ ์ค์ ๋ก๋ FK๋ก ์ค์ ๋์ด ์์ง ์์
๊ณต์ง์ฌํญ ์๋น์ค๋ ํ์์ ๊ธฐ๋ฅ์ผ๋ก, ๊ฐ๋ฐ๋์ง ์์
๋ธ๋ก๊ทธ(์ฒญ๋ก), ๋ฌธ์(๋ ธ๋) ์๋น์ค๋ ํ์ ์ ๋ณด๋ฅผ ์์ฃผ ์ฐธ์กฐํ ํ์๊ฐ ์์ด ๋ณ๋๋ก ํ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ํ ์ด๋ธ์ ์ถ๊ฐ ๊ตฌ์ฑ
-
์๋น์ค๋ณ
MSA๋ฅผ ์ฑํ
ํ์ ๋ถ์ ์๋ฒ๋ Fast API๋ก ๋ณ๋ ๊ตฌ์ฑ
Dev
Prod
- ๊ฐ์์ง
- CDC ๊ตฌํ(MySQL post ํ ์ด๋ธ โ Elasticsearch)
- DB ์ค๊ณ, ๋๋ฉ์ธ ๋งคํ, API ๊ตฌํ(๋ธ๋ก๊ทธ ํ, ํฌํธํด๋ฆฌ์ค), ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๊ด๋ จ ๋ก์ง ๊ตฌํ
- ๊น๋ฏผํ
- CI/CD ํ์ดํ๋ผ์ธ, K8s ํด๋ฌ์คํฐ, ๋ชจ๋ํฐ๋ง ๋ฑ ์ธํ๋ผ ๊ตฌ์ฑ
- DB ์ค๊ณ, Spring Cloud ์๋น์ค ๋ฉ์ ๊ตฌ์ฑ, Spring Security ๊ตฌ์ฑ, API ๊ตฌํ(ํ์(์ฌ์ฉ์, ๊ด๋ฆฌ์)), Feign Client ์ฐ๊ฒฐ (ํ์)
- ์์ํ
- API ๊ตฌํ(๊ด์ฌ ์ง๊ตฐ, ์๊ธฐ์๊ฐ์, ๋ฌธ์, ๋ธ๋ก๊ทธ(๊ด๋ฆฌ์))
- ์กฐ๊ธฐํ
- API ๊ตฌํ(๋ธ๋ก๊ทธ(์ฌ์ฉ์), ๋ชจ์ ๋ฉด์ , ์๋ฆผ), Feign Client ์ฐ๊ฒฐ(์๋ฆผ), AI ์ฐ๋, GPT ์ฐ๋
- ์ตํ์ค
- AI ๊ฐ๋ฐ(๋ชจ์ ๋ฉด์ ์ง๋ฌธ ์์ฑ, ํ์ ๋ถ์)
- API ๊ตฌํ(ํ์ ๋ถ์)
Server
- Java 17, Spring Boot 3.3.4
- Spring Web MVC
- Spring Security, jjwt 0.11.3
- Spring Cloud, Spring Cloud Config, Spring Cloud Netflix(Eureka), Spring Cloud Kubernetes
- AWS SDK(S3 API)
- Swagger
Data
- Spring Data JPA, QueryDSL 5.0.0, Spring Data Redis
- MySQL, H2 (local), Redis, Elasticsearch, Kafka
Build
- Gradle 8.10.2
CI/CD, Infra
- Jenkins
- Docker, Kubernetes
- Prometheus, Grafana
- Kakao Cloud
- Oracle Cloud Infrastructure (Kakao Cloud ์ฌ์ฉ ์ ํ์ผ๋ก ์ธํด ์ฌ์ฉ)
Communication
- Discord, Slack, Github
-
Git Flow ์ฌ์ฉ
-
๊ฐ๋ฐ ์ ์ฐจ
- Github Repository์์ issue ์์ฑ
- Jira์์ issue ์์ฑ ํ branch ์์ฑ
- add โ commit โ push โ pull request
- code review
- pull request๋ฅผ develop branch๋ก merge
- ์ข ๋ฃ๋ issue close ๋ฐ delete branch
-
Branch :
<prefix>/#<Issue_Number>-<description>/<Jira_label_Number> -
Issue Naming :
[<PREFIX>] <Description> -
Commit Message :
:gitmoji:[#<Issue_Number>] <prefix> <Description> -
Gitmoji
prefix gitmoji ์๋ฏธ feature (FEAT) :sparkles:(โจ)์๋ก์ด ๊ธฐ๋ฅ ๊ตฌํ fix :hammer:(๐จ)์์ refactor(REFAC) :recycle:(โป๏ธ)๋ฆฌํฉํ ๋ง chore :wrench:(๐ง)ํจํค์ง ๊ตฌ์กฐ ์์ , code์ ๋ฌด๊ดํ ๋ถ๋ถ๋ค (.gitignore, build.gradle ๊ฐ์) ์์ docs :memo:(๐)๋ฌธ์ ์์ comment :memo:(๐)์ฃผ์ ์ถ๊ฐ test :white_check_mark:(โ )ํ ์คํธ ์ฝ๋, ๋ฆฌํํ ๋ง ํ ์คํธ ์ฝ๋ ์ถ๊ฐ rename :truck:(๐)ํจํค์ง๋ ํด๋์ค๋ช ์์ remove :fire:(๐ฅ)ํจํค์ง๋ ํด๋์ค ์ญ์
Naming
- ํด๋์ค : PascalCase, andยทor์ ๊ฐ์ ์ ์์ฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ 25์ ๋ด์ธ๋ก ์์ฑํฉ๋๋ค.
- ๊ฐ ํจํค์ง๋ช ์ ์ ๋ฏธ์ฌ์ ๋ช ์ํฉ๋๋ค.
- ๊ตฌํ์ฒด์ ๊ฒฝ์ฐ ~Impl๋ฅผ ์ ๋ฏธ์ฌ์ ์ถ๊ฐํฉ๋๋ค. (ex. UserServiceImpl, UserRepositoryImpl)
- ํจ์ : camelCase
- ๋ฉ์๋ ์์ฑ ์์๋ public ๋ฐ์ private์ ๋๋ค. ๋ชจ๋ public ๋ฉ์๋ ๋ฐ์์๋ถํฐ ๋ชจ๋ private ๋ฉ์๋๊ฐ ์ ์๋ฉ๋๋ค.
- event, design๊ณผ ๊ฐ์ ์ด์ค์ ์ธ ๋จ์ด๋ฅผ ๊ฐ์ง๋ ๋จ์ด๋ ์ง์ํฉ๋๋ค.
- ๋ฉ์๋์ ๋ถ์ํจ๊ณผ๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค.
- ์๋๊ฐ ์ ๋ฌ๋๋๋ก ์ต๋ํ ๊ฐ๊ฒฐํ๊ฒ ํํํฉ๋๋ค.
- ๋ฉ์๋์ ๋ชฉ์ ์ ๋์ฌ๋ก ํํํด ๋ฉ์๋์ ์์ ๋ถ์ ๋๋ค.
- ๋ณ์ : camelCase
- DB ํ ์ด๋ธ : snake_case
- ์์ : SCREAMING_SNAKE_CASE
- ์ปฌ๋ ์ (Collection) : ๋ณต์ํ์ ์ฌ์ฉํฉ๋๋ค. (Ex. users, userList)
Package
microservice
โโcommon
โ โโadvice
โโconfig
โโcontroller
โโdto
โ โโrequest
โ โโresponse
โโentity
โโenums
โโrepository
โโservice









