Skip to content

πŸͺμš°μ•„ν•œν…Œν¬μ½”μŠ€ νŒ€ ν”„λ‘œμ νŠΈ λ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ ν–ˆλ˜ λ‚΄μš©λ“€μ„ μ •λ¦¬ν•œ Repository

Notifications You must be signed in to change notification settings

joseph415/JIKGORAE-project-records

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐳 JIKGORAE-Project-records

λ³Έ μ €μž₯μ†Œμ˜ λͺ©μ μ€ μš°μ•„ν•œν…Œν¬μ½”μŠ€ νŒ€ ν”„λ‘œμ νŠΈ λ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ ν–ˆλ˜ λ‚΄μš©λ“€μ„ μ •λ¦¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

직고래

당신이 μ†ν•œ κ·Έλ£Ή μ–΄λ””λ“  당신이 μ›ν•˜λŠ” 것을 사고 νŒŒμ„Έμš”. 쑰직 쀑고 거래, 직고래 🐳

λ”°λœ»ν•œ ꡐλ₯˜κ°€ μžˆλŠ” 쑰직 λ²Όλ£©μ‹œμž₯을 κΏˆκΎΈλ‹€

기술 μŠ€νƒ

stack

ν”„λ‘œμ νŠΈ μ•„ν‚€ν…μ²˜

project_architectures

CI/CD

CICD

  • CI
    • 정기적인 λΉŒλ“œ 및 ν…ŒμŠ€νŠΈ(μœ λ‹›ν…ŒμŠ€νŠΈ 및 ν†΅ν•©ν…ŒμŠ€νŠΈ)λ₯Ό 거쳐 곡유 λ ˆν¬μ§€ν„°λ¦¬μ— λ³‘ν•©λ˜λŠ” κ³Όμ •
  • CD
    • λ ˆν¬μ§€ν„°λ¦¬μ—μ„œ μ‹€μ‹œκ°„μœΌλ‘œ ν”„λ‘œλ•μ…˜ ν™˜κ²½μœΌλ‘œ λ°°ν¬ν•˜λŠ” μž‘μ—…μ„ μžλ™ν™”ν•˜λŠ” 것

μ‚¬μš©μžμ˜ ν”Όλ“œλ°±μ„ 적극 λ°˜μ˜ν•˜κΈ° μœ„ν•΄ 짧은 주기둜 μ„œλΉ„μŠ€λ₯Ό λ°°ν¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μž¦μ€ λΉŒλ“œμ™€ 배포둜 인해 λ²ˆκ±°λ‘œμ›€μ„ 느꼈고 CI/CD ν™˜κ²½μ„ κ΅¬μ„±ν•˜μ—¬λ¬Έμ œλ₯Ό ν•΄κ²°ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

My Task

  • κ²Œμ‹œκΈ€ 전체 쑰회 μ‹œ JPA μ—°κ΄€ 관계에 μ˜ν•΄ λ‚˜νƒ€λ‚˜λŠ” N+1문제λ₯Ό λ°œκ²¬ν•΄ μ„±λŠ₯ κ°œμ„ 
    • 100개의 κ²Œμ‹œκΈ€ 전체 쑰회 μ‹œ(findAll) 201번의 쿼리λ₯Ό λ§Œλ“€μ—ˆλ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 3번의 쿼리둜 μ€„μ΄λŠ” μ„±λŠ₯ κ°œμ„ μ„ 함
  • κ²Œμ‹œκΈ€ μƒμ„Έμ‘°νšŒμ™€ νŒλ§€λ‚΄μ—­μ— κ΄€ν•œ HTTP APIλ₯Ό 개발
  • νšŒμ›κ°€μž…/둜그인 개발(Spring Security, Kakao OAuth)
    • Form ν˜•μ‹μ˜ λ‘œκ·ΈμΈμ„ OAuth둜 λ³€κ²½
    • Spring Interceptor κΈ°λ°˜μ΄μ—ˆλ˜ JWT 인증 λ‘œμ§μ„ Filter둜 λ³€κ²½
  • λ³΄μ•ˆ μ„œλ²„ ꡬ좕
    • Https λ₯Ό μ μš©ν•˜κ³ , Spring Security와 Nginxλ₯Ό μ‚¬μš©ν•΄ λ³΄μ•ˆμ˜ 취약점을 νŒŒμ•…ν•˜κ³  λ³΄μ•ˆ μˆ˜μ€€μ„ λ†’μž„
    • SSL server 등급을 μΈ‘μ •ν•  수 μžˆλŠ” μ‚¬μ΄νŠΈμ—μ„œ κ°€μž₯ 쒋은 μŠ€μ½”μ–΄ νšλ“
  • docker μ»¨ν…Œμ΄λ„ˆλ₯Ό μ΄μš©ν•΄ 무쀑단 μ„œλ²„ 배포 κ΅¬ν˜„
    • Blue-Green λ°©μ‹μ˜ λ°°ν¬μ „λž΅μ„ μ‚¬μš©ν•΄ 무쀑단 배포 슀크립트 μž‘μ„±
  • React-Native(TypeScript)λ₯Ό μ΄μš©ν•΄ λͺ¨λ°”일 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ»΄ν¬λ„ŒνŠΈμ™€ μŠ€ν¬λ¦°μ„ 개발
    • λ‹‰λ„€μž„ μˆ˜μ •, κ²Œμ‹œκΈ€ 상세 쑰회, νƒœκ·Έ, νŒλ§€μƒνƒœ λ“± μ»΄ν¬λ„ŒνŠΈ, 슀크린 개발

Layered Architecture

도메인 섀계 ν•  λ•Œ 도메인을 관심사 λ³„λ‘œ λ¬Άκ³  λͺ¨λ“ˆ κ°„μ˜ μ˜μ‘΄μ„±μ€ μ΅œμ†Œν™”ν•˜κ³ , 응집성은 μ΅œλŒ€ν™” ν•  수 μžˆλ„λ‘ Layered Architecture 따라 섀계λ₯Ό ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

api
  β”œβ”€β”€ article
  β”‚Β Β  β”œβ”€β”€ application
  β”‚Β Β  β”œβ”€β”€ domain
  β”‚Β Β  β”œβ”€β”€ exception
  β”‚Β Β  β”œβ”€β”€ presentation
  β”‚Β Β  └── query
  β”œβ”€β”€ articlefavoritecount
  β”‚Β Β  β”œβ”€β”€ application
  β”‚Β Β  └── domain
  β”œβ”€β”€ articleorganization
  β”‚Β Β  β”œβ”€β”€ application
  β”‚Β Β  └── domain
  β”œβ”€β”€ chatroom
  β”‚Β Β  β”œβ”€β”€ application
  β”‚Β Β  β”œβ”€β”€ domain
  β”‚Β Β  β”œβ”€β”€ presentation
  β”‚Β Β  └── query
  β”œβ”€β”€ common
  β”‚Β Β  β”œβ”€β”€ aop
  β”‚Β Β  β”œβ”€β”€ config
  β”‚Β Β  └── exception
  β”œβ”€β”€ favorite
  β”‚Β Β  β”œβ”€β”€ application
  β”‚Β Β  β”œβ”€β”€ domain
  β”‚Β Β  β”œβ”€β”€ presentation
  β”‚Β Β  └── query
  β”œβ”€β”€ member
  β”‚Β Β  β”œβ”€β”€ application
  β”‚Β Β  └── presentation
  β”œβ”€β”€ memberOrganization
  β”‚Β Β  β”œβ”€β”€ application
  β”‚Β Β  β”œβ”€β”€ domain
  β”‚Β Β  β”œβ”€β”€ exception
  β”‚Β Β  └── presentation
  β”œβ”€β”€ organization
  β”‚Β Β  β”œβ”€β”€ application
  β”‚Β Β  β”œβ”€β”€ domain
  β”‚Β Β  β”œβ”€β”€ exception
  β”‚Β Β  β”œβ”€β”€ presentation
  β”‚Β Β  └── query
  β”œβ”€β”€ security
  β”‚Β Β  β”œβ”€β”€ config
  β”‚Β Β  β”œβ”€β”€ core
  β”‚Β Β  β”œβ”€β”€ filter
  β”‚Β Β  β”œβ”€β”€ handler
  β”‚Β Β  β”œβ”€β”€ oauth2
  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ authentication
  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ provider
  β”‚Β Β  β”‚Β Β  └── service
  β”‚Β Β  └── web
  └── trade
      β”œβ”€β”€ application
      β”œβ”€β”€ domain
      └── presentation
chat
  β”œβ”€β”€ config
  β”œβ”€β”€ message
  β”‚Β Β  β”œβ”€β”€ application
  β”‚Β Β  β”œβ”€β”€ domain
  β”‚Β Β  └── presentation
  └── wholeMessage
      β”œβ”€β”€ application
      β”œβ”€β”€ domain
      └── presentation

Level 3

도메인 섀계

Lv3도메인

κΈ°μˆ μŠ€νƒμ„ μ„ νƒν•œ 이유

πŸ€΅κΈ°μˆ μŠ€νƒμ„ μ„ νƒν•œ 이유

Spring Securtiy

πŸ”’Spring Securityλž€?

πŸ”‘Spring Security Architectures

HTTPS

πŸ”’HTTPS

OAuth2

πŸ”’OAuth2

Level 4

도메인

Lv4도메인

μΆ”κ°€λœ 도메인

Lv4도메인

무쀑단 배포

λ³€κ²½ν•΄λ³Ό 사항

λ©€ν‹°λͺ¨λ“ˆλ‘œ μΈν•œ 인증인가 문제

About

πŸͺμš°μ•„ν•œν…Œν¬μ½”μŠ€ νŒ€ ν”„λ‘œμ νŠΈ λ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ ν–ˆλ˜ λ‚΄μš©λ“€μ„ μ •λ¦¬ν•œ Repository

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published