์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ๋น์ฃผ๊ธฐ์ ํธ
- reducible
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- ์ค๋ ๋
- ํ๋ก์ด๋์์
- tcp ์ธ๊ทธ๋จผํธ
- ์ฃผ๊ธฐ์ ํธ
- ํ ํฐ ๋ฒ์ค
- IEEE 802
- 99ํด๋ฝ
- well known ํฌํธ
- ์ฝ๋ฉํ ์คํธ์ค๋น
- ๊ฐ๋ฐ์์ทจ์
- ์ค๋ฅ๊ฒ์ถ
- ์ค๋ฅ์ ์ด
- ์ค๋ธ์
- git merge
- leetcode
- i-type
- tcp ํ๋กํ ์ฝ
- ์ฐ๋ถํฌdb
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- til
- ๋ฐ์ดํฐ ์ ์ก
- ํ๋ ์ ๊ตฌ์กฐ
- mariadb
- ํญํด99
- ์์๋ฒํธ
- xv6
- Today
- Total
๋ชฉ๋กWeb (back-end) (8)
Unfazedโ๏ธ๐ฏ

Semantic Versioning(SemVer)์ ์ํํธ์จ์ด ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ฒด๊ณ์ ์ธ ๊ท์น์ผ๋ก, MAJOR.MINOR.PATCH ํ์์ผ๋ก ๋ฒ์ ์ ๊ตฌ์ฑํ๋ค. ์ด ์ฒด๊ณ๋ API๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ช ํํ ์ ๋ฌํ๋ฉฐ, Spring Boot ํ๋ ์์ํฌ์์๋ ํต์ฌ ๋ฒ์ ๊ด๋ฆฌ ์ ๋ต์ผ๋ก ์ฑํ๋์๋ค. Semantic Versioning ๊ธฐ๋ณธ ํ์MAJOR.MINOR.PATCHMAJOR ๋ฒ์ (์ฃผ ๋ฒ์ ): ๊ธฐ์กด ๊ธฐ๋ฅ๊ณผ์ ํธํ์ฑ์ ๊นจ๋จ๋ฆฌ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ ๋ ์ฆ๊ฐ(์: 1.x.x → 2.0.0)MINOR ๋ฒ์ (๋ถ ๋ฒ์ ): ํ์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๋ ์ฆ๊ฐ(์: 2.1.x → 2.2.0)PATCH ๋ฒ์ (ํจ์น ๋ฒ์ ): ๋ฒ๊ทธ ์์ ๋ฑ ๊ธฐ๋ฅ ๋ณ๊ฒฝ ์์ด ๋ด๋ถ ๊ฐ์ ์ด ์์ ๋ ์ฆ๊ฐ(์: 2.2.0 → 2...
@PathVariable๋ชฉ์ : URI ๊ฒฝ๋ก์ ๋ณ์ ๊ฐ์ ์ถ์ถํ ๋ ์ฌ์ฉ์์: /users/{userId} → userId ํ๋ผ๋ฏธํฐ ์ถ์ถํน์ง:URL์ ๊ฒฝ๋ก ์ผ๋ถ๋ก ์ฌ์ฉ๋๋ฉฐ ํ์๊ฐ์ผ๋ก ์ฒ๋ฆฌ๋จRESTful ๋ฆฌ์์ค ์๋ณ์ ์ ํฉ (์: ํน์ ์ฌ์ฉ์ ์กฐํ)@GetMapping("/users/{userId}")public User getUser(@PathVariable String userId) { //} @RequestParam๋ชฉ์ : ์ฟผ๋ฆฌ ์คํธ๋ง(?key=value)์ ํ๋ผ๋ฏธํฐ ์ถ์ถ์์: /users?role=admin → role ๊ฐ ์ถ์ถํน์ง:์ ํ์ ํ๋ผ๋ฏธํฐ ์ฒ๋ฆฌ ๊ฐ๋ฅ (required=false)ํํฐ๋ง, ์ ๋ ฌ, ํ์ด์ง ๋ฑ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ํฉ@GetMapping("/users")public List getU..
JDBC๋ 1996๋ JDK 1.1์ ๊ณต์ ๋์ ๋ Java์ ํ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ API๋ก, ๊ฐ๋ฐ์๋ค์ด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ ์ ์๋ ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๊ธฐ ์ํด ์ค๊ณ๋์๋ค. ๊ทธ๋ฌ๋ ๋ฐ๋ณต์ ์ธ ์ฝ๋ ์์ฑ๊ณผ ์๋ ๋ฆฌ์์ค ๊ด๋ฆฌ๊ฐ ํ์ํด ๊ฐ๋ฐ ์์ฐ์ฑ์ด ๋ฎ๋ค๋ ํ๊ณ๊ฐ ์์๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด SQL Mapper์ ORM ๊ธฐ์ ์ด ๋ฐ์ ํ๊ฒ ๋์๋ค. ๐ก ์ ๋๋ผ์ด๋ฒ๊ฐ ํ์ํ๊ฐ?๋ฒค๋ ์ค๋ฆฝ์ฑ: ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ค JDBC ์ธํฐํ์ด์ค๋ง ์ฌ์ฉ → ์ค์ ๊ตฌํ์ ๊ฐ DB ๋ฒค๋์ ๋๋ผ์ด๋ฒ๊ฐ ๋ด๋นํ๋ซํผ ํธํ์ฑ: OS/๋คํธ์ํฌ ์ฐจ์ด๋ฅผ ๋๋ผ์ด๋ฒ๊ฐ ์ถ์ํ๐ ๋์ ํ๋ฆ์ ํ๋ฆฌ์ผ์ด์ → DriverManager์ ์ฐ๊ฒฐ ์์ฒญ๋ฑ๋ก๋ ๋๋ผ์ด๋ฒ๋ค ์ค JDBC URL ํจํด ์ผ์นํ๋ ๋๋ผ์ด๋ฒ ์ ํํด๋น ๋๋ผ์ด๋ฒ๊ฐ ๋ฌผ๋ฆฌ์ ์ฐ..
1. HTTP ์์ฒญ ์ฒ๋ฆฌ ํ๋ฆa) ์ ์ ์ํ(Closed)ํด๋ผ์ด์ธํธ → ์ปจํธ๋กค๋ฌ → ์๋น์ค → ์ธ๋ถ API ํธ์ถ → ์๋ต ๋ฐํ๋ชจ๋ ์์ฒญ์ด ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด ์๋น์ค ๋ก์ง๊น์ง ์ ์์ ์ผ๋ก ์ ๋ฌ๋๋ค.b) Open ์ํ (Resilience4J)ํด๋ผ์ด์ธํธ → ์ปจํธ๋กค๋ฌ → ์ํท ๋ธ๋ ์ด์ปค(Open) → Fallback ์๋ต ์ฆ์ ๋ฐํ (์ธ๋ถ API ํธ์ถ ๋ฏธ๋ฐ์)์์ฒญ์ ์ปจํธ๋กค๋ฌ ์๋ํฌ์ธํธ์ ๋๋ฌํ์ง๋ง, ์ํท ๋ธ๋ ์ด์ปค๊ฐ ์ค์ ๋น์ฆ๋์ค ๋ก์ง ์คํ์ ์ฐจ๋จํ๋ค.์ธ๋ถ API ํธ์ถ ์์ด Fallback ๋ฉ์๋์์ ์ง์ ์๋ต ์์ฑ (์: 503 ์๋ฌ)2. ์ปจํธ๋กค๋ฌ ๊ณ์ธต ์ํฅ ๋ถ์๊ตฌ๋ถ์์ฒญ ๋๋ฌ ์ฌ๋ถ์ธ๋ถ API ํธ์ถ ์ฌ๋ถClosedโ โ Openโ โHalf-Openโ โ ๏ธ (์ ํ์ ํ์ฉ)์ปจํธ๋กค๋ฌ ์ง์ ๋ก๊ทธ: ์์ฒญ์ ํญ์ ๊ธฐ๋ก๋จ (HTTP ์..

HTTP ์ฟ ํค(HTTP cookie) : ์น ์๋ฒ์ ์ํด ์ฌ์ฉ์์ ์ปดํจํฐ์ ์ ์ฅ๋๋, '์ด๋ฆ์ ๊ฐ์ง ์์ ํฌ๊ธฐ์ ๋ฐ์ดํฐ'.์ธํฐ๋ท ์ฌ์ฉ์๊ฐ ์ด๋ ํ ์น์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ ๊ฒฝ์ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ธํฐ๋ท ์ฌ์ฉ์์ ์ปดํจํฐ๋ ๋ค๋ฅธ ๊ธฐ๊ธฐ์ ์ค์น๋๋ ์์ ๊ธฐ๋ก ์ ๋ณด ํ์ผ๋ก ์ฟ ํค, ์น ์ฟ ํค, ๋ธ๋ผ์ฐ์ ์ฟ ํค๋ผ๊ณ ๋ ํ๋ค. ์ฟ ํค์ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ : ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ , ์ฌ์ฉ์๊ฐ ํด๋น ์๋ฒ์ ์ ๊ทผํ ๋๋ง๋ค ๊ทธ ์ ๋ณด๋ฅผ ํจ๊ป ์ ์กํ๊ฒ ํ๋ ๊ฒ๋ธ๋ผ์ฐ์ ๋ ์ฟ ํค ์ ๋ณด๋ฅผ ์ ์ฅํ ์ฑ ์์ด ์๊ณ , ์ด ๋ฉ์ปค๋์ฆ์ 'ํด๋ผ์ด์ธํธ ์ธก ์ํ' ๋๋ 'HTTP ์ํ ๊ด๋ฆฌ ์ฒด๊ณ(HTTP State Management Mechanism)๋ผ ํ๋ค. ๊ณตํต์ ์ธ ์ฟ ํค ์ ์ฅ ๋ฐฉ์๋ธ๋ผ์ฐ์ ๋ ์ฟ ํค๋ฅผ ๋ก์ปฌ ์ ์ฅ์์ ๋ณด๊ดํ๋๋ฐ ๊ฐ ์ฟ ํค๋ ์ด๋ฆ,..
SOLID๋ ํด๋ฆฐ ์ฝ๋๋ก ์ ๋ช ํ ๋ก๋ฒํธ ๋งํด์ด ์ ์ํ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ๋ฐ ์ค๊ณ์ ๋ค์ฏ ๊ฐ์ง ํต์ฌ ์์น์ด๋ค.1. ๋จ์ผ ์ฑ ์ ์์น (Single Responsibility Principle, SRP)"ํ ํด๋์ค๋ ์ค์ง ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํ๋ค"๋ ๊ฒ์ด SRP์ ํต์ฌ์ด๋ค. ์ฌ๊ธฐ์ '์ฑ ์'์ด๋ ๋ฌด์์ผ๊น?์ฃผ๋ฌธ ์์คํ ์์ ๋ค์๊ณผ ๊ฐ์ ํด๋์ค๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์.// SRP๋ฅผ ์๋ฐํ๋ ์์class Order { public void calculateTotalPrice() { ... } public void printOrder() { ... } public void saveToDatabase() { ... }}// SRP๋ฅผ ์ค์ํ๋ ์์class Order { public void ca..
1. ๋คํธ์ํฌ ์์ฒญ URL ๋ถ์: ์ฌ์ฉ์๊ฐ ์ฃผ์์ฐฝ์ ์ ๋ ฅํ URL์ ๋ถ์ํ์ฌ ํ๋กํ ์ฝ, ํธ์คํธ ์ด๋ฆ, ๊ฒฝ๋ก, ์ฟผ๋ฆฌ ์คํธ๋ง ๋ฑ์ ํ์ ํ๋ค. DNS ์กฐํ: ํธ์คํธ ์ด๋ฆ์ IP ์ฃผ์๋ก ๋ณํํ๊ธฐ ์ํด DNS ์๋ฒ์ ์กฐํ๋ฅผ ๋ณด๋ธ๋ค. TCP ์ฐ๊ฒฐ: DNS ์กฐํ๋ฅผ ํตํด ์ป์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์ TCP ์ฐ๊ฒฐ์ ํ๋ค. HTTP ์์ฒญ: ์๋ฒ์ HTTP ์์ฒญ ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค. HTTP ์์ฒญ ๋ฉ์์ง๋ ์์ฒญ๋๋ ๋ฆฌ์์ค URL, ํค๋ ์ ๋ณด, ์์ฒญ body(POST ๋ฉ์๋ ์ฌ์ฉ ์) ๋ฑ์ ํฌํจํ๋ค. *ํด๋น ๋จ๊ณ์์ ๋ธ๋ผ์ฐ์ ๋ ๋จผ์ ์บ์๋ฅผ ํ์ธํ์ฌ ์์ฒญํ ๋ฆฌ์์ค๊ฐ ์บ์์ ์๋์ง ํ์ธํ๋ค. ์บ์์ ์๋ ๊ฒฝ์ฐ, ๋ธ๋ผ์ฐ์ ๋ ์บ์๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ์์ฒญ์ ์ต์ํํ๋ค. 2. ์๋ฒ ์ฒ๋ฆฌ ๋ฐ ์๋ต ์๋ฒ ์ฒ๋ฆฌ: ..

server:tomcat(thread pool ๋ด thread๋ค)-service(connector(http1.1,http2, AJP ..))-Engine:catalina(n๊ฐ์ host๋ค)-host(m๊ฐ์ context(ex) spring project) - context(k๊ฐ์ servlet๋ค) ํฌํธ๋ฒํธ๋ก ๋์ผ ip ๋ด ๋ค์ํ ์๋ฒ๋ฅผ ๊ตฌ๋ณ(email, file, web server ๋ฑ) *๋ํดํธ๋ก web server์ ํฌํธ๋ฒํธ๋ 80์ด๊ธฐ๋๋ฌธ์ 80ํฌํธ ์ฌ์ฉ์๋ ์๋ต ๊ฐ๋ฅ ex) http://www.springstudy.co.kr/study/list host : www.springstudy.co.kr context(/study) => ํ๋ก์ ํธ servlet(/list) => controller์ ๋น์ทํ ..