Network
TCP๋? ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ขฐ์ฑ ์๊ฒ ์ ๋ฌํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ํ๋กํ ์ฝ โ UDP๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์๋ ํ๋กํ ์ฝ๋ก ๋ง์ด ์๊ณ ์๋๋ฐ UDP ์์ฒด์์๋ ๋ณด์ฅํ์ง ์์ง๋ง ๊ฐ๋ฐ์๊ฐ ์ง์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋๋ก ํ๋ฉด ์ ๋ขฐ์ฑ์ด ๋ณด์ฅ๋๋ค๊ณ ํ๋ค. ex) HTTP/3์์๋ UDP๊ธฐ๋ฐ์ QUIC์ด๋ผ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋๋ก ํ๋ค๊ณ ํ๋ค. (TCP์ Fast Retransmit, Selective Acknowledgement์ ์ ์ฌํ ๋ฐฉ์์ ์ฌ์ฉํจ) TCP์์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ 1. ์์ ๋ณด์ฅ ๋ฐ์ดํฐ ํจํท์ ์์ ๋ฒํธ๋ฅผ ๋ถ์ฌํด์ ์์ ์๊ฐ ํจํท์ ์ฌ๋ฐ๋ฅธ ์์๋๋ก ์ฌ์กฐ๋ฆฝํ ์ ์๋๋ก ํ๋ค. ๋ง์ฝ์ ์์๋๋ก ๋์ฐฉํ์ง ์๋๋ค๋ฉด ๋๋ฝ๋ ํจํท์ด ๋์ฐฉํ ๋๊น์ง ๋๊ธฐํ๊ณ ๊ทธ ํ์ ํจํท์ ์ฌ์กฐ๋ฆฝํ์ฌ..
DB
DB ๊ต์ฐฉ ์ํ(Dead Lock) ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ต์ฐฉ ์ํ๋ ์ฌ๋ฌ ๊ฐ์ ํธ๋์ญ์
๋ค์ด ์คํํ์ง ๋ชปํ๊ณ ์๋ก ๋ฌดํ์ ๊ธฐ๋ค๋ฆฌ๋ ์ํ๋ฅผ ๋งํ๋ค. ์ฆ, ๋ ๊ฐ ์ด์์ ํธ๋์ญ์
์ด ํน์ ์์์ lock์ ํ๋ํ ์ฑ ๋ค๋ฅธ ํธ๋์ญ์
์ด ์์ ํ๊ณ ์๋ ์ ๊ธ์ ์๊ตฌํ๋ฉด ์๋ฌด๋ฆฌ ๊ธฐ๋ค๋ ค๋ ์ํฉ์ด ๋ฐ๋์ง ์์ ์ํ์ด๋ค. โ ์ด์์ฒด์ ์์์ ๊ต์ฐฉ ์ํ๋ ๊ฐ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์๋ก์ ์์์ ์ ์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ฉด์ ์๊ธฐ๋ ๋ฌธ์ ๋ฅผ ๋งํ๋ค. โช๏ธ ๊ต์ฐฉ์ํ๊ฐ ์ผ์ด๋๋ ์ํฉ ํธ๋์ญ์
1์ด ํ
์ด๋ธ B์ insert๋ฅผ ํ๊ณ , ํธ๋์ญ์
2๊ฐ ํ
์ด๋ธ A์ insert๋ฅผ ํ๊ณ ๋์ ์๋ก๊ฐ lock์ ๊ฑธ์๋ ํ์ insert ์์
์ ์๋ํ๋ค๋ฉด ๋ ๊ฐ์ ํธ๋์ญ์
๋ชจ๋ waiting์ด ๋ฐ์ํ๊ณ ๊ต์ฐฉ์ํ(Dead Lock)์ ๋น ์ง๊ฒ ๋๋ค. ๊ต์ฐฉ์ํ ํด๊ฒฐ๋ฐฉ๋ฒ ..
๊ธฐํ
ํ๋ก์ ํธ์์ jira๋ก git flow ์ฐ๊ฒฐํด์ ์ฌ์ฉํ๋ ค๊ณ ํด์ ์ธํ
๋ฆฌ์ ์ด์์ git flow ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค 1. OS์ git flow ์ค์น ๋ macOS์ฌ์ homebrew๋ฅผ ํตํด ๊ฐ๋จํ ์ค์นํ๋ค. brew install git-flow-avh 2. ์ธํ
๋ฆฌ์ ์ด์์ git flow integration plugin ์ค์น! ํด๋น ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๊ณ ๋๋ฉด ์ค๋ฅธ์ชฝ ํ๋จ์ git flow๋ผ๋ ํ์๊ฐ ์๊ธด๋ค. ํด๋น ์์ญ์ ํด๋ฆญํ๋ฉด Init Repo๋ผ๋ ๋ฒํผ์ด ๋จ๋๋ฐ ํด๋ฆญํ๋ค! ๊ทธ๋ผ Options for git flow init๋ผ๋ ์ฐฝ์ด๋ฌ๋ค! ์ด๋ฏธ ์ค์ ํด๋ฒ๋ ค์ ์บก์ณ๋ฅผ ํ ์๊ฐ...๐
๋๋ ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ์ธํ
ํ์ง ์๊ณ main - develop - feature - release - hotfix - su..
DB
๐ธ์ ๊ทํ๋? ์ด์ํ์์ด ์๋ ๋ฆด๋ ์ด์
์ ๋ถํดํดํ์ฌ ์ด์ํ์์ ์์ ๋ ๊ณผ์ ์ด์ํ์์ด ์กด์ฌํ๋ ๋ฆด๋ ์ด์
์ ๋ถํดํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๋ฆด๋ ์ด์
์ ์์ฑํ๊ฒ ๋๋ค. ์ด๋ฅผ ๋จ๊ณ๋ณ๋ก ๊ตฌ๋ถํ์ฌ ์ ๊ทํ์ด ๋์์ง ์๋ก ์ด์ํ์์ด ์ค์ด๋ค๊ฒ ๋๋ค. ๐ซง ์ 1 ์ ๊ทํ (1NF) ๊ฐ ์ปฌ๋ผ์ด ํ๋์ ์์ฑ๋ง ๊ฐ์ ธ์ผ ํ๋ค. ํ๋์ ์ปฌ๋ผ์ ๊ฐ์ ์ข
๋ฅ๋ ํ์
์ ๊ฐ์ ๊ฐ์ ธ์ผ ํ๋ค. ๊ฐ ์ปฌ๋ผ์ด ์ ์ผํ ์ด๋ฆ์ ๊ฐ์ ธ์ผํ๋ค. ์นผ๋ผ์ ์์๊ฐ ์๊ด์์ด์ผ ํ๋ค. ํ์ ๋ฒํธ ์ด๋ฆ ๊ณผ๋ชฉ 101 ์์ด์ ์ด์์ฒด์ , DB 102 ํํจ์ฃผ ์๋ฐ ํด๋น ํ
์ด๋ธ์ ๊ณผ๋ชฉ์์ ํ๋๋ง์ ์์ฑ์ ๊ฐ์ง๊ณ ์์ง ์์!! ํด๊ฒฐ ํ์๋ฒํธ ์ด๋ฆ ๊ณผ๋ชฉ 101 ์์ด์ ์ด์์ฒด์ 101 ์์ด์ DB 102 ํํจ์ฃผ ์๋ฐ ์นต ์นผ๋ผ์ด ์์ ๊ฐ์ ๊ฐ๋๋ก ํ๋ฉด ์ 1 ์ ๊ทํ์ ๋ง์กฑํ ์ ์์ ๐ซง ์ 2 ์ ๊ทํ ..
JAVA & OOP
โ๏ธ Java 17์ ์ฌ์ฉํ๋ ์ด์ Java 11๋ณด๋ค ์ง์๊ธฐ๊ฐ์ด ๊ธธ๋ค. Java 8์ด๋ Java 11์ ์ฌ์ฉํ์ ๋ ๋ณด๋ค ์ ๊ท ๋ฒ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๊ธฐ์ ๋ฆฌ์คํฌ๊ฐ ์ ์ด์ง๋ค. SpringBoot 3.0 ๋ถํฐ Java 17 ์ด์์ ์ง์ํ๋ค. ํ์ฌ SpringBoot 2.x.x๋ 23๋
11์์ ์ง์์ด ์ข
๋ฃ๋์๋ค. Java 17์์ ๊ฐ๋น์ง ์ปฌ๋ ์
์๊ณ ๋ฆฌ์ฆ(ZGC, Shenandoah GC)์ด ๊ฐ์ ๋์ด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ํจ์จ์ด ํฅ์๋์์ผ๋ฉฐ, ์ปดํ์ผ๋ฌ ์ต์ ํ ๊ธฐ์ ์ด ์
๊ทธ๋ ์ด๋๋์ด ์ ํ๋ฆฌ์ผ์ด์
์ ์คํ ์๋์ ์๋ต ์๊ฐ์ด ๊ฐ์ ๋์๋ค. Java 17์์ ์ํธํ ๋ฐ ์ธ์ฆ ์๊ณ ๋ฆฌ์ฆ์ ์ต์ ํ์ค์ ์ง์ํด์ ์น ์๋น์ค ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ณด์์ ๊ฐํํ๋ค. ์๋ก์ด ๋ฉ์๋ ์ถ๊ฐ ๐ Java 17 ๋ฉ์๋ 1. recode recode๋ ..
DevOps
๋์ปค ์ปจํ
์ด๋ ๋ก๊ทธ ํ์ธํ๋ ๋ช
๋ น์ด ์ ๋ฆฌ! ์ ์ฒด ๋ก๊ทธ ํ์ธ docker logs [container] ๋ง์ง๋ง ๋ก๊ทธ n์ค ํ์ธ docker logs --tail n [container] ์ค์๊ฐ ๋ก๊ทธ ์คํธ๋ฆผ ํ์ธ docker logs -f [container] ๋ก๊ทธ๋ง๋ค ํ์์คํฌํ ํ์ธ docker log -f -t [container]
DevOps
run : ๋์ปค ์คํ create : ๋์ปค ์ปจํ
์ด๋๋ฅผ ๋ง๋ฆ start : create๋ก ๋ง๋ค๊ฑฐ๋ ์ค์ง๋ ์ปจํ
์ด๋๋ฅผ ์คํ์ํด pause : ์คํ์ค์ธ ์ปจํ
์ด๋ ์ผ์์ค์ง unpause : ์ผ์์ค์งํ ์ปจํ
์ด๋ ๋ค์ ์คํ stop : ์ค์ง rm : ์ค์ง๋๊ฑฐ๋ ์คํ๋์ง ์๋ ์ปจํ
์ด๋ ์ญ์ ์ปจํ
์ด๋ ์์ 1. ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ณ ์์ ์ปจํ
์ด๋ ์์ฑ docker create [image] ์ปจํ
์ด๋ ์์ docker start [container] ์ปจํ
์ด๋๋ ๊ณ ์ ๊ฐ์ด๋ ๋๋ค์ผ๋ก ๋ถ์ฌ๋ ์ด๋ฆ์ผ๋ก ์ง์ ํ ์ ์๋ค! 2. ๋ฐ๋ก ์์ํ๊ณ ์คํํ๋ ๋ฐฉ๋ฒ docker run [image] ๐ ๋์ปค๋ ์ด๋ฏธ์ง๊ฐ ๋ก์ปฌ์ ์์ ๊ฒฝ์ฐ ์๋์ ์ผ๋ก pull์ ๋จผ์ ์ํํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ๋๋ค ex) nginx ์ปจํ
์ด๋ ์์ํ๊ธฐ docker ..
DevOps
minikube ์ค์น brew install minikube ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๊ตฌ์ฑ minikube start --driver docker ์์ ๊ฐ์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ ๋ ์๋์ฒ๋ผ ๋์ค๋ฉด ์ฑ๊ณต์ ์ผ๋ก ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ด ์๋ฃ๋ ๊ฒ์ด๋ค ! minikube์ ๊ด๋ ค๋ ์ ์ , ํด๋ฌ์คํฐ, ์ปจํ
์คํธ ์ค์ ํ์ธ cat ~/.kube config ํด๋ฌ์คํฐ๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๊ณ ์๋์ง ํ์ธ minikube status ํด๋ฌ์คํฐ ๊ตฌ๋ ์ฌ๋ถ ํ์ธ kubectl cluster-info
DevOps
kubectl ์ฟ ๋ฒ๋คํฐ์ค์ api ์๋ฒ์ ํต์ ํ์ฌ ์ฌ์ฉ์ ๋ช
๋ น์ ์ ๋ฌํ ์ ์๋ CLI ๋๊ตฌ kubectl๋ homebrew๋ฅผ ํตํด ์ฝ๊ฒ ์ค์นํ ์ ์๋ค. brew install kubectl ์ค์น๋์๋์ง ํ์ธ kubectl version kustomize ์ฟ ๋ฒ๋คํฐ์ค์ ๋งค๋ํ์คํธ ํ์ผ์ ์ข ๋ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ brew install kustomize kustomize version
DevOps
mac์์๋ docker๋ฅผ ์ฝ๊ฒ ์ค์นํ ์ ์๋ค.! ์ผ๋จ homebrew๋ฅผ ์ค์นํด์ผ ์ฌ์ด ์ค์น๊ฐ ๊ฐ๋ฅํ๋ค. homebrew์ค์น๊ฐ ๋๋ฌ์ผ๋ฉด ํฐ๋ฏธ๋์ ์ด์ด์ ์๋์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ค๋ค. brew install --cask docker ์ด ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด ๋์ปค ์ค์น๊ฐ ์๋ฃ๋๋ค. ๋์ปค๊ฐ ์ ์์ ์ผ๋ก ์ค์น๋์๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ docker --version docker-compose docker-ps ์ ๊ฐ์ ๋ช
๋ น์ด๋ฅผ ์คํํ์ ๋ ์ ์๋๋๋ฉด ์ ์์ ์ผ๋ก ์ค์น๊ฐ ๋ ๊ฒ์ด๋ค! ํด๋น ์ดํ๋ฆฌ์ผ์ด์
์ ์ด๊ธฐ ์ํด์๋ spotlight์์ docker๋ฅผ ๊ฒ์ํด์ ๋ก๊ทธ์ธ์ ํด์ค๋ค ~