๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (166)

Unfazedโ—๏ธ๐ŸŽฏ

Docker ํ•ต์‹ฌ ๋ช…๋ น์–ด ๋ฐ ์˜๋ฏธ ์ •๋ฆฌ

๊ธฐ๋ณธ ๋ช…๋ น์–ดdocker run - '์‹คํ–‰ํ•˜๋‹ค'์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹œ์ž‘์˜ˆ: docker run nginx - Nginx ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰docker pull - '๋‹น๊ธฐ๋‹ค/๊ฐ€์ ธ์˜ค๋‹ค'Docker Hub ๋˜๋Š” ๋‹ค๋ฅธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋กœ์ปฌ ์‹œ์Šคํ…œ์œผ๋กœ ๋‹ค์šด๋กœ๋“œ์˜ˆ: docker pull ubuntu - Ubuntu ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œdocker push - '๋ฐ€๋‹ค/์˜ฌ๋ฆฌ๋‹ค'๋กœ์ปฌ์—์„œ ๋งŒ๋“  ์ด๋ฏธ์ง€๋ฅผ Docker Hub๋‚˜ ๋‹ค๋ฅธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์—…๋กœ๋“œ์˜ˆ: docker push myusername/myapp - ๋งŒ๋“  ์ด๋ฏธ์ง€๋ฅผ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์—…๋กœ๋“œdocker build - '๊ตฌ์ถ•ํ•˜๋‹ค'Dockerfile์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ Docker ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑ์˜ˆ: docker build -t myapp . - ํ˜„์žฌ ๋””๋ ‰..

Docker 2025. 4. 6. 00:24
AWS ํ”„๋ฆฌ ํ‹ฐ์–ด ๋งŒ๋ฃŒ ํ›„, Gmail Plus Addressing์œผ๋กœ ์ƒˆ ํ”„๋ฆฌ ํ‹ฐ์–ด ์‚ฌ์šฉํ•˜๊ธฐ, free tier ๋งŒ๋ฃŒ ์—ฌ๋ถ€ ์‰ฝ๊ฒŒ ํ™•์ธ ํ•˜๋Š”๋ฒ•

AWS ํ”„๋ฆฌ ํ‹ฐ์–ด ๋งŒ๋ฃŒ ํ›„ ๋Œ€์ฒ˜AWS ํ”„๋ฆฌํ‹ฐ์–ด๊ฐ€ ๋งŒ๋ฃŒ๋˜์–ด ์ƒˆ ๊ณ„์ •์„ ๋งŒ๋“ค๋ ค๋ฉด ์ƒˆ ์ด๋ฉ”์ผ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ Gmail ๊ณ„์ •์œผ๋กœ ๊ณ„์† ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ Gmail์˜ 'Plus Addressing' ๊ธฐ๋Šฅ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค!ํ”Œ๋Ÿฌ์Šค ์ฃผ์†Œ(plus addressing)๋ž€?๊ธฐ์กด ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ๋„ ์ƒˆ๋กœ์šด AWS ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.์‚ฌ์šฉ๋ฒ•: ํ˜„์žฌ ์ด๋ฉ”์ผ ์ฃผ์†Œ์˜ "@" ๊ธฐํ˜ธ ์•ž์— "+"์™€ ์ถ”๊ฐ€ ๋ฌธ์ž๋ฅผ ๋„ฃ์–ด ์‚ฌ์šฉํ•œ๋‹ค.์˜ˆ์‹œ: ์›๋ž˜ ์ด๋ฉ”์ผ์ด test@gmail.com์ด๋ผ๋ฉด, test+aws1@gmail.com์œผ๋กœ ์ƒˆ AWS ๊ณ„์ •์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.์œ„ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋™์ผ gmail ๊ณ„์ •์— ์ถ”์ž๋ฌธ์ž๋ฅผ ๋ถ™์—ฌ ๊ฐ€์ž…ํ•˜์—ฌ ๋™์ผ ๋ฉ”์ผ ๊ณ„์ •์œผ๋กœ ํ”„๋ฆฌ..

AWS 2025. 4. 3. 19:50
[Java] ์ฐธ์กฐ๋ณ€์ˆ˜, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ, hash code, identity hash code

Java์—์„œ ์ฐธ์กฐ๋ณ€์ˆ˜๋Š” ๋‹จ์ˆœํžˆ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ด๋ณด์•˜์„ ๋•Œ๋Š” ํด๋ž˜์Šค๋ช…@16์ง„์ˆ˜ ํ•ด์‹œ์ฝ”๋“œ๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ฐธ์กฐ๋ณ€์ˆ˜๊ฐ€ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ธ์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค.ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐธ์กฐํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์ฐธ์กฐ ๋ณ€์ˆ˜ ์ถœ๋ ฅ ์‹œ ๋‚˜ํƒ€๋‚˜๋Š” ํ•ด์‹œ์ฝ”๋“œ์™€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์˜ ๊ด€๊ณ„์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ ํ•œ๋‹ค.Java์˜ ์ฐธ์กฐ ๋ณ€์ˆ˜์ฐธ์กฐ๋ณ€์ˆ˜๋Š” ํž™(Heap) ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜์ง€๋งŒ, ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ง์ ‘ ์ฃผ์†Œ๊ฐ’์„ ๋…ธ์ถœํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค. ๋Œ€์‹  toString() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํด๋ž˜์Šค๋ช…@ํ•ด์‹œ์ฝ”๋“œ ํ˜•์‹์˜ ๋ฌธ์ž์—ด์ด ๋ฐ˜ํ™˜๋œ๋‹ค. ํ•ด์‹œ์ฝ”๋“œ vs ์‹ค์ œ ์ฃผ์†ŒProduct@1302068a์™€ ๊ฐ™์€ ํ•ด์‹œ์ฝ”๋“œ๋Š” ๊ฐ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์˜๋ฏธํ•˜์ง€ ์•Š๋Š”..

Java 2025. 3. 10. 01:17
[Spring Boot] ๋ฒ„์ „ ์ฒด๊ณ„ Semantic Versioning

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...

Spring 2025. 2. 27. 14:19
[Java] ์˜ฌ๋ฐ”๋ฅธ Optional ์‚ฌ์šฉ์œผ๋กœ API ์„ค๊ณ„ํ•˜๊ธฐ

API๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋งŒ ๋ณด๊ณ ๋„ ๋ฐ˜ํ™˜๊ฐ’์ด ์„ ํƒํ˜•์ธ์ง€, ์ฆ‰ ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ์„ ์‰ฝ๊ฒŒ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ›จ์”ฌ ์•ˆ์ „ํ•˜๊ณ  ๋ช…๋ฃŒํ•œ API๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Java 8๋ถ€ํ„ฐ ๋„์ž…๋œ Optional ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•ด API ์„ค๊ณ„์˜ ๋ช…ํ™•์„ฑ์„ ๋†’์ด๊ณ , NullPointerException๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ์˜ˆ๋ฐฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค.1. Optional์˜ ๊ธฐ๋ณธ ๊ฐœ๋…public final class Optionalextends ObjectA container object which may or may not contain a non-null value. - ๊ณต์‹ ๋ฌธ์„œ ์ •์˜Java 8 ๋ถ€ํ„ฐ ๋„์ž…๋œ Optional๋Š” null์ด ๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ๊ฐ์‹ธ๋Š” ๋ž˜ํผ(wrapp..

Java 2025. 2. 26. 10:32
[Java] Collection์˜ add ๋ฉ”์„œ๋“œ์˜ boolean ํƒ€์ž… ๋ฐ˜ํ™˜๊ณผ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

Collection ์ธํ„ฐํŽ˜์ด์Šค์˜ add ๋ฉ”์„œ๋“œ๋Š” ์ปฌ๋ ‰์…˜์— ํŠน์ • ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ์ด๋‹ค.์ฃผ์š” ํŠน์ง•๋ฐ˜ํ™˜ ๊ฐ’: ์ปฌ๋ ‰์…˜์ด ์ด ํ˜ธ์ถœ๋กœ ์ธํ•ด ๋ณ€๊ฒฝ๋˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.์ค‘๋ณต ์ฒ˜๋ฆฌ: ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ปฌ๋ ‰์…˜(์˜ˆ: Set)์—์„œ ์ด๋ฏธ ํ•ด๋‹น ์š”์†Œ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.์ œ์•ฝ ์‚ฌํ•ญ: ์ปฌ๋ ‰์…˜์€ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ์— ์ œํ•œ์„ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:null ์š”์†Œ ๊ฑฐ๋ถ€ํŠน์ • ํƒ€์ž…์˜ ์š”์†Œ๋งŒ ํ—ˆ์šฉ์˜ˆ์™ธ ์ฒ˜๋ฆฌ: ์ปฌ๋ ‰์…˜์ด ์ด๋ฏธ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‹ค๋ฅธ ์ด์œ ๋กœ ์š”์†Œ ์ถ”๊ฐ€๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋Š” ๊ฒฝ์šฐ, false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋Œ€์‹  ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ์•ผ ํ•œ๋‹ค.boolean ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ด์œ ์ปฌ๋ ‰์…˜ ๋ณ€๊ฒฝ ์—ฌ๋ถ€ ํ™•์ธ: ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๋กœ ์ปฌ๋ ‰์…˜์ด ์‹ค์ œ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค์ค€๋‹ค.์ค‘๋ณต ํ™•์ธ ๋ฉ”์ปค๋‹ˆ..

JDBC์™€ ์ตœ์‹  ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ (SQL Mapper, ORM)

JDBC๋Š” 1996๋…„ JDK 1.1์— ๊ณต์‹ ๋„์ž…๋œ Java์˜ ํ‘œ์ค€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ API๋กœ, ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ ์ž‘์„ฑ๊ณผ ์ˆ˜๋™ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•ด ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์ด ๋‚ฎ๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด SQL Mapper์™€ ORM ๊ธฐ์ˆ ์ด ๋ฐœ์ „ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. JDBC ๋“œ๋ผ์ด๋ฒ„๋ž€?JDBC ๋“œ๋ผ์ด๋ฒ„๋Š” Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DBMS) ์‚ฌ์ด๋ฅผ ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌํ˜„์ฒด์ด๋‹ค. ์ž๋ฐ”์—์„œ ์ œ๊ณตํ•˜๋Š” JDBC API๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ •์˜ํ•  ๋ฟ, ์‹ค์ œ DB ์„œ๋ฒ„์™€ ์ฃผ๊ณ ๋ฐ›๋Š” ํ”„๋กœํ† ์ฝœ์€ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋“œ๋ผ์ด๋ฒ„์˜ ์ฃผ์š” ์—ญํ• JDBC API ํ˜ธ์ถœ(์˜ˆ: Connection, ..

์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค๊ฐ€ Open ์ƒํƒœ์ผ ๋•Œ ์ปจํŠธ๋กค๋Ÿฌ์— ๋Œ€ํ•œ ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ ์—ฌ๋ถ€

1. HTTP ์š”์ฒญ ์ฒ˜๋ฆฌ ํ๋ฆ„a) ์ •์ƒ ์ƒํƒœ(Closed)ํด๋ผ์ด์–ธํŠธ → ์ปจํŠธ๋กค๋Ÿฌ → ์„œ๋น„์Šค → ์™ธ๋ถ€ API ํ˜ธ์ถœ → ์‘๋‹ต ๋ฐ˜ํ™˜๋ชจ๋“  ์š”์ฒญ์ด ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค ๋กœ์ง๊นŒ์ง€ ์ •์ƒ์ ์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค.b) Open ์ƒํƒœ (Resilience4J)ํด๋ผ์ด์–ธํŠธ → ์ปจํŠธ๋กค๋Ÿฌ → ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค(Open) → Fallback ์‘๋‹ต ์ฆ‰์‹œ ๋ฐ˜ํ™˜ (์™ธ๋ถ€ API ํ˜ธ์ถœ ๋ฏธ๋ฐœ์ƒ)์š”์ฒญ์€ ์ปจํŠธ๋กค๋Ÿฌ ์—”๋“œํฌ์ธํŠธ์— ๋„๋‹ฌํ•˜์ง€๋งŒ, ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค๊ฐ€ ์‹ค์ œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‹คํ–‰์„ ์ฐจ๋‹จํ•œ๋‹ค.์™ธ๋ถ€ API ํ˜ธ์ถœ ์—†์ด Fallback ๋ฉ”์„œ๋“œ์—์„œ ์ง์ ‘ ์‘๋‹ต ์ƒ์„ฑ (์˜ˆ: 503 ์—๋Ÿฌ)2. ์ปจํŠธ๋กค๋Ÿฌ ๊ณ„์ธต ์˜ํ–ฅ ๋ถ„์„๊ตฌ๋ถ„์š”์ฒญ ๋„๋‹ฌ ์—ฌ๋ถ€์™ธ๋ถ€ API ํ˜ธ์ถœ ์—ฌ๋ถ€Closedโœ…โœ…Openโœ…โŒHalf-Openโœ…โš ๏ธ (์ œํ•œ์  ํ—ˆ์šฉ)์ปจํŠธ๋กค๋Ÿฌ ์ง„์ž… ๋กœ๊ทธ: ์š”์ฒญ์€ ํ•ญ์ƒ ๊ธฐ๋ก๋จ (HTTP ์š”..

HTTP 2025. 2. 19. 16:27