πŸ€©μš°μ™“ λ“œλ””μ–΄ μŠ€ν”„λ§λΆ€νŠΈ μ‹œμž‘!! λ„ˆλ¬΄ μ„€λ Œλ‹Ή.

πŸ’« Spring

βœ”οΈ μŠ€ν”„λ§ & μŠ€ν”„λ§λΆ€νŠΈ

βœ… μŠ€ν”„λ§ μƒνƒœκ³„ μ†Œκ°œ
μŠ€ν”„λ§μ€ λ‹€μ–‘ν•œ λͺ¨λ“ˆκ³Ό 라이브러리둜 κ΅¬μ„±λ˜μ–΄ 있으며, IoC(μ œμ–΄μ˜ μ—­μ „)와 DI(μ˜μ‘΄μ„± μ£Όμž…) 같은 핡심 원칙을 톡해 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ν™•μž₯μ„±κ³Ό μœ μ—°μ„±μ„ λ†’μž…λ‹ˆλ‹€.
μ›Ή 개발, 데이터 μ•‘μ„ΈμŠ€, λ³΄μ•ˆ λ“± λ‹€μ–‘ν•œ μ˜μ—­μ„ ν¬κ΄„ν•˜λŠ” λ°©λŒ€ν•œ μƒνƒœκ³„λ₯Ό μžλž‘ν•©λ‹ˆλ‹€.

βœ… μŠ€ν”„λ§ λΆ€νŠΈμ˜ λ“±μž₯
μŠ€ν”„λ§ λΆ€νŠΈλŠ” μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬μ˜ λ³΅μž‘ν•œ 섀정을 μžλ™ν™”ν•˜μ—¬ μ΅œμ†Œν•œμ˜ μ„€μ •λ§ŒμœΌλ‘œλ„ κ°•λ ₯ν•œ μŠ€ν”„λ§ 기반 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ꡬ좕할 수 있게 λ„μ™€μ€λ‹ˆλ‹€.
XML μ„€μ • νŒŒμΌμ΄λ‚˜ 번거둜운 μžλ°” μ„€μ • 클래슀λ₯Ό μž‘μ„±ν•  ν•„μš” 없이 λΉ λ₯΄κ²Œ μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

βœ… μ£Όμš” νŠΉμ§• 1: μžλ™ ꡬ성
μŠ€ν”„λ§ λΆ€νŠΈλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ν΄λž˜μŠ€νŒ¨μŠ€μ™€ μ˜μ‘΄μ„±μ„ 뢄석해, ν•„μš”ν•œ 섀정을 μžλ™μœΌλ‘œ μ μš©ν•©λ‹ˆλ‹€. κ°œλ°œμžλŠ” λ³„λ„μ˜ μ„€μ • 없이도 κ³§λ°”λ‘œ κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

βœ… μ£Όμš” νŠΉμ§• 2: μŠ€νƒ€ν„° νŒ¨ν‚€μ§€
μŠ€ν”„λ§ λΆ€νŠΈλŠ” κ³΅ν†΅μœΌλ‘œ μ‚¬μš©λ˜λŠ” 라이브러리 λ¬ΆμŒμ„ 'μŠ€νƒ€ν„°' ν˜•νƒœλ‘œ μ œκ³΅ν•©λ‹ˆλ‹€. ν•„μš”ν•œ κΈ°λŠ₯에 λ§žλŠ” μŠ€νƒ€ν„° μ˜μ‘΄μ„±λ§Œ μΆ”κ°€ν•˜λ©΄, λ³΅μž‘ν•œ 버전 κ΄€λ¦¬λ‚˜ ν˜Έν™˜μ„± 문제λ₯Ό μ‹ κ²½ μ“Έ ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

βœ… μ£Όμš” νŠΉμ§• 3: 독립 μ‹€ν–‰ν˜• μ• ν”Œλ¦¬μΌ€μ΄μ…˜
μŠ€ν”„λ§ λΆ€νŠΈλŠ” λ‚΄μž₯ ν†°μΊ£, μ œν‹° 등을 ν¬ν•¨ν•˜μ—¬, λ³„λ„μ˜ μ›Ή μ„œλ²„ 없이도 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ‹€ν–‰ κ°€λŠ₯ν•œ JAR(one-jar) ν˜•νƒœλ‘œ 배포가 κ°„νŽΈν•΄μ§‘λ‹ˆλ‹€.

βœ… μ£Όμš” νŠΉμ§• 4: ν”„λ‘œλ•μ…˜ μ€€λΉ„ κΈ°λŠ₯
μŠ€ν”„λ§ λΆ€νŠΈλŠ” λͺ¨λ‹ˆν„°λ§, λ‘œκΉ…, λ³΄μ•ˆ λ“± ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ ν•„μš”ν•œ κΈ°λŠ₯듀을 기본적으둜 μ œκ³΅ν•˜λ©°, Actuatorλ₯Ό 톡해 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μƒνƒœλ₯Ό μ‰½κ²Œ 점검할 수 μžˆμŠ΅λ‹ˆλ‹€.

βœ… μŠ€ν”„λ§ λΆ€νŠΈμ˜ μž₯점
λΉ λ₯Έ ν”„λ‘œν† νƒ€μ΄ν•‘, κ°„νŽΈν•œ μ„€μ •, λ‚΄μž₯ μ„œλ²„ 제곡 λ“±μœΌλ‘œ κ°œλ°œμžλŠ” λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ— 집쀑할 수 μžˆμŠ΅λ‹ˆλ‹€. μ„€μ •κ³Ό ꡬ성이 λ‹¨μˆœν•΄μ§€λ©΄μ„œ μœ μ§€λ³΄μˆ˜μ™€ ν™•μž₯성도 크게 ν–₯μƒλ©λ‹ˆλ‹€.


