๋กœ์ปฌ ์บ์‹œ & ๋ถ„์‚ฐ ์บ์‹œ ์ดํ•ดํ•˜๊ธฐ
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿ”– ๋จผ์ € ์ฝ์œผ๋ฉด ์ข‹์€ ๊ธ€ ์บ์‹œ(Cache) ๊ฐœ๋… ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•˜๊ธฐ๐Ÿš€ ์บ์‹œ(Cache)๋ž€?์ง€๊ธˆ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ง์ ‘ ์กฐํšŒํ•ด์™”์Šต๋‹ˆ๋‹ค.๊ฐœ๋ฐœ์„ ๊ณต๋ถ€ํ•ด๋ดค๋‹ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์€ I/O ์ž‘์—…์˜ ์˜ํ–ฅ์ด ํฌ๋‹ค๋Š” ๋ง์„ ๋“ค์–ด๋ดค์„ ๊ฒ๋‹ˆ๋‹ค.๊ทธ๋งŒํผ ์žฆ์€ Dsyleeblog.tistory.com์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ๋ฐ˜๋ณต์ ์œผ๋กœ ์กฐํšŒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ์— ์ €์žฅํ•˜๋ฉด,๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์บ์‹œ๋ฅผ ๋กœ์ปฌ ์บ์‹œ์™€ ๋ถ„์‚ฐ ์บ์‹œ๋กœ ๋‚˜๋ˆ„์–ด ์•Œ์•„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.โœ… ๋กœ์ปฌ ์บ์‹œ๋กœ์ปฌ ์บ์‹œ๋Š” ๊ฐ ์„œ๋ฒ„๋งˆ๋‹ค ๋‚ด์žฅ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ „๋žต์ž…๋‹ˆ๋‹ค.์ฆ‰, ๋กœ์ปฌ ์บ์‹œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋‚ด๋ถ€์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. Spring์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ JVM ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.Spring์—..
์บ์‹œ(Cache) ๊ฐœ๋… ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•˜๊ธฐ
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿš€ ์บ์‹œ(Cache)๋ž€?์ง€๊ธˆ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ง์ ‘ ์กฐํšŒํ•ด์™”์Šต๋‹ˆ๋‹ค.๊ฐœ๋ฐœ์„ ๊ณต๋ถ€ํ•ด๋ดค๋‹ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์€ I/O ์ž‘์—…์˜ ์˜ํ–ฅ์ด ํฌ๋‹ค๋Š” ๋ง์„ ๋“ค์–ด๋ดค์„ ๊ฒ๋‹ˆ๋‹ค.๊ทธ๋งŒํผ ์žฆ์€ DB ์ ‘๊ทผ์€ ๋ถ€๋‹ด์ด ๋˜๋ฉฐ ์†๋„๋„ ๋А๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ์ž์ฃผ ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋” ๋นจ๋ฆฌ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ์š”? ๋ฐ”๋กœ ์บ์‹œ๊ฐ€ ๊ทธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.์บ์‹œ(Cache)๋ž€, ์ž์ฃผ ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž„์‹œ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์„ ๋งํ•ฉ๋‹ˆ๋‹ค.์บ์‹œ๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ , ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์บ์‹œ์˜ ๋ชฉ์ ์€ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ฅผ ํ†ตํ•ด ์‘๋‹ต ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ณ , ์‹œ์Šคํ…œ ๋ถ€ํ•˜์™€ ๋น„์šฉ์„ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ์†๋„๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ..
[OS] ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์—์„œ ๊ฒฝ์Ÿ ์ƒํƒœ ํ•ด๊ฒฐ: ์ƒํ˜ธ ๋ฐฐ์ œ (๋ฎคํ…์Šค์™€ ์„ธ๋งˆํฌ์–ด)
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿ“Œ ์˜ค๋Š˜ ์ฃผ์ œ์ธ ๊ฒฝ์Ÿ ์ƒํƒœ์™€ ์ƒํ˜ธ ๋ฐฐ์ œ๋Š” ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ์™ธ์—๋„ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค์—์„œ๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด์ง€๋งŒ์ œ๊ฐ€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์œผ๋กœ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ์ค‘์ ์ ์œผ๋กœ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.์ฐฉ์˜ค๊ฐ€ ์—†์œผ์‹œ๊ธธ!โœ… ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋ž€?์ด์ „ ๊ธ€์—์„œ ์Šค๋ ˆ๋“œ์˜ ๊ฐœ๋…์„ ์‚ดํŽด๋ดค์Šต๋‹ˆ๋‹ค. โš™๏ธ ํ”„๋กœ์„ธ์Šค / ์Šค๋ ˆ๋“œ ๊ฐœ๋… ์ •๋ฆฌ๐Ÿ“Œ ์š”์•ฝํ”„๋กœ๊ทธ๋žจ: ์–ด๋А ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผํ”„๋กœ์„ธ์Šค: ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ณ , ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์Šค๋ ˆ๋“œ: ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š”syleeblog.tistory.com ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋ž€ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ์•ˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.์ฆ‰, ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ์•ˆ์—์„œ ๋‘ ๊ฐ€์ง€ ์ด์ƒ์˜ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๋กฌ์—์„œ ์—ฌ๋Ÿฌ ์ฐฝ์„ ๋„์›Œ ๊ฐ์ž ์ž‘์—…..
โš™๏ธ ํ”„๋กœ์„ธ์Šค(Process) / ์Šค๋ ˆ๋“œ(Thread) ๊ฐœ๋… ์ •๋ฆฌ
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿ“Œ ์š”์•ฝํ”„๋กœ๊ทธ๋žจ: ์–ด๋А ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผํ”„๋กœ์„ธ์Šค: ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ณ , ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์Šค๋ ˆ๋“œ: ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ๋ฆ„ ๋‹จ์œ„โœ… ํ”„๋กœ์„ธ์Šค (Process)ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฌด์—‡์ผ๊นŒ์š”? ํ”„๋กœ๊ทธ๋žจ์€ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.๋‹ค๋งŒ ์•„์ง ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๊ทธ๋ƒฅ ํŠน์ •ํ•œ ์ž‘์—…์„ ์œ„ํ•ด ์ž‘์„ฑ๋œ ์ฝ”๋“œ ๋ฉ์–ด๋ฆฌ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์‹คํ–‰ ์š”์ฒญ์— ์˜ํ•ด ๋””์Šคํฌ์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ณ  ์‹คํ–‰ํ•˜๋ฉด ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋””์Šคํฌ ๋‚ด์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์€ text, data, bss๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.text(code)์ฝ”๋“œ.CPU๊ฐ€ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•  ๊ธฐ๊ณ„์–ด ๋ช…๋ น์–ด์˜ ..
๋””๋ฒ„๊น…์˜ ์ค‘์š”์„ฑ
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
ํ•˜๋ฃจ์ฝ”๋”ฉ๋‹˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋ฐฐ์šด ์ , ๋А๋‚€ ์ ์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊น…์˜ ์ค‘์š”์„ฑ๋””๋ฒ„๊น…์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋‚˜ ๋…ผ๋ฆฌ ์˜ค๋ฅ˜๋ฅผ ์ฐพ์•„ ๋ฐ”๋กœ์žก๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.๋…ผ๋ฆฌ ์˜ค๋ฅ˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ์ฐพ์•„ ์ฃผ๋Š” ๋ฌธ๋ฒ• ์˜ค๋ฅ˜์™€ ๋‹ฌ๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ์˜ค๋ฅ˜๋ฅผ ์ดํ•ดํ•ด์•ผ ์›ํ•˜๋Š” ๋™์ž‘์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์šฐ์—ฐํžˆ ์•Œ๊ฒŒ ๋œ ๋ฉ˜ํ† ๋‹˜์ด ๋‚จ๊ธฐ์‹  ๋ง์ด ์žˆ์Šต๋‹ˆ๋‹ค. (์ด ๋ถ„์€ ๋””๋ฒ„๊น…๋ณด๋‹ค๋Š” ํƒœ๋„์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด์ฃผ์‹  ๊ฑฐ์ง€๋งŒ) 1. ๊ฐœ๋ฐœ์ž๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‚ฌ๋žŒ์ด๋‹ค.2. ์•„๋ฌด ์ƒ๊ฐ ์—†์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์—๋Š” ๊ทธ๋ ‡๊ฒŒ ์ž‘์„ฑ๋œ ์ด์œ ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.3. ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ณ ๋ฏผํ•ด๋ณด๋˜ ๋„ˆ๋ฌด ์˜ค๋žœ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฉด ํŒ€์›๋“ค๊ณผ ์ƒ์˜ํ•ด๋ณด๋Š”๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค.4. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ์ฝ”๋“œ๋ฅผ..
[๊นƒํ—ˆ๋ธŒ] Codecov ์ ์šฉํ•˜์—ฌ PR์— ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ ๋ฑƒ์ง€ ๋‹ฌ๊ธฐ
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
https://app.codecov.io/ codecov์— ๋กœ๊ทธ์ธํ•ด์„œ ๊นƒํ—ˆ๋ธŒ์™€ ์—ฐ๋™ํ•˜๋ฉด๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. (๋‚˜๋Š” ํผ๋ธ”๋ฆญ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ์ง„ํ–‰ํ•˜์—ฌ ํ”„๋ผ์ด๋น— ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.) ์›ํ•˜๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๊ณ ๋‚˜๋Š” GitHub Actions๋ฅผ ์ด์šฉํ•ด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ๋•Œ๋ฌธ์—์…‹์—… ์˜ต์…˜์€ GitHub Options๋ฅผ ์„ ํƒํ–ˆ๋‹ค. ์•„๋งˆ codecov๋ฅผ ์ ์šฉํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์€์Šคํ”„๋ง์—์„œ jacoco๋ฅผ ์ด๋ฏธ ์ ์šฉํ–ˆ์„ ๊ฒƒ์ด๋‹ค.๊ทธ๋Ÿฐ ๊ฒฝ์šฐ ๋‹ค์Œ ๊ณผ์ •์€ ์ƒ๋žตํ•œ๋‹ค. ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›์•„ codecov์™€ ๋‚ด ๋ ˆํฌ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์˜ Setting > Security > Secrets and variables > Actions์—์„œ๋˜‘๊ฐ™์ด ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. ๋„ˆ๋ฌด๋‚˜๋„ ์นœ์ ˆํ•˜๊ฒŒwor..
CI/CD ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿš€ CI: Continuous Integration๊นƒํ—ˆ๋ธŒ๋ฅผ ๋ชฐ๋ž๋˜ ์‹œ์ ˆ,ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด "๋‚ด๊ฐ€ A ๋ถ€๋ถ„์„ ํ• ๊ฒŒ, ๋„ค๊ฐ€ B ๋ถ€๋ถ„์„ ํ•ด!" ํ•˜๋ฉฐ์†Œ์Šค์ฝ”๋“œ ํŒŒ์ผ์„ ์ฃผ๊ณ ๋ฐ›์•„ ์™„์„ฑํ–ˆ๋˜ ์ ์ด ์žˆ๋‹ค.์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋ผ ์ถฉ๋Œ๋„ ๊ฑฐ์˜ ์—†์—ˆ๊ณ , ์žˆ์–ด๋„ ๊ธˆ๋ฐฉ ๊ณ ์ณค์ง€๋งŒ์ง€๊ธˆ์ฒ˜๋Ÿผ ๊ทœ๋ชจ๊ฐ€ ํฐ ํ”„๋กœ์ ํŠธ์—์„œ ๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ˆˆ์•ž์ด ์บ„์บ„ํ•˜๋‹ค.์ด ์ฝ”๋“œ ๋ˆ„๊ฐ€ ์ž‘์„ฑํ–ˆ๋‚˜์š”?ํ…Œ์ŠคํŠธํ–ˆ๋‚˜์š”? ์ œ ํ™˜๊ฒฝ์—์„œ๋Š” ์•ˆ ๋˜๋Š”๋ฐ์š”?์ฒด๊ณ„์ ์ธ ์ฝ”๋“œ ํ†ตํ•ฉ์˜ ํ•„์š”์„ฑ์„ ์‹ค๊ฐํ•˜๊ฒŒ ๋˜๋Š” ์ˆœ๊ฐ„์ด๋‹ค.CI๋Š” Continuous Integration, ์ฆ‰ ์ง€์†์ ์ธ ํ†ตํ•ฉ์ด๋ผ๋Š” ์˜๋ฏธ๋กœ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ž๋™์œผ๋กœ ๋นŒ๋“œ๋˜๊ณ , ํ…Œ์ŠคํŠธ๋˜์–ด ๋ณ‘ํ•ฉ๋˜๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค.๋Œ€ํ‘œ์ ์ธ CI ๋„๊ตฌ๋กœ Jenkins, GitHub Actions ๋“ฑ์ด ์žˆ๋‹ค.์ž๋™ํ™”๋œ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธCI ์„œ๋ฒ„ ํ˜น์€ ํŒŒ์ด..
์›น API: SOAP API, SOAP๊ณผ REST์˜ ์ฐจ์ด
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐ŸŽฏ ์ฃผ์ œ์›น API์˜ ๋ฐœ์ „ ๊ณผ์ •์—์„œ SOAP์—์„œ REST๋กœ์˜ ์ „ํ™˜์ด ์ผ์–ด๋‚œ ์ด์œ ์™€ ๊ทธ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์›น API๋จผ์ € ๊ฐ„๋‹จํ•˜๊ฒŒ API์™€ ์›น API์˜ ๊ฐœ๋…์„ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ž. API?API(Application Programming Interface)์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์†Œํ”„ํŠธ์›จ์–ด)์ด ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.์ธํ„ฐํŽ˜์ด์Šค์ด๋ฏ€๋กœ ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ์ „๋ถ€ ์•Œ ํ•„์š” ์—†์ด, ์ •ํ•ด์ง„ ๋ฐฉ๋ฒ•(๋ฉ”์„œ๋“œ, ์—”๋“œํฌ์ธํŠธ ๋“ฑ)๋งŒ ๋”ฐ๋ฅด๋ฉด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.์‹๋‹น์—์„œ ์Œ์‹์„ ์ฃผ๋ฌธํ•  ๋•Œ๋ฅผ ๋– ์˜ฌ๋ ค๋ณด์ž. ๋ฉ”๋‰ดํŒ(API ๋ฌธ์„œ): ์†๋‹˜(์‚ฌ์šฉ์ž)์€ ๋ฉ”๋‰ดํŒ์„ ๋ณด๊ณ  ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์Œ์‹ ๋ชฉ๋ก์„ ํ™•์ธํ•œ๋‹ค.(๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ)์ฃผ๋ฌธ ์š”์ฒญ(์š”์ฒญ Request): ์†๋‹˜์€ ์›จ์ดํ„ฐ(API)๋ฅผ ํ†ตํ•ด "์Šคํ…Œ์ดํฌ ํ•˜๋‚˜ ์ฃผ์„ธ์š”!"๋ผ๊ณ  ์ฃผ๋ฌธํ•œ๋‹ค.์ฃผ๋ฐฉ ์ฒ˜๋ฆฌ(..
์›น ์„œ๋ฒ„(Web Server) vs WAS(Web Application Server) ๊ฐœ๋… ์ดํ•ด์™€ ์ฐจ์ด ๋น„๊ต feat. Tomcat
ยท
โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿ”Ž ์ฃผ์ œ์›น ์„œ๋ฒ„(Web Server)์™€ WAS(Web Application Server)๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฑธ๊นŒ?์›น ์„œ๋ฒ„(Web Server)์›น ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์š”์ฒญ์— ๋งž๋Š” ์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ์ „์†กํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.์ž‘๋™ ๋ฐฉ์‹ํด๋ผ์ด์–ธํŠธ URL์„ ์ž…๋ ฅํ•˜์—ฌ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ์ด URL์ด ์›น ์„œ๋ฒ„์˜ ์ฃผ์†Œ ์‹๋ณ„์ž์ด๋‹ค.ํด๋ผ์ด์–ธํŠธ์™€ ์›น ์„œ๋ฒ„์˜ ํ†ต์‹  ๋ฐฉ์‹ํด๋ผ์ด์–ธํŠธ๋Š” URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐพ์Œ.ํด๋ผ์ด์–ธํŠธ๋Š” ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์œ„ํ•œ HTTP ์š”์ฒญ์„ ๋ณด๋ƒ„.์›น ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ†ต์‹ ํ•˜์—ฌ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์Œ.์›น ์„œ๋ฒ„๋Š” HTML ํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ํŒŒ์ผ ๋“ฑ๊ณผ ๊ฐ™์€ ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ HTTP ํ˜•ํƒœ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•จ.์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•จ...