DevRouteλ μ΄λ³΄ κ°λ°μλ€μ μν΄ μ§λ¬΄λ³ λ‘λλ§΅κ³Ό κΈ°μ μ€νμ μκ°νν΄μ£Όλ νλ«νΌμ λλ€. μ΄ νλ‘μ νΈλ μ΄λ³΄ κ°λ°μλ€μ΄ λͺ©νλ₯Ό λͺ ννκ² μΈμ°κ³ νμν κΈ°μ μ λ¨κ³λ³λ‘ μ΅ν μ μλλ‘ λκΈ° μν΄ μμλμμ΅λλ€.
πκ°λ° λ‘λλ§΅ μ 곡
μ²μ μμνλ κ°λ°μλ€μ μν λ¨κ³λ³ λ‘λλ§΅ μ 곡, μ½κ² λ°λΌν μ μλ κ°μ΄λ!
πΌμ±μ©κ³΅κ³ ν΅ν©
μ¬λ¬ μ±μ©κ³΅κ³ λ₯Ό νλμ! μ΄ν΄νκΈ° μ¬μ΄ ννλ‘ μ 리λ μ 보 μ 곡.
πκΈ°μ μ€ν λΆμ
νμ¬ μμ₯μμ μΈκΈ° μλ κΈ°μ μ€νμ νλμ νμ
, μ΄λ³΄μλ μ½κ² μ΄ν΄ν μ μκ² κ΅¬μ±.
πνμ΅ μλ£ μΆμ²
νμν κΈ°μ μ νμ΅ν μ μλ μ νλΈ μμκ³Ό μ¨λΌμΈ κ°μ μΆμ².
| Front | Back | Back | Back |
|---|---|---|---|
@heewon1104 |
@Munhangyeol |
@mete0rfish |
@maark1106 |
- Operating Systems: Windows 11, macOS
- IDEs: IntelliJ, Visual Studio, AWS
- Frameworks & Libraries: Spring Framework, React
- Languages: Java, SQL, JavaScript
- Version Control: GitHub
- Collaboration Tools: Notion, Discord, Google Meet
- Server & Database: AWS EC2, RDS, Docker
- CI/CD Pipeline: GitHub Actions
- Monitoring Tools: Prometheus, Grafana
[ System Configuration ]
- νλ‘ νΈμλ: React νλ μμν¬λ‘ JavaScript κΈ°λ°μ λ°μν μΉ μΈν°νμ΄μ€λ₯Ό ꡬμΆνμ¬, UI/UXλ₯Ό ꡬννμμ΅λλ€.
- λ°±μλ: Javaλ₯Ό κΈ°λ°μΌλ‘ ν Spring Frameworkμ Spring Bootλ‘ κ²¬κ³ νκ³ νμ₯ κ°λ₯ν μλ² μν€ν μ²λ₯Ό μ€κ³νμ΅λλ€.
- λ°μ΄ν°λ² μ΄μ€: DB μμ§μ MySQL 8.4.0 λ²μ μ μ΄μ©ν©λλ€.
- μΉκ³Ό μλ²μ ν΅μ μ, Jwt Tokenμ μ΄μ©νμ¬ μ μ μ μΈμ¦ λ° μΈκ°κ° μ§νλ©λλ€.
- μλ²μμ λ°μ΄ν°λ² μ΄μ€ μ κ·Ό μ JPA(ORM)μ ꡬνν Hibernateλ₯Ό μ΄μ©νλ©° MySQLκ³Ό μ°λνμ¬ λ°μ΄ν°λ₯Ό μ μ₯ λ° μ΄μ©ν©λλ€.
- APIλ₯Ό μ 곡νλ μ¬λμΈκ³Ό μ νλΈ, μ λ°λ―Έλ OpenAPIλ₯Ό ν΅ν΄ μ 보λ₯Ό μ»μ΅λλ€.
- APIλ₯Ό μ 곡νμ§ μλ μ‘νλλ, μ‘μ½λ¦¬μ, μΈνλ°μ Seleniumμ ν΅ν΄ νλ«νΌκ³Ό μνΈμμ©ν©λλ€.
[ CI/CD ]
- GitHubμ Push ν Mergeκ° λλ©΄ Github Actionsμ CI/CD νμ΄νλΌμΈμ μ΄μ©ν©λλ€.
- Githubμ νμΌμ ν΅ν΄ λΉλ ν, Docker μ΄λ―Έμ§λ₯Ό λΉλνκ³ Docker Hubμ μ΄λ₯Ό Push ν©λλ€.
- Github Actionsλ μλ²κ° λ°°ν¬λ EC2μ SSH μ μνμ¬ Docker Hubλ‘ λΆν° μ΄λ―Έμ§λ₯Ό Pull ν, 컨ν μ΄λλ₯Ό μ€νν©λλ€.
[ AWS ]
- μλ²λ EC2 컨ν μ΄λμμ μλλκ³ , ν΄λΌμ΄μΈνΈλ S3 κΈ°λ°μ CloudFront μλΉμ€λ₯Ό ν΅ν΄ μλλ©λλ€.
- 보μμ μν HTTPS μ μ©μ μν΄ SSLμ ACMμ μ΄μ©νκ³ , Route 53μ ν΅ν΄ λλ©μΈκ³Ό μ°κ²° ν, EC2μ S3μ κ°κ° μ°κ²°ν©λλ€.
- μλ²μ HTTPS μ¬μ©μ κ°μ νκΈ° μν΄ EC2λ λ‘λλ°Έλ°μλ₯Ό ν΅ν΄ HTTP/80 μ μ μ, HTTPS/443μΌλ‘ 리λ€μ΄λ νΈ λλλ‘ μ§μ ν©λλ€.
- ν΄λΌμ΄μΈνΈμ HTTPS μ¬μ©μ κ°μ νκΈ° μν΄ CloudFrontμ μ€μ μ HTTPSλ‘ λ¦¬λ€μ΄λ νΈ λλλ‘ μ§μ ν©λλ€.
κΉλν κ°λ° νλ‘μΈμ€λ₯Ό μ μ§νκΈ° μν΄ GitHub Flow λΈλμΉ μ λ΅μ μ¬μ©ν©λλ€. κ° κΈ°λ₯μ΄λ μμ μ¬νμ λ³λμ λΈλμΉμμ κ°λ°λλ©°, Pull Requestλ₯Ό ν΅ν΄ λ©μΈ λΈλμΉμ λ³ν©λ©λλ€. μΌκ΄μ±μ μν΄ PR ν νλ¦Ώμ μ¬μ©νμ¬ μ£Όμ λ³κ²½ μ¬νμ λͺ νν νκ³ , νμλ€μ΄ ν¨μ¨μ μΌλ‘ μ½λ 리뷰λ₯Ό μ§νν μ μλλ‘ μ§μν©λλ€. μ΄ λ°©μμ μ½λ νμ§μ μ μ§νκ³ νλ ₯μ μΈ κ°λ°μ μ΄μ§ν©λλ€.
.
βββ devroute
βββ api
βΒ Β βββ suggestion
βΒ Β βββ visitorcount
βββ bookmark
βΒ Β βββ domain
βΒ Β βββ exception
βΒ Β βββ json
βββ company
βΒ Β βββ controller
βΒ Β βββ domain
βΒ Β βββ dto
βΒ Β βββ repository
βΒ Β βββ service
βββ crawling
βΒ Β βββ dto
βββ dataloader
βββ global
βΒ Β βββ aop
βΒ Β βΒ Β βββ crawl
βΒ Β βΒ Β βββ timetrace
βΒ Β βββ auth
βΒ Β βΒ Β βββ filter
βΒ Β βΒ Β βββ jwt
βΒ Β βββ config
βΒ Β βββ exception
βββ recruitment
βΒ Β βββ controller
βΒ Β βββ domain
βΒ Β βββ dto
βΒ Β βββ enums
βΒ Β βββ repository
βΒ Β βββ service
βΒ Β βββ utils
βββ roadmap
βΒ Β βββ description
βΒ Β βββ domain
βΒ Β βββ dto
βΒ Β βββ enums
βΒ Β βββ repository
βββ user
βΒ Β βββ domain
βΒ Β βββ dto
βΒ Β βββ enums
βΒ Β βββ service
βββ video
βββ Repository
βββ constans
βββ domain
βββ dto
βΒ Β βββ infrean
βΒ Β βββ udemy
βΒ Β βββ youtube
βββ enums
βββ exception
βββ fetcher
βββ service
-
μμ μΆμ² νμ΄μ§μμ μμμ΄ λ³΄μ΄μ§ μκ±°λ, κ°λ°νκ²½μ λλ―Έ λ°μ΄ν°κ° ν¨κ» 보μ΄λ λ¬Έμ λ₯Ό ν΄κ²°.( #117: μμ μΆμ²μ 보μ¬μ£Όλ νμ΄μ§μ μ€λ₯ μ‘κΈ°)
- κ°λ° λ° μ΄μ νκ²½ λΆλ¦¬
- κΈ°μ‘΄μλ
application.propertiesμμ μλμΌλ‘ νλ‘νμΌμ μ€μ νμ¬ RDSμ λ°μ΄ν°κ° μ€λ³΅ μ μ₯λλ λ¬Έμ κ° μμμ΅λλ€. - μ΄λ₯Ό ν΄κ²°νκΈ° μν΄
application-dev.propertiesμapplication-prod.propertiesνμΌλ‘ νκ²½μ λΆλ¦¬νμ¬, κ° νκ²½μ λ§λ μ€μ μ΄ μλμΌλ‘ μ μ©λλλ‘ κ°μ νμ΅λλ€.
- κΈ°μ‘΄μλ
- κ°λ° λ° μ΄μ νκ²½ λΆλ¦¬
-
CI/CD μ CPU μ¬μ©λ₯ λ° λ©λͺ¨λ¦¬ μ¬μ© λ¬Έμ λ₯Ό ν΄κ²°.(#125:CPUμ¬μ©λ₯ μ μ΄)
- CI/CD κ°μ μ ν΅ν CPU λΆν μν
- Docker λΉλ μ μΊμ±μ μ μ©ν΄ λΉλ μκ°μ λ¨μΆνκ³ , DockerHubμμ μ΄λ―Έμ§λ₯Ό Pullν ν CPU μ¬μ©λ₯ μ μ΄λ₯Ό ν΅ν΄ CI/CD κ³Όμ μμμ λΆνλ₯Ό μ€μμ΅λλ€.
νλͺ© κΈ°μ‘΄ λ°©μ λ³κ²½ ν μ€μ CI/CD μκ° λ¨μΆ μΊμ± λ―Έμ μ©, κΈ΄ λΉλ μκ° μΊμ± λμ μΌλ‘ CI/CD μκ° 55.37% κ°μ CPU μ¬μ©λ₯ μ΅λ 97% λλ¬ κ°μ ν μ½ 53.6% κ°μ - CI/CD κ°μ μ ν΅ν CPU λΆν μν
-
Seleniumμ λμ λκΈ° CPU μ μ μ¨μ 24% κ°μ. (ν¬λ‘€λ§ μ΅μ ν)
- Prometheusλ₯Ό ν΅ν λͺ¨λν°λ§ μ§νλ₯Ό ν΅ν΄ ν¬λ‘€λ§ μ§ν ν μ₯κΈ°μ μΌλ‘ CPU μ μ μ¨μ΄ μμΉνλ κ²μ λ°κ²¬
- μ΄κΈ° μ€μ μ ν΅ν΄ Selenium Driverκ° νμ±νλ μνμμ CPUλ₯Ό μ§μμ μΌλ‘ μ μ
Spring AOPμ ν΅ν΄ ν¬λ‘€λ§μ΄ μ§νλ λ‘μ§ μν ν μλμΌλ‘ quit()μ μννλλ‘ μ€μ
νλͺ© κΈ°μ‘΄ λ°©μ λ³κ²½ ν μ€μ Live Thread Count (νμ¬ μ€ν μ€μΈ λͺ¨λ μ€λ λμ μ) 31 Threads 27 Threads (-4) Daemon Thread Count (λ°±κ·ΈλΌμ΄λ μ€ν μ€μΈ μ€λ λμ μ) 26 Threads 22 Threads (-4) -
λ°μ΄ν°λ² μ΄μ€ Indexλ₯Ό νμ©ν΄μ λΉλμ€ λ°μ΄ν° μ‘°νμ λ°μνλ μ±λ₯μ 96.49% κ°μ
- ννμ΄μ§ νλ©΄μμ λΉλμ€ μ‘°νμμ order byλ₯Ό μν ν μ‘°ννλ μ°μ°μ, κΈ°μ‘΄μλ
Table full scanμ νμ©ν΄μ μ‘°ννλ―λ‘ λλ Έμ - μ΄λ₯Ό μΈλ±μ±μ νμ©ν΄μ 10000κ°μ λ°μ΄ν° κΈ°μ€ 0.009398secμμ 0.00033secλ‘ 96.49% μ±λ₯ κ°μ (μΈλ±μ€λ₯Ό νμ©ν μ‘°νμ±λ₯ μ΅μ ν)
- ννμ΄μ§ νλ©΄μμ λΉλμ€ μ‘°νμμ order byλ₯Ό μν ν μ‘°ννλ μ°μ°μ, κΈ°μ‘΄μλ