βœ”οΈ μŠ€ν”„λ§ λΆ€νŠΈ κ°œλ°œν™˜κ²½μ„€μ • & μ‹€ν–‰

βœ… IDE μ„€μΉ˜

JetBrains 곡식 ν™ˆνŽ˜μ΄μ§€μ—μ„œ Community(무료) λ˜λŠ” Ultimate(유료) 버전을 λ‹€μš΄λ‘œλ“œν•˜μ„Έμš”.

βœ… Java Development Kit(JDK)λ₯Ό μ„€μΉ˜ν•œ ν›„, ν„°λ―Έλ„μ—μ„œ java --version을 μž…λ ₯ν•΄ μ„€μΉ˜λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

1️⃣ menu > File > Project Structure > Project

2️⃣ SDK -> Eclipse Temurin 17 확인

β­• 있으면 -> 선택

❌ μ—†μœΌλ©΄ ->

  • 쒌츑 SDKs νƒ­μœΌλ‘œ 이동
    '+' (Add New SDK) λ²„νŠΌ 클릭
    Download JDK 클릭

  • version: 17
    Vendor: Eclipse Temurin
    μ„ νƒν•˜κ³  download

3️⃣ menu > run > edit configuration
java-17, -cp: hello.main 확인
main method μžˆλŠ” 클래슀 κ²½λ‘œκΉŒμ§€ 잘 확인 ν›„ ok

4️⃣ λ§ˆμ§€λ§‰μœΌλ‘œ root 폴더에 system.properries νŒŒμΌμ„ μΆ”κ°€ν•˜κ³ 
java.runtime.version=17 적은 λ’€ μ €μž₯ν•œλ‹€. Koyeb으둜 배포할 λ•Œ μžλ°” 버전을 λͺ…μ‹œν•˜κΈ° μœ„ν•¨.


βœ… Spring Initializr μ„€μ •
Starting-Spring-boot-web-server


βœ… κΈ°λ³Έ ꡬ쑰 μš”μ•½
src/main/javaμ—λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이, resourcesμ—λŠ” μ„€μ • 파일이, test/javaμ—λŠ” ν…ŒμŠ€νŠΈ μ½”λ“œκ°€ μœ„μΉ˜ν•©λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ λ£¨νŠΈμ—λŠ” λΉŒλ“œ 도ꡬ μ„€μ • 파일이 μžˆμŠ΅λ‹ˆλ‹€.


πŸ” μŠ€ν”„λ§ λΆ€νŠΈ ν™˜κ²½ ꡬ성 μš”μ•½

ν•­λͺ©μ„€λͺ…
IDE μ„€μΉ˜IntelliJ IDEA (Community λ˜λŠ” Ultimate 버전)
JDK μ„€μΉ˜ 및 확인Java 17 λ˜λŠ” 21 μ„€μΉ˜, java -version λͺ…λ Ήμ–΄λ‘œ 확인
ν”„λ‘œμ νŠΈ 생성 방법IntelliJμ—μ„œ Spring Initializr μ‚¬μš©
μ£Όμš” 디렉토리 ꡬ쑰src/main/java, resources, test/java, build.gradle/pom.xml
μ‹€ν–‰ 확인 방법Main 클래슀 μ‹€ν–‰ β†’ "Started ...Application" 둜그 확인
λŒ€ν‘œ μ• λ…Έν…Œμ΄μ…˜@SpringBootApplication β†’ μ‹€ν–‰ μ§„μž…μ  ν΄λž˜μŠ€μ— μ‚¬μš©

βœ”οΈ Koyeb으둜 λ°°ν¬ν•˜κΈ°

βœ… Koyeb은 κΉƒν—ˆλΈŒμ™€ μ—°λ™ν•˜μ—¬ λ ˆν¬μ§€ν† λ¦¬λ₯Ό μžλ™μœΌλ‘œ 배포해쀀닀.
λ¨Όμ € μΈν…”λ¦¬μ œμ΄ μ½”λ“œλ₯Ό κΉƒν—ˆλΈŒμ— pushν•΄λ‘”λ‹€.

Koyeb κ³΅μ‹ν™ˆνŽ˜μ΄μ§€

βœ… νšŒμ›κ°€μž…ν•˜κΈ° or λ‘œκ·ΈμΈν•˜κΈ°
νšŒμ›κ°€μž…μ€ κΉƒν—ˆλΈŒ μ•„μ΄λ””λ‘œ ν•œλ‹€(continue with github)

βœ… create service -> web service -> github 클릭
첫 둜그인이라면 github 둜그인 창이 λœ¨λŠ”λ° λŒ€μΆ© λ‹€ okν•˜κ³  λ„˜μ–΄κ°€λ©΄ λœλ‹€..

βœ… Create a new service μ—μ„œ μ›ν•˜λŠ” κΉƒ λ ˆνŒŒμ§€ν† λ¦¬λ₯Ό μ„ νƒν•œλ‹€.

βœ… CPU Ecoμ—λŠ” 무료 μƒν’ˆμ΄ μžˆλ‹€. λ ˆμ΄ν„΄μ‹œκ°€ 짧은 κ²ƒμœΌλ‘œ μ„ νƒν•œλ‹€.

βœ… Exposed ports λΆ€λΆ„μ—μ„œ 8000 -> 8080 λ°”κΎΌ λ’€ deploy.

βœ… deployκ°€ μ™„λ£Œλ˜λ©΄ spring λ§ˆν¬κ°€ μ½˜μ†”μ— λœ¬λ‹€.

profile
πŸ—‚οΈ hamstern

0개의 λŒ“κΈ€