μ ν¬ νλ‘μ νΈλ μ¬μ©μμ μν μ νΈμ€νΈ(μ£Όμ΅μ)μ μ°Έμ¬μλ‘ λλμ΄ νμ¬λ₯Ό μ£Όμ΅λ₯Ό νκ³ , μ°Έμ¬(μ§μ)λ₯Ό ν μ μλλ‘ μ€κ°ν΄μ£Όλ μ€κ° νλ«νΌμ λλ€.
ν΄λΌμ°λλ₯Ό νμ©νμ¬ ν΄λΌμ°λ κΈ°λ° λ°μ΄ν° νλ«νΌμ ꡬμνμκ³ , ν΄λΉ νλ«νΌμμ κ°λ ₯ν μν€ν μ²μ΄λ©΄μ λ§μ κΈ°μ λ€μμ μ¬μ©νκ³ μλ MSAλ₯Ό κ²½ννκ³ νμ΅ν΄λ³΄κΈ° μν΄ μ ννμμ΅λλ€.
ν΄λΉ νλ‘μ νΈμμ MSAλ₯Ό μ νν¨μΌλ‘μ¨ νμ μμ λ€λ£¨κ³ μλ 보μ, ν΅μ λ±μ λ¬Έμ λ₯Ό κ²½ννκ³ κ³ λ―Όμ ν΅ν΄ ν΄κ²°νκ³ μ νμμ΅λλ€.
λ¨μν κΈ°λ₯μ ꡬννλ κ²μ κ·ΈμΉλ κ²μ΄ μλ κ°μ§κ³ μλ CS μ§μλ€μ νμ©νκ³ νμλ€κ³Όμ λ Όμλ₯Ό ν΅ν΄ λ¬Έμ ν΄κ²° μλμ ν€μ°λ κ²μ λͺ©μ μ λμμ΅λλ€.
- μ§§μ κΈ°κ° λμ νλ‘μ νΈλ₯Ό μ±κ³΅μ μΌλ‘ μ΄λκΈ° μν΄μ ?
- λ°©λ²λ‘ : μ μμΌ(AGILE) λ°©λ²λ‘
- μν΅ λ°©λ²: Slack
- νμ΅ λ° μ 보 곡μ : Notion(Eventty: Notion Main Page)
- λΈλμΉ κ΄λ¦¬: Git Flow(Eventty: Git Branch Model)
- API λͺ μΈμ: Notionκ³Ό Swagger κ°μ΄ μ¬μ© (Eventty: API λͺ μΈμ)
- Code Convention: Frontend(Eventty: Frontend Code Convention), Backend(Eventty: Backend Code Convention)
- UI β‘οΈ Frontend README
- λ°μν λ μ΄μ΄(PC, Mobile) β‘οΈ Media Query
- μ»΄ν¬λνΈ μ¬μ¬μ©
- ν¨ν€μ§ β‘οΈ κΈ°λ₯ β νμ΄μ§ β λλ°μ΄μ€ μ
- κΈ°μ΄μ μ§μ€
- SOLID μμΉ
- ACIDμ Transaction
- μΆμν, μΊ‘μν, λ€νμ± λ° κ΄μ¬μ¬ λΆλ¦¬
- μμΈ μ²λ¦¬ β‘οΈ μμΈ μ ν(Custom Exception)
- λͺ¨λ리μκ³Όμ μ°¨λ³μ
- νμ₯μ± β‘οΈ μλ²λ₯Ό μ΄λ»κ² λΆλ¦¬ν κ²μΈκ°
- REST API ν΅μ β‘οΈ Restful API ν΅μ
- μλ² κ°μ ν΅μ β‘οΈ λκΈ° νΉμ λΉλκΈ° λ°©μ ν΅μ
- κ°λ° νκ²½ κ΅¬μΆ β‘οΈ Docker Compose μ μ©
- ν΅μ 보μμ μΈ μΈ‘λ©΄ κ³ λ € β‘οΈ νν° μμ€ λ³΄μ => κ²μ΄νΈμ¨μ΄ λ° μΈμ¦μλ² μμ€ λ³΄μ(λ§ν¬)
- μ 체 보μ μμ€ κ³ λ € β‘οΈ JWT, CSRF λ°κΈ λ° κ²μ¦ λ°©μ(λ§ν¬)
- λ‘κΉ μΆμ β‘οΈ κ΅¬μ²΄νλ λ‘κΉ λ°©μ λ° μμΈ μ²λ¦¬ λ°©μ + λΆμ° μΆμ
- ν¨ν€μ§ μ λ΅
- DDD: Domain Drive Design
- κ°μ’
ν¨ν΄λ€
- μ±κΈν€ ν¨ν΄(Singleton Pattern)
- νμ¬λ ν¨ν΄(Facade Pattern)
- νλ‘μ ν¨ν΄(Proxy Pattern)
- ν©ν 리 ν¨ν΄(Factory Pattern)
- μ λ΅ ν¨ν΄(Strategy Pattern)
- MSAλ₯Ό μ μ©ν΄μ κ³ λ €λ κΈ°λ₯ => μ¬ν κΈ°λ₯(MSA νκ²½ κ³ λ €)
- Response Format ν΅μΌ β‘οΈ LSP μλ°° κ³ λ €, ResponseBodyAdvice λμ
- Context κ°μ²΄ λμ β‘οΈ User ID, Authorities, Tracking ID
- Global Filter, AOP β‘οΈ Contextκ°μ²΄ μμ±, κΆν κ²μ¦
- Web Flux β‘οΈ ν ν° κ²μ¦ μμ² λ° μ λ°μ΄νΈ
- Custon RestTemplate β‘οΈ μμΈ μν© λ°μμ ν΄λΌμ΄μΈνΈ μλ²μμ λΆκΈ°μ μ²λ¦¬
- μ μ§λ³΄μμ±
- Global Error Response β‘οΈ Controller Advice, Exception Handler λμ
- νμν λ§€κ°λ³μλ§ κ±΄λ€μ£ΌκΈ° β‘οΈ Converter & Mapper & Utils
- Error Logging ꡬ체ν & (Loggin Level μ‘°μ )
ν΄λΉ νλ‘μ νΈλ MSAλ₯Ό κΈ°λ°μΌλ‘ ꡬμ±λμ΄ μκΈ° λλ¬Έμ κ° μλ²μ μν μ΄ λͺ νν ꡬλΆλμ΄ μμ΅λλ€.
Nginx μλ² μμμ λμνλ©΄μ μ¬μ©μμ κ²μ΄νΈμ¨μ΄(μλ² μ§μ μ )μ μ€κ° λ€λ¦¬ μν μ νλ©΄μ μ¬μ©μλ‘λΆν°μ μμ²μ μ²λ¦¬ν¨κ³Ό λμμ μ¬μ©μλ€λ‘λΆν° λ°±μλ μλ²λ€μ μ¨κ²¨μ£Όλ μν μ μνν΄ μ€λλ€.
κ²μ΄νΈμ¨μ΄ μλ²λ μΉμλ²μ μλΉμ€ μλ²λ€μ μ€κ°μμ ν΅μ μ μ λ¬ν΄μ£Όλ μν μ νλ μλ²μ λλ€.
μΈμ¦ μλ²λ μ¬μ©μλ₯Ό μλ³νκ³ μμ²μ μ ν¨μ± κ²μ¦ μμ κ³Ό κ°μ μΈμ¦/μΈκ° μμ μ μ§μ€μ μΌλ‘ μννλ μλ²μ λλ€.
- μλ²κ°μ ν΅μ - Exception Handling
- μλ²κ°μ ν΅μ - Response Format ν΅μΌ
- Response Format μ΅μ ν
- Cookie μ μ₯ λ¬Έμ
- Docker - Frontμ DNS
- JWT κ²μ¦ - κ²μ΄νΈμ¨μ΄? μΈμ¦ μλ²?
- μλ²κ°μ ν΅μ - ν ν° μ λ°μ΄νΈ β Reactive Programming
- λΆνμν Spring Security μμ‘΄μ± β Context κ°μ²΄ λμ
- μλ²κ°μ ν΅μ - Context κ°μ²΄ λμ ν API Callμμ Request μ΅μ ν μμ
- μλ²κ°μ ν΅μ - Jackson μ¬μ©μ μ£Όμμ (Java Convention)
- MSAμμ μμ λ‘κ·ΈμΈ - Acess Tokenμ μ΄λμμ λ°μμ€κ³ User Infoλ μ΄λμμ λ°μμμΌ νλ?
- λΉμ·ν λ‘μ§μ μμ λ‘κ·ΈμΈ μμ‘΄μ± λ¬Έμ β ν©ν 리 ν¨ν΄ μ μ©
- 볡μ‘ν μ½λ -> μΊ‘μνμ λ©μλ λΆλ¦¬
| λ‘κ·ΈμΈ | κ΅¬κΈ λ‘κ·ΈμΈ |
| νμ¬ λ±λ‘ | λ±λ‘ν νμ¬ μ‘°ν |