๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

์Šค์œ„์น˜์— ๋Œ€ํ•ด ์•Œ๊ธฐ์ „์— ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์žฅ๋น„์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์žํ—ˆ๋ธŒ (HUB)์ปดํ“จํ„ฐ ์‹ ํ˜ธ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹ค๋ฅธ ์„ ์œผ๋กœ ๋ถ„์‚ฐ์‹œ์ผœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์žฅ์น˜๋ฅผ ์ด์นญ์ด ์ค‘ ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ—ˆ๋ธŒ๋Š” (์š”์ฆ˜) ๋ณดํ†ต ์ด๋”๋„ท ํ—ˆ๋ธŒ๋ฅผ ๋œปํ•œ๋‹คํ—ˆ๋ธŒ์— ์—ฐ๊ฒฐ๋œ ์ผ€์ด๋ธ” ์ค‘ ํ•œ ์ผ€์ด๋ธ”๋กœ ์‹ ํ˜ธ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด, ๋˜‘๊ฐ™์€ ์‹ ํ˜ธ๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“  ์ผ€์ด๋ธ”๋กœ ์ „๋‹ฌํ•˜๋Š” ํ”Œ๋กœ๋”ฉ(Flooding) ๋™์ž‘ ์ˆ˜ํ–‰๋งŒ์•ฝ ํ•œ ๋žœ ์นด๋“œ์—์„œ ํ—ˆ๋ธŒ์— ์—ฐ๊ฒฐ๋œ ์ผ€์ด๋ธ”๋กœ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋ฉด, ๋‹ค๋ฅธ ๋žœ ์นด๋“œ๋“ค์€ ๋ฌด์กฐ๊ฑด ์‹ ํ˜ธ๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋ฉฐ, ์‹ ํ˜ธ๋ฅผ ๋ฐ›์€ ๋žœ ์นด๋“œ๋“ค์€ ์ž์‹ ์—๊ฒŒ ์˜จ ์‹ ํ˜ธ์ธ์ง€ ํ™•์ธํ•˜๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ๋ฌด์‹œํ•œ๋‹ค.๋งŒ์•ฝ ์‹ ํ˜ธ๋ฅผ ๋ฐ›๊ณ  ์‹ถ์€ ๋žœ ์นด๋“œ์—๊ฒŒ๋งŒ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋ ค๋ฉด, ์–ด๋–ค ํฌํŠธ์— ์–ด๋–ค ๋žœ ์นด๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‚ด๋ถ€์— ๋ณ„๋„ ์ €์žฅ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•˜๊ณ , ์ €์žฅ๋œ ๋‚ด์šฉ์„ ์ฝ..
Rocky Linux์— GIT Server๋ฅผ ์ƒˆ๋กœ ๊ตฌ์ถ•ํ•˜๋ ค๋Š” ์ค‘๊ทผ๋ฐ ๋Œ€๋ถ€๋ถ„ GitHub, GitLab ๊ฐ™์€ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๋“ค์„ ์ด์šฉํ•˜๊ณ  ์žˆ์–ด์„œ,์ƒ๊ฐ๋ณด๋‹ค ์ž๋ฃŒ๋“ค์ด ๋งŽ์ง€๊ฐ€ ์•Š๋„น;๊ทธ ์ „์— ๋‚ด/์™ธ๋ถ€์—์„œ ์—ฌ๋Ÿฌ ๋ช…์˜ ์‚ฌ์šฉ์ž๋“ค์ด push/pull ๋“ฑ์ด ๊ฐ€๋Šฅํ•ด์•ผํ•˜๋Š”๋ฐ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋˜๋Š”์ง€๋ฅผ ๋ฏธ๋ฆฌ ํ™•์ธํ•˜๋Š” ์ค‘!ํด๋ผ์ด์–ธํŠธ(Local) ํ™˜๊ฒฝ์—์„œ SSH Key ์ƒ์„ฑ$ ssh-keygen -t ed25519(์ƒ๋žต ๊ฐ€๋Šฅ) -C "your_email@example.com"$ ssh-keygen # ์ด๋ ‡๊ฒŒ๋งŒ ํ•ด๋„๋จ$ ssh-keygen -t rsa # rsa๋กœ ์ƒ์„ฑid_ed25519 ๋Š” ๊ฐœ์ธํ‚ค, id_ed25519.pub ์ด ๊ณต๊ฐœํ‚ค์ด๊ฑธ ์„œ๋ฒ„์—์„œ$ mkdir .ssh$ chmod 700 .ssh$ cat id_ed25519.pub >..
Layer 5, ์„ธ์…˜ ๊ณ„์ธต(Session Layer)๋ฐ์ดํ„ฐ๊ฐ€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ๋…ผ๋ฆฌ์ ์ธ ์—ฐ๊ฒฐํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€๋ฌธ, ๊ทธ๋Ÿฐ๋ฐ 4๊ณ„์ธต์—์„œ๋„ ์—ฐ๊ฒฐ์„ ๋งบ๊ณ  ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋Š ๊ณ„์ธต์—์„œ ํ†ต์‹ ์ด ๋Š์–ด์กŒ๋‚˜ ํŒ๋‹จํ•˜๊ธฐ์—๋Š” ํ•œ๊ณ„ ์กด์žฌ๊ทธ๋ž˜์„œ ์„ธ์…˜ ๊ณ„์ธต์€ 4๊ณ„์ธต๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ด€์ ์œผ๋กœ ๋ด์•ผ ํ•จ์„ธ์…˜ ์„ค์ •, ์œ ์ง€, ์ข…๋ฃŒ, ์ „์†ก ์ค‘๋‹จ ์‹œ ๋ณต๊ตฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์–‘ ๋๋‹จ์˜ ์‘์šฉ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ œ๊ณต๋™์‹œ ์†ก์ˆ˜์‹  ๋ฐฉ์‹(Duplex), ๋ฐ˜์ด์ค‘ ๋ฐฉ์‹(Half-Duplex), ์ „์ด์ค‘ ๋ฐฉ์‹(Full Duplex) ์˜ ํ†ต์‹ ๊ณผ ํ•จ๊ป˜, ์ฒดํฌ ํฌ์ธํŒ…๊ณผ ์œ ํ›„, ์ข…๋ฃŒ, ์žฌ์‹œ์ž‘ ๊ณผ์ • ๋“ฑ ์ˆ˜ํ–‰TCP/IP ์„ธ์…˜์„ ๋งŒ๋“ค๊ณ  ์—†์• ๋Š” ์ฑ…์ž„ ๊ฐ€์งํ†ต์‹ ํ•˜๋Š” ์‚ฌ์šฉ์ž๋“ค์„ ๋™๊ธฐํ™”ํ•˜๊ณ  ์˜ค๋ฅ˜ ๋ณต๊ตฌ ๋ช…๋ น๋“ค์„ ์ผ๊ด„์ ์œผ๋กœ ๋‹ค๋ฃธํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์„ธ์…˜์„ ํ™•๋ฆฝ/..
ํŒ€์žฅ๋‹˜๊ป˜์„œ ํ•˜์‹  ๋ง์”€" ๋‚˜๋Š” ๋ชฐ๋ž๋‹ค. ์™œ OSI7๊ณ„์ธต์„ ๋ฐฐ์šฐ๋Š”์ง€,,, ๊ทผ๋ฐ ์ผํ•˜๋ฉด์„œ ๋ณด๋‹ˆ๊น ์ด๊ฑธ ๋ชจ๋ฅด๋ฉด ์ผ์„ ๋ชปํ•œ๋‹ค..."์ด๊ฑธ ๋“ฃ๊ณ  ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด๋ณผ๊ฒธ ์ •๋ฆฌ!OSI ๋ชจ๋ธ๋„คํŠธ์›Œํฌ์— ํ•„์š”ํ•œ Protocol ๊ธฐ๋Šฅ๋“ค์„ 7๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ณต์žก์„ฑ์„ ์ค„์ด๊ณ  ๊ณ„์ธต๊ฐ„์˜ ๊ฐ„์„ญ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ชจ๋ธ์‘์šฉ ๊ณ„์ธต : ์ตœ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์ ‘์†ํ•˜๋Š” ๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จํ‘œํ˜„ ๊ณ„์ธต : ์†ก/์ˆ˜์‹ ์ž๊ฐ€ ๊ณตํ†ต์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ณด์˜ ๋ฐ์ดํ„ฐ ํ‘œํ˜„๋ฐฉ์‹์„ ๋ฐ”๊พธ๋Š” ๊ธฐ๋Šฅ ๋‹ด๋‹น์„ธ์…˜ ๊ณ„์ธต : ๋„คํŠธ์›Œํฌ ๋Œ€ํ™” ์ œ์–ด๊ธฐ๋กœ ํ†ต์‹  ์‹œ์Šคํ…œ ๊ฐ„์— ์ƒํ˜ธ๋Œ€ํ™”๋ฅผ ์„ค์ •ํ•˜๊ณ  ๋™๊ธฐํ™”์ „์†ก ๊ณ„์ธต : Port๋ฅผ ์ด์šฉํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ฐ„ ์†ก์ˆ˜์‹  ๋‹ด๋‹น๋„คํŠธ์›Œํฌ ๊ณ„์ธต : IP๋ฅผ ์ฃผ์†Œ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ๊ฐ„ ์ „์†ก ๋‹ด๋‹น๋ฐ์ดํ„ฐ๋งํฌ ๊ณ„์ธต : ์†ก์ˆ˜์‹ ๋˜๋Š” ์ •๋ณด์˜ ์˜ค๋ฅ˜์™€ ํ๋ฆ„ ๊ด€๋ฆฌ ๋‹ด๋‹น๋ฌผ๋ฆฌ ๊ณ„์ธต ..
ํ•œ ๋ฒˆ์˜ ๋กœ๊ทธ์ธ์œผ๋กœ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ์‹œ์Šคํ…œ์„ ์žฌ ๋กœ๊ทธ์ธ ์—†์ด ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹ -> SSO(Single Sign On)SSO ?SSO๋Š” Single-Sign-On ์˜ ์•ฝ์ž๋กœ ํ•œ ๋ฒˆ์˜ ๋กœ๊ทธ์ธ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‚ฌ์ดํŠธ๋“ค์„ ์žฌ ๋กœ๊ทธ์ธ์—†์ด ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•˜๋ฉฐ, ํ†ตํ•ฉ์ธ์ฆ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.์ผ๋ฐ˜์ ์œผ๋กœ ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์€ ์„œ๋กœ ๊ฐ๊ฐ์˜ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐฉ์‹์ด ํ•„์š”ํ•˜๋‹ค.ํ•˜์ง€๋งŒ ๋งŒ์•ฝ ๋™์ผ ํšŒ์‚ฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งค ์„œ๋น„์Šค๋งˆ๋‹ค ์ธ์ฆ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค๋ฉด, ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์ž…์žฅ์—์„œ๋„ ์ถ”๊ฐ€์ ์ธ ๊ตฌํ˜„์ด ํ•„์š”ํ•˜๊ณ , ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋„ ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋งˆ๋‹ค ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค.SSO๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๊ฐ€ google ์ธ๋ฐ, ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ๋งŒ ํ•œ๋‹ค๋ฉด gmail, drive, photo ๋“ฑ ๋‹ค์–‘..
GIT Server - Protocol๋‹ค๋ฅธ ์‚ฌ๋žŒ๊ณผ ํ˜‘์—…ํ•˜๋ ค๋ฉด remote ์ €์žฅ์†Œ(์›๊ฒฉ ์ €์žฅ์†Œ)๊ฐ€ ํ•„์š”๊ณต๋™์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๊ณ , ๋ชจ๋‘ ์ด ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•˜์—ฌ push, pull ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ1. ์‚ฌ์šฉํ•  ์ „์†ก ํ”„๋กœํ† ์ฝœ ๊ฒฐ์ •ํ”„๋กœํ† ์ฝœ ์ข…๋ฅ˜, ๊ฐ ํ”„๋กœํ† ์ฝœ์˜ ์žฅ๋‹จ์ , ์‚ฌ์šฉ ๋ฐฉ๋ฒ•, ์„œ๋ฒ„ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•remote ์ €์žฅ์†Œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ working directory๊ฐ€ ์—†๋Š” Bare ์ €์žฅ์†Œ์ด ์ €์žฅ์†Œ๋Š” ํ˜‘์—…์šฉ์ด๊ธฐ ๋•Œ๋ฌธ์— checkout์ด ํ•„์š” ์—†์Œ๊ทธ๋ƒฅ Git ๋ฐ์ดํ„ฐ๋งŒ ์žˆ์œผ๋ฉด ๋จ, ๋‹ค์‹œ ๋งํ•ด Bare ์ €์žฅ์†Œ๋Š” ์ผ๋ฐ˜ ํ”„๋กœ์ ํŠธ์—์„œ .git ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ์žˆ๋Š” ์ €์žฅ์†ŒGIT์€ Local, HTTP, SSH, GIT ์ด๋ ‡๊ฒŒ 4๊ฐ€์ง€ protocol์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ1. Local Protocol๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๊ฐ€ ๋‹จ์ˆœํžˆ ๊ฐ™์€ ์‹œ์Šคํ…œ์˜..
ํ•™๋ถ€ ๋•Œ ๋„คํŠธ์›Œํฌ๋ฅผ ์—ด์‹ฌํžˆ ํ–ˆ์–ด์•ผ ํ–‡๋‹ค...ใ…Ž;ICMP ?์ฃผ๋กœ TCP/IP ํ™˜๊ฒฝ์—์„œ IP Packet์„ ์ฒ˜๋ฆฌํ•  ๋•Œ, ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” protocol๋กœ, IP๋Š” ์˜ค์ง packet์ด ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ–ˆ๋Š”์ง€๋งŒ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์–ด๋–ค ์ด์œ ๋กœ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€๋Š” ์•Œ๋ ค์ฃผ์ง€ ๋ชปํ•จ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ฒƒ์ด ICMP(Internet Control Message Protocol)Type : ICMP์˜ packet ์ข…๋ฅ˜Code : Type์—์„œ ํŒŒ์ƒ๋œ ์„ธ๋ถ€ ๋ถ„๋ฅ˜CheckSum : ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š”์ง€ ๊ฒ€์ฆAdditional Header Field : Type์— ๋”ฐ๋ผ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด 0Payload : ์ง์ ‘์ ์ธ ๋ฐ์ดํ„ฐ ๋‚ด์šฉIP ?OSI 7๊ณ„์ธต ์ค‘์— 3๊ณ„์ธต(Network Layer)์—์„œ ์‚ฌ์šฉ..
SimpleJdbcInsert๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, insert๋ฅผ ๊ตฌํ˜„ํ•˜๋˜ ์ค‘ ๋ฌธ์ œ ๋ฐœ์ƒ private Member insert(Member member) { SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(jdbcTemplate.getJdbcTemplate()) .withTableName("Member") .usingGeneratedKeyColumns("id"); SqlParameterSource params = new BeanPropertySqlParameterSource(member); var id = simpleJdbcInsert.executeAndReturnKey(params).longValue(); return Member.builder() .id(..