๋กœ์ผ“๐Ÿพ
article thumbnail
[Kubernetes] ํŒŒ๋“œ๋ฅผ ๋ณด๋‹ค ์•ˆ์ „ํ•˜๊ฒŒ - SecurityContext
DevOps/Kubernetes 2023. 4. 16. 19:53

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ณด์•ˆ ๊ด€๋ จ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์•„๋งˆ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ , ๊ฐ€์žฅ ๋งŽ์ด ๋ณด์ด๋Š” ๊ฒƒ์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์ด๋ผ๋ฉด ๋ชจ๋‘๊ฐ€ ์‹ ๊ฒฝ์จ์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด์ฃ . ๋ฐ”๋กœ ๋ฃจํŠธ ๊ณ„์ • ๋น„ํ™œ์„ฑํ™” ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ปจํ…Œ์ด๋„ˆ ๋‚ด ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฃจํŠธ ๊ถŒํ•œ์„ ๋ชจ๋‘ ๋น„ํ™œ์„ฑํ™” ํ•˜๋Š” ๊ฒƒ์ด์ฃ . ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์•„๋ฌด๋‚˜ ๋ฃจํŠธ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ์ง‘ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฆ„์ด ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•œ ํ›„ uname -a ๋ช…๋ น์–ด๋ฅผ ์ณ๋ณด๋ฉด ํ˜ธ์ŠคํŠธ์˜ OS ๋ฒ„์ „์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฃจํŠธ ๊ถŒํ•œ ๋น„ํ™œ์„ฑํ™”๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ณ , k8s ๋กœ ํŒŒ๋“œ๋ฅผ ๋ฐฐํฌํ•  ๋•Œ๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ๋ฃจํŠธ ๊ณ„์ •์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์•ˆ์ „ํ•œ ํŒŒ๋“œ๋ฅผ ๋งŒ๋“œ๋Š”์ง€ ์•Œ์•„..

article thumbnail
[๋‚˜์ž‘์†Œ์ฟ ] ์„ฑ ์ง“๊ธฐ feat. proxmox, kubernetes

์ง€๋‚œ ๋‚˜์ž‘์†Œ์ฟ ์—์„œ๋Š” [๋‚˜์ž‘์†Œ์ฟ ] ์˜ํ†  ์ง“๊ธฐ feat. ๋ฏธ๋‹ˆ PC ์กฐ๋ฆฝ์„ ์ง„ํ–‰ํ–ˆ๊ณ , ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Proxmox ์™€ Kubernetes ๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ฐ”๋กœ Proxmox ๋ฅผ ์„ค์น˜ํ•ด์ค์‹œ๋‹ค. Proxmox ์„ค์น˜ Proxmox ๋Š” Window ์™€ IOS ์ฒ˜๋Ÿผ OS ์˜ ํ•œ ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ฐจ์ด์ ์ด๋ผ๋ฉด Proxmox ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ์นœํ™”์ ์ธ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด์ค๋‹ˆ๋‹ค. Proxmox ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. ์šฐ์„  Proxmox ๋ฅผ ์—ฌ๊ธฐ์„œ ๋‹ค์šด๋ฐ›์Šต๋‹ˆ๋‹ค. ์ดํ›„ Rufus ๋ฅผ ์ด์šฉํ•ด์„œ ๋‹ค์šด๋ฐ›์€ ISO ๋ฅผ dd ๋ชจ๋“œ๋กœ USB ์— ๊ตฌ์›Œ์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ USB ๋ฅผ ๋ฏธ๋‹ˆ PC ์— ๊ผฝ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ํฌ๊ฒŒ ํŠน๋ณ„ํ•œ ๋ถ€๋ถ„์€ ์—†์Šต๋‹ˆ๋‹ค. ubuntu ์„ค์น˜ํ•˜๋“ฏ ์„ค์น˜ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด..

article thumbnail
[Kubernetes] ์ง€๋‚œ ๋ฐค ๋„ˆ๊ฐ€ ํ•œ ์ง“์„ ์•Œ๊ณ  ์žˆ๋‹ค! - Audit
DevOps/Kubernetes 2023. 4. 2. 13:21

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—๋Š” Audit ์ด๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋“ค ๋ˆˆ์น˜ ์ฑ„์…จ๊ฒ ์ง€๋งŒ, Kube Api Server ์— ์–ด๋–ค API ๋ฅผ ํ˜ธ์ถœํ–ˆ๋Š”์ง€ ๊ฐ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์ด์ฃ . ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์œผ๋กœ Audit ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Audit ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ด์„œ ๋ˆ„๊ฐ€, ์–ด๋–ค ํ–‰์œ„๋กœ, ์–ด๋–ค ๋ฆฌ์†Œ์Šค๋ฅผ ํ˜ธ์ถœ ํ–ˆ๋Š”์ง€ ๊ฐ์‹œํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! ๋ ›์ธ ๋‘๋”์ฝ”๋“œ! Audit ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” control plane & data plane v1.26.1 ์—์„œ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ด๋™ํ•œ ํ›„ Audit ์„ ๊ฒ€์ƒ‰ํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํด๋ฆญํ•ด์„œ ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ‘์œผ๋กœ ์ญ‰์ญ‰ ๋‚ด๋ ค์„œ ๋กœ๊ทธ ๋ฐฑ์—”๋“œ ์„น์…˜์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. /etc/kubernetes/manifests/kube-apis..

article thumbnail
[Kubernetes] CKS Certification ์ทจ๋“ ํ›„๊ธฐ ๋ฐ Tips
Certification 2023. 3. 30. 19:24

CKA ์— ์ด์–ด CKS ๋„ ์ทจ๋“์— ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. CKS ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ด€๋ จ ์ž๊ฒฉ์ฆ ์ค‘ ๊ฐ€์žฅ ๋†’์€ ๋ ˆ๋ฒจ์˜ ์ž๊ฒฉ์ฆ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‚œ์ด๋„๋„ ๊ฝค ์žˆ๋˜ ํŽธ์ด์˜€์Šต๋‹ˆ๋‹ค. CKA ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ์žˆ์–ด์„œ 30๋ถ„๋„ ์•ˆ๊ฑธ๋ ธ๋Š”๋ฐ CKS ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” 2์‹œ๊ฐ„์„ ๋‹ค ์“ฐ๊ณ ๋„ ์ด 16๋ฌธ์ œ ์ค‘ 2๋ฌธ์ œ๋ฅผ ๋ชปํ’€์—ˆ์–ด์š”.. ์‹œํ—˜ ์ž์ฒด๊ฐ€ ์˜์–ด๋กœ ์ง„ํ–‰๋˜๊ณ , ์•„๋ฌด๋ž˜๋„ ์ œ๋Œ€๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” Validation ๋ถ€๋ถ„์—์„œ ๊ฝค๋‚˜ ์‹œ๊ฐ„์„ ๋งŽ์ด ์Ÿ์•„์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ง‰ ์—„์ฒญ ์–ด๋ ต๋‹ค๋Š” ๋Š๋‚Œ๋ณด๋‹ค๋Š” ์ฃผ์–ด์ง„ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ž˜ ์ง€์ผฐ๋Š”์ง€ ํ™•์ธ(Validation) ํ•˜๋Š” ๊ณผ์ •์— ๊ฝค ์‹œ๊ฐ„์„ ์Ÿ์•˜์Šต๋‹ˆ๋‹ค. ํ•ด์„ํ•˜์ž๋ฉด ์ด๋ ‡์Šต๋‹ˆ๋‹ค. ์ด ์ž๊ฒฉ์ฆ์„ ์ทจ๋“ํ•œ ์‚ฌ๋žŒ์€ ์ˆ™๋ จ๋œ Kubernetes ์‹ค๋ฌด์ž์ž…๋‹ˆ๋‹ค(CKA ์ž๊ฒฉ์ฆ ๋ณด์œ ๋กœ ์ž…์ฆ๋จ). ์ž๊ฒฉ ์ทจ๋“์ž๋Š” ๋นŒ๋“œ, ..

article thumbnail
[Karpenter] ๋…ธ๋“œ๋ฅผ ์ค„์˜€๋‹ค๊ฐ€ ๋Š˜๋ ธ๋‹ค๊ฐ€ ํ•ฉ์ณค๋‹ค๊ฐ€ ์—†์•ด๋‹ค๊ฐ€ ~
DevOps/Karpenter 2023. 3. 19. 12:19

๋งค์šฐ๋งค์šฐ๋งค์šฐ ์ค‘์š”! Karpenter v0.32 ๋ฒ„์ „๋ถ€ํ„ฐ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„๋“ค์ด ๋ณ€๊ฒฝ๋˜์–ด ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐœ๋…์€ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค. (ex. Provisioners -> NodePools) AWS EKS ๋ฅผ ํ†ตํ•ด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๋ฉด Data Plane (์ดํ•˜ Node) ๋ฅผ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Managed Node Group, Fargate ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” AWS Auto Scaling, Karpenter ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Karpenter ๋ฅผ ํ†ตํ•ด AWS Auto Scaling ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ฒŒ Node ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ฃ . ๋ ›์ธ ๋‘๋”์ฝ”๋“œ! Karpenter ๊ฐ€ ๋ญ์ฃ ? ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ๋…ธ๋“œ == ์ธ์Šคํ„ด์Šค ..

article thumbnail
[Python] Counter ๋ชจ๋“ˆ ์‚ฌ์šฉ๋ฒ• feat. ์นด์นด์˜ค ํŠœํ”Œ

ํŒŒ์ด์ฌ์—๋Š” ์ •๋ง ์œ ์šฉํ•œ ํ•จ์ˆ˜๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ Counter ๋Š” ์ œ๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ์— ๊ฐ€์žฅ ์œ ์šฉํ•œ ํ•จ์ˆ˜ ์ค‘์— ํ•˜๋‚˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Collections ๋ชจ๋“ˆ ์ค‘ ํ•˜๋‚˜์ธ Counter ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ  2019 ์นด์นด์˜ค ๊ฒจ์šธ ์ธํ„ด์‰ฝ ํŠœํ”Œ ์— ๋ฐ”๋กœ ์ ์šฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ ›์ธ ๋‘๋”์ฝ”๋“œ! Collections ์˜ Counter() Counter ๋Š” ๋ฆฌ์ŠคํŠธ๋‚˜ ๋ฌธ์ž์—ด์˜ ๊ฐฏ์ˆ˜๋ฅผ dict ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ง๋กœ ๋ฐฑ๋ฒˆ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ•œ๋ฒˆ์˜ ์˜ˆ์ œ๊ฐ€ ๋ณด๋Š” ๊ฒƒ์ด ๋” ์ข‹๊ฒ ์ฃ ? Counter(["I", "am", "Iron", "man", "!", "!"]) # Counter({'!': 2, 'I': 1, 'am': 1, 'Iron': 1, 'man': 1}) Counter(["I", "am", "..

article thumbnail
[Kubernetes] ์Šˆ๋ขฐ๋”ฉ๊ฑฐ์˜ ๋…ธ๋“œ? ๋…ธ๋“œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ์—†์–ด์š” - EKS Fargate
DevOps/Kubernetes 2023. 3. 12. 21:18

๋ˆ„๊ตฌ๋‚˜ ํ•œ๋ฒˆ ์ฏค์€ ์Šˆ๋ขฐ๋”ฉ๊ฑฐ์˜ ๊ณ ์–‘์ด์— ๋Œ€ํ•ด์„œ ๋“ค์—ˆ๊ฑฐ๋‚˜ ๊ด€๋ จ ๋ฐˆ์„ ๋ณด์…จ์„ ๊ฒ๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ํ˜น์‹œ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ๊ฐ„๋‹จํžˆ ์•Œ๋ ค๋“œ๋ฆฌ์ฃ . ๊ณ ์–‘์ด๋ฅผ ๋ณด์ด์ง€ ์•Š๋Š” ์ƒ์ž์— ๋„ฃ๊ณ , ๊ทธ ์†์— 50:50 ํ™•๋ฅ ๋กœ ๊ณ ์–‘์ด๋ฅผ ์ฃฝ์ด๋Š” ๋…๊ทน๋ฌผ์„ ๋„ฃ์—ˆ์„ ๋•Œ ๊ณ ์–‘์ด๋Š” ์ฃฝ์„๊นŒ์š”? ์‚ด๊นŒ์š”? ์ผ๋ฐ˜ ์„ธ๊ณ„์—์„œ๋Š” ์ฃฝ์—ˆ๋‹ค, ์‚ด์•˜๋‹ค ๋ผ๊ณ  ํ‘œํ˜„ํ•˜์ง€๋งŒ ์–‘์ž์—ญํ•™ ์„ธ๊ณ„์—์„œ๋Š” ์ด๋ฅผ ์ฃฝ์Œ๊ณผ ์‚ถ์ด ์ค‘์ฒฉ๋œ ์ƒํƒœ๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์‚ด์•„์žˆ์œผ๋ฉด์„œ ์ฃฝ์–ด์žˆ๋‹ค ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๊ธ€์—์„œ ์†Œ๊ฐœํ•  Fargate (ํŒŒ๊ฒŒ์ดํŠธ) ๋˜ํ•œ ์Šˆ๋ขฐ๋”ฉ๊ฑฐ์˜ ๊ณ ์–‘์ด์™€ ๋น„์Šทํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. (๋‚˜๋งŒ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ• ์ˆ˜๋„..) Fargate ๋Š” ๋ฌด์—‡์ผ๊นŒ? ์šฐ๋ฆฌ๋Š” ๋ณดํ†ต AWS ๋ฅผ ์ด์šฉํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•œ๋‹ค๊ณ  ํ•˜๋ฉด EC2 ๋ฅผ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€์— ์ปจํ…Œ์ด๋„ˆ๋‚˜ ์ง์ ‘ ํ”„๋กœ์„ธ์Šค๋กœ..

article thumbnail
[Python] re ๋ชจ๋“ˆ ์‚ฌ์šฉ๋ฒ• feat. [3์ฐจ] ํŒŒ์ผ๋ช… ์ •๋ ฌ

ํŒŒ์ด์ฌ์—์„œ ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ฃ . ๊ทธ ์ค‘ ์ •๊ทœํ‘œํ˜„์‹์„ ์ด์šฉํ•˜๋ฉด ์ข€ ๋” ๋‹ค์–‘ํ•˜๊ณ  ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ํŒŒ์ด์ฌ์—์„œ ์œ ์šฉํ•œ ๋ชจ๋“ˆ ์ค‘ ์ •๊ทœ์‹์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” re ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์—” ๋ฐฐ์šด๊ฑธ ํ† ๋Œ€๋กœ ์นด์นด์˜ค ๋ฌธ์ œ์ธ [3์ฐจ] ํŒŒ์ผ๋ช… ์ •๋ ฌ์— ์ ์šฉํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ ›์ธ ๋‘๋”์ฝ”๋“œ! re ๋ชจ๋“ˆ์˜ ํ•จ์ˆ˜๋“ค re ๋ชจ๋“ˆ์—๋Š” ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด์— ์œ ์šฉํ•  ๊ฒƒ ๊ฐ™์€ ํ•จ์ˆ˜๋“ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. search match fullmatch findall finditer sub subn split search() ๋ฌธ์ž์—ด์—์„œ ํŒจํ„ด์ด ์ผ์น˜ํ•˜๋Š” ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. print(re.search("A", "..

article thumbnail
[Github Action] ARC ๋ฅผ ์ด์šฉํ•œ Gradle Build Cache
DevOps/Github Action 2023. 3. 6. 22:39

์ค‘์š”!! ARC ๊ฐ€ Github Official ํ”„๋กœ์ ํŠธ๊ฐ€ ๋จ์— ๋”ฐ๋ผ ์•„๋ž˜์—์„œ ๋ณด์—ฌ๋“œ๋ฆฐ ARC ๊ด€๋ จํ•œ ๋ฆฌ์†Œ์Šค๋“ค์€ ์ „๋ถ€ ๊ตฌ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”! Action Controller Runner (์ดํ•˜ ARC) ๋Š” ํŒŒ๋“œ ๋‹จ์œ„ Self Hosted Runner ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์—์„œ ํŒŒ๋“œ๋ฅผ Self Hosted Runner ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค์ฃ . ARC ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์—ฌ๊ธฐ๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”. ๊ทผ๋ฐ ARC ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ•˜๋‚˜ ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ARC ์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง€๋Š” ํŒŒ๋“œ๋Š” Github Action ์˜ Job ์ด ์ข…๋ฃŒ๋  ๊ฒฝ์šฐ ์ œ๊ฑฐ๋˜๊ณ  ๋‹ค์‹œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ HostPath ๋‚˜ EFS ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด Job ์„ ์‹คํ–‰ํ•  ๋•Œ ์ƒ์„ฑํ–ˆ๋˜ Java SDK, N..

article thumbnail
[Kubernetes] PVC๋กœ ๋งˆ์Œ๋Œ€๋กœ ๋–ผ์—ˆ๋‹ค ๋ถ™์ด๋Š” AWS EBS
DevOps/Kubernetes 2023. 3. 6. 15:59

ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์šด์˜ํ•  ๋•Œ ์˜จํ”„๋กœ๋ฏธ์Šค๋ณด๋‹ค ํŽธํ•œ ์  ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ ๋ณผ๋ฅจ ๊ด€๋ฆฌ ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. EBS CSI Driver ๋ฅผ ์„ค์น˜ ํ›„ Storage Class, PV ๊ทธ๋ฆฌ๊ณ  PVC ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ AWS EBS ๋ฅผ ํ†ตํ•ด ๋ณผ๋ฅจ์„ ์–ธ์ œ ์–ด๋””์„œ๋“  ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ์ฃ . ํ•œํŽธ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„  ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณผ๋ฅจ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ์ปจํ…Œ์ด๋„ˆ๊ฐ„ ๊ณต์œ ๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•ด์ฃผ๋Š” EmptyDir, ๋…ธ๋“œ์˜ ๋ณผ๋ฅจ์„ ํ†ตํ•ด ํŒŒ๋“œ๊ฐ„ ๊ณต์œ ๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•ด์ฃผ๋Š” HostPath, NFS ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” NFS ๊ธฐ๋Šฅ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ผํŒŒ๋‚˜๋ฅผ ๋…ธ๋“œ์— ๋ฐฐํฌํ•  ๋•Œ, ๊ทธ๋ผํŒŒ๋‚˜์˜ ์„ค์ • ํŒŒ์ผ์€ ๊ทธ๋ผํŒŒ๋‚˜๊ฐ€ ๋ฐฐํฌ๋œ ๋…ธ๋“œ์˜ ๋ณผ๋ฅจ์— ์ €์žฅ์ด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งŒ์•ฝ ๊ทธ๋ผํŒŒ๋‚˜ ํŒŒ๋“œ๊ฐ€ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ๋ฐฐํฌ๊ฐ€ ๋  ๊ฒฝ์šฐ ์ด์ „์— ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๊ทธ๋ผํŒŒ๋‚˜ ์„ค์ •์„ ..

article thumbnail
[๋‚˜์ž‘์†Œ์ฟ ] ์˜ํ†  ์ง“๊ธฐ feat. ๋ฏธ๋‹ˆ PC ์กฐ๋ฆฝ

๊ทธ๋™์•ˆ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์—†์ด ์ž˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์ง€๋งŒ, ์—ญ์‹œ๋‚˜ ๋ฌธ์ œ๋Š” ๋น„์šฉ์ด์˜€์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ, ์›Œ์ปค ๋…ธ๋“œ ์ด 2๋Œ€๋งŒ ๋„์–ด๋†“์•„๋„ ์กฑํžˆ ๋‹ฌ์— 5๋งŒ์› ์ด์ƒ์€ ๋‚˜์™”์ฃ  ๐Ÿ˜ข playground ๋ฅผ ์‚ฌ์šฉํ•œ๋‹คํ•ด๋„ ์†๋„๊ฐ€ ๋Š๋ฆฌ๊ณ  ์•„๋ฌด๋ž˜๋„ ํœ˜๋ฐœ์„ฑ์ด๋‹ค ๋ณด๋‹ˆ ๋ถˆํŽธํ•จ์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•  PC ๋ฅผ ํ•˜๋‚˜ ์žฅ๋งŒํ•ด์•ผ๊ฒ ๋‹ค ์ƒ๊ฐ์„ ํ–ˆ๊ณ , A to Z ๊นŒ์ง€ ๊ตฌ์„ฑ์„ ํ•ด๋ณด๊ณ  ์‹ถ์–ด PC ๋˜ํ•œ ๋ถ€ํ’ˆ๋ณ„๋กœ ๊ตฌ๋งคํ•˜์—ฌ ์กฐ๋ฆฝํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ถ€ํ’ˆ๋“ค์ด ์žˆ์„๊นŒ? ๋ถ€ํ’ˆ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. AMD Ryzen 5700G 16core ASRock DeskMini X300 ๋ฒ ์–ด๋ณธ ์‚ผ์„ฑ PM9A1 M.2 NVMe SSD 1TB ์‚ผ์„ฑ DDR4 PC-25600 32G ๋…ธํŠธ๋ถ์šฉ..

article thumbnail
[Github Action] ํƒ€๋…ธ์Šค๋Š” ์ด๋Ÿฐ ๋Š๋‚Œ์ผ๊นŒ? RUNNER_TOKEN must be set

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์—์„  Action Controller Runner (์ดํ•˜ ARC) ๋ฅผ ์ด์šฉํ•ด์„œ ํŒŒ๋“œ๋ฅผ Self Hosted Runner ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ARC ๊ตฌ์กฐ๋Š” ์œ„์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. Self Hosted Runner ๋กœ ์‚ฌ์šฉํ•  ํŒŒ๋“œ๋ฅผ RunnerDeployment ๋˜๋Š” RunnerSet ์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์ฃ . RunnerDeployment ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ Deployment ์™€ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ณ , RunnerSet ์€ StatefulSet ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐฐํฌํ•˜๊ฒŒ ๋˜๋ฉด ํŒŒ๋“œ ์•ˆ์— 2๊ฐ€์ง€ ์ปจํ…Œ์ด๋„ˆ ๋™์ž‘ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ํ•˜๋‚˜๋Š” Github Action Job ์„ ์ฒ˜๋ฆฌํ•˜๋Š” Runner ์ปจํ…Œ์ด๋„ˆ, ๋˜ ํ•˜๋‚˜๋Š” Docker ๊ด€๋ จ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” Docker ์ปจํ…Œ์ด๋„ˆ์ž…๋‹ˆ๋‹ค. ์˜ต์…˜์„ ํ†ตํ•ด Runner..

article thumbnail
[Istio] Istio Ingress ์— ALB ๋ฅผ ๋ถ™์—ฌ๋ณด์ž !
DevOps/Istio 2023. 2. 12. 19:10

Istio ๋Š” ํ”ํžˆ K8S ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ์„œ๋น„์Šค ๋ฉ”์‹œ ์—ญํ• ์„ ํ•ด์ค๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋ฉ”์‹œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Nginx Ingress, ELB Ingress ์ฒ˜๋Ÿผ Ingress ์—ญํ•  ๋˜ํ•œ ํ•ด์ค๋‹ˆ๋‹ค. Istio Ingress Gateway ๊ฐ€ ์ •์‹ ๋ช…์นญ์ด๋‚˜ ์‰ฝ๊ฒŒ Istio Ingress ๋กœ ์ง€์นญํ•˜๋„๋ก ํ•˜์ฃ  ๐ŸคŸ EKS ์™€ ๊ฐ™์€ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ Load Balancer Service ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋ฉด ์ž๋™์œผ๋กœ CLB ๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Istio Ingress ๋˜ํ•œ CLB ๋กœ ํ• ๋‹น์ด ๋ฉ๋‹ˆ๋‹ค. CLB ๋Š” ์•ž์œผ๋กœ AWS ์—์„œ deprecated ๋˜๊ธฐ ๋•Œ๋ฌธ์— Network Load Balancer(์ดํ•˜ NLB) ๋‚˜ Application Load Balancer(์ดํ•˜ ALB) ๋กœ ๋Œ€์ฒด๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธ€์—..

article thumbnail
[Kubernetes] ์นœํ•œ ๋“ฏ, ์•ˆ ์นœํ•œ Pod ์™€ Goofys

Nginx ๊ธฐ๋ฐ˜์˜ Pod ๋‚ด์—์„œ S3 ์™€ Mount ํ•˜๊ธฐ ์œ„ํ•ด goofys ๋ฅผ ์‚ฌ์šฉํ–ˆ๋˜ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. (goofys ๋ง๊ณ  EBS ๋‚˜ EFS ๋„ ์œ„์‹œ๋ฆฌ์ŠคํŠธ์— ์žˆ์—ˆ์ง€๋งŒ, goofys ๊ฐ€ ๊ฐ€์žฅ ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ goofys ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค) ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ฃ . Nginx ๊ฐ€ provisioning ๋  ๋•Œ ConfigMap ์œผ๋กœ init.sh ๋ฅผ ์ฃผ์–ด goofys ๋ฅผ ๋งˆ์šดํŠธ ํ•œ ํ›„ ์‹คํ–‰๋˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ์‹์œผ๋กœ ๋ง์ด์ฃ . #!/usr/bin/env sh set -eu wget https://github.com/kahing/goofys/releases/latest/download/goofys chmod +x goofys /goofys /var/nginx ... nginx -g 'daemo..

article thumbnail
[Kubernetes] ์ธ์ฆ/์ธ๊ฐ€์™€ ETCD ์‚ฌ์ด ๊ทธ ๋…€์„ - Admission Controller
DevOps/Kubernetes 2023. 1. 24. 18:42

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๋‹ค๋ฅธ ํ”Œ๋žซํผ์ฒ˜๋Ÿผ ์ธ์ฆ(Authentication)/์ธ๊ฐ€(Athorization) ๋ฅผ ์ œ๊ณตํ•ด์ค๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ธ์ฆ๋ฐ›์ง€ ๋ชปํ•œ ์‚ฌ์šฉ์ž๋ผ๋ฉด 401 (UnAuthorized) ๋ฅผ ์‘๋‹ต ๋ฐ›๊ณ , ์ธ์ฆ์€ ๋˜์—ˆ์ง€๋งŒ ๊ถŒํ•œ์ด ์—†๋‹ค๋ฉด 403(Forbidden) ์‘๋‹ต์„ ๋ฐ›๊ฒŒ ๋˜์ฃ . ์•„์ฃผ ํ‰๋ฒ”ํ•œ ์ธ์ฆ/์ธ๊ฐ€ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ธ์ฆ/์ธ๊ฐ€๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๊ณ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์— ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆœ ์žˆ๋Š” ๊ฑด ์•„๋‹™๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์„ ์ ์šฉํ•˜๊ธฐ ์ง์ „ ํ•œ ๊ตฐ๋ฐ๋ฅผ ๋” ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ Adimission Controller ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Adimission Controller ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ , Adimission Controller ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณผ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜Ž Admission Controller ๊ฐ€..

article thumbnail
[๊ฒ‰ํ•ฅ๊ธฐ ์‹œ๋ฆฌ์ฆˆ] ๋ช…๋‹จ์— ์žˆ๋„ค์š”, ๋“ค์–ด์˜ค์‹œ์ฃ ! - Iptables ํŽธ

Iptables ๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์ „์— ๋จผ์ € Netfilter ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ฃ  ! Netfilter ์™€ Iptables AWS EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ Security Group ์ด๋ผ๋Š” ๊ฒƒ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์™ธ๋ถ€๋กœ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฐฉํ™”๋ฒฝ ๊ธฐ๋Šฅ์ด์ฃ . EC2 ์ธ์Šคํ„ด์Šค ์•ž๋‹จ์— ์ด๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ์•„๋งˆ ๋ฌผ๋ฆฌ์ ์ธ ๊ธฐ๊ณ„๊ฐ€ ์žˆ์–ด์„œ ์–ด๋–ค ํŠธ๋ž˜ํ”ฝ์€ ํ—ˆ์šฉํ•˜๊ณ , ์–ด๋–ค ํŠธ๋ž˜ํ”ฝ์€ ๊ฑฐ๋ถ€ํ•˜๊ฒ ์ฃ . Security Group ์ด ํ•˜๋“œ์›จ์–ด ๋ฐฉํ™”๋ฒฝ ์ด๋ผ๋ฉด Netfilter ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ฐฉํ™”๋ฒฝ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. Netfilter ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๋ฐฉํ™”๋ฒฝ ํŒจํ‚ท ํ•„ํ„ฐ๋ง ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋‚ด๋ถ€์˜ ํ”„๋ ˆ์ž„์›Œํฌ ํฌํŠธ ์ฃผ์†Œ, ๋ณ€ํ™˜, ํฌํŠธ ํฌ์›Œ๋”ฉ ๋ฐ ํŒจํ‚ท ๋ณ€๊ฒฝ ๋ผ์šฐํŒ… ์ „ํ›„์— ๋ฐ์ดํ„ฐ ๋ฐ..

article thumbnail
[Kubernetes] aws_auth ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค..

ํ…Œ๋ผํผ์€ Code ๋กœ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” IaC Tool ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ AWS ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ์ฐธ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ฃ . module ์„ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋ ต์ง€ ์•Š๊ฒŒ VPC, EKS, ELB ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ํ…Œ๋ผํผ์„ ์ด์šฉํ•ด EKS ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฒช์€ ๋ฌธ์ œ์ ๊ณผ ์ด๋ฅผ ํ•ด๊ฒฐํ–ˆ๋˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ ํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  Apply!! terraform-aws-eks ์— ๊ฐ€๋ณด๋ฉด ์•„์ฃผ ์นœ์ ˆํ•˜๊ฒŒ ํ…Œ๋ผํผ์„ ์ด์šฉํ•ด EKS ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ๋ฌด์ž‘์ • eks ๋ชจ๋“ˆ์„ import ํ•˜๊ณ  example ๊ณผ EKS Best Practices Guides ์ฐธ๊ณ ํ•˜์—ฌ ํ…Œ๋ผํผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. provider "kubernetes" { h..

article thumbnail
[๊ฒ‰ํ•ฅ๊ธฐ ์‹œ๋ฆฌ์ฆˆ] k8s์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์œ„ํ•ด ์น˜์–ผ์Šค - Helm ํŽธ

์™œ Helm ์„ ์‚ฌ์šฉํ•˜๋‚˜์š”? Helm ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ ์ „์— ์™œ ํ•„์š”ํ•œ์ง€ ๋จผ์ € ์•Œ์•„๋ณด์ฃ  ! ๐Ÿง Consistency ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ์•„๋ž˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ yaml ๋กœ ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. yaml ์ด 1,2 ๊ฐœ๋ผ๋ฉด ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ต์ง€ ์•Š๊ฒ ์ง€๋งŒ 10๊ฐœ ์ •๋„๋งŒ ๋˜๋„ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ํž˜๋“ค๊ณ  ๋ถˆํŽธํ•ด์ง‘๋‹ˆ๋‹ค. ๋˜ํ•œ kubectl edit์„ ํ†ตํ•ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์—…๋ฐ์ดํŠธ ํ•ด์ค„ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์ผ๊ด€์„ฑ(Consistency) ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Revision History ์–ด๋– ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Deploy, ConfigMap, Service, Ingress yaml ๋กœ ๋ฐฐํฌ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ฃ . ์ด๋•Œ ConfigMap ๊ณผ Service ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜์–ด์„œ yaml ์ด ๋ณ€..

article thumbnail
[AWS] rsync ๋ง๊ณ  datasync ! - EFS Data ์ด์ „
AWS 2022. 11. 20. 20:57

EFS (Elastic File System) ์€ AWS ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. EBS, S3 ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ๊ฐ ์“ฐ์ž„์˜ ๋ชฉ์ ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ž์‹ ์˜ ๋ชฉ์ ์— ๋งž๊ฒŒ ์ž˜ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. EFS S3 EBS ์‚ฌ์šฉ ์ผ€์ด์Šค ํ”„๋ผ์ด๋น— ์ด๋ฏธ์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋ฐ์ดํ„ฐ ๋ฐฑ์—… ์›น ์„œ๋น„์Šค ๋ฐ ์ปจํ…์ธ  EC2 ์˜ ๋ถ€ํŒ… ๋ณผ๋ฅจ ๊ทธ๋ฆฌ๊ณ  AWS DataSync ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ €์žฅ์†Œ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ VPC ๋‚ด ์ €์žฅ์†Œ๋Š” ๋ฌผ๋ก  ๋‹ค๋ฅธ VPC, ๊ต์ฐจ ๊ณ„์ • ๋ชจ๋‘ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. โœ… ๋‹ค๋ฅธ VPC, ๊ต์ฐจ ๊ณ„์ •์€ ์„œ๋กœ์˜ VPC ๊ฐ€ Peering ๋˜๊ฑฐ๋‚˜ TGW ๋กœ sharing ๋œ ์ƒํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค ์ž์„ธํ•œ ๋™์ž‘ ๋ฐฉ์‹์€ ํ™•์ธํ•˜๋ ค๋ฉฐ ์—ฌ๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š” ๊ทธ๋Ÿผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ๋ฒˆ DataSy..

article thumbnail
[Kubernetes] User Account ๋ž‘ Service Account ๊ฐ€ ๋‹ค๋ฅธ๊ฑฐ์˜€์–ด?
DevOps/Kubernetes 2022. 11. 20. 14:42

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ฒ˜์Œ User Account ์™€ Service Account ๋ฅผ ์ ‘ํ–ˆ์„ ๋•Œ ๋‹จ์ˆœํžˆ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API ์„œ๋ฒ„์—๊ฒŒ ์ž๊ฒฉ ์ฆ๋ช…ํ•˜๋Š” ๋ฆฌ์†Œ์Šค์ธ๊ฐ€๋ณด๋‹ค ํ•˜๊ณ  ๋„˜์–ด๊ฐ”๋˜ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ดํ•ด๊ฐ€ ์•ˆ๋˜์„œ ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ”๋˜.. ๊ทธ๋ž˜์„œ User Account ๋ž‘ Service Account ๋Š” ๋น„์Šทํ•œ๊ฑฐ !! ๊ฐ™์€ ๊ฑฐ !! ๋ผ๋Š” ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์ฃ .. ํ•˜์ง€๋งŒ ์ด ๋‘˜์€ ๋ถ„๋ช… ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋‚ด์— ์กด์žฌํ•˜๋Š” ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์œ„ํ•œ 2๊ฐ€์ง€์˜ account ํƒ€์ž…์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. User Account Service Account ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ณต์‹ ๋ฌธ์„œ์—๋Š” ์ด์™€ ๊ฐ™์ด ๋‚˜์™€์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์–ด์นด์šดํŠธ๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค. ์„œ๋น„์Šค ์–ด์นด์šดํŠธ๋Š” ํŒŒ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค. 100% ๋งž๋Š” ๋ง์ด์ง€๋งŒ..

article thumbnail
[K8S] EKSCTL ๋ฅผ ์ด์šฉํ•œ EKS ๊ตฌ์„ฑ
... 2022. 8. 3. 23:19

๐Ÿ”— eksctl ๊นƒํ—™ ๐Ÿ”— eksctl ๊ณต์‹ ๋ฌธ์„œ ๐Ÿ”— eksctl config file example eksctl ์„ค์น˜ curl --silent --location "(uname -s)_arm64.tar.gz" | tar xz -C /tmp sudo mv /tmp/eksctl /usr/local/bin eksctl version EKS ๊ตฌ์„ฑ eks ๋Š” ์•„๋งˆ์กด์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ๋น„์Šค์ด๋ฉฐ, eksctl ์€ eks ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์ปค๋งจ๋“œ ํˆด eksctl ๊ณต์‹ ๋ฌธ์„œ๋Š” ๊ต‰์žฅํžˆ ์นœ์ ˆํ•œ ํŽธ์ด๋ผ๊ณ  ์ƒ๊ฐ ๐Ÿ’ก eksctl ์€ EKS ๋ฅผ ์œ„ํ•œ ์ปค๋งจํŠธ ํˆด์ด๋ฏ€๋กœ aws configure ๊ฐ€ ๋œ ์ƒํƒœ์—ฌ์•ผ ํ•จ aws ๋กœ๊ทธ์ธ aws configure 1. Using Config Files (๊ฐ€์žฅ ๊ธฐ๋ณธ) apiVersi..

article thumbnail
[AWS] S3 ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค ์ฐจ๋‹จ์„ ํ™œ์„ฑํ™” ํ•˜๋ฉด์„œ ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž!!
AWS 2022. 6. 28. 00:21

S3๋Š” ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค ์ฐจ๋‹จ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ๋ฒ„ํ‚ท ๋‚ด ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œํ•œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค ์ฐจ๋‹จ์„ ํ™œ์„ฑํ™” ํ•˜๊ฒŒ ๋˜๋ฉด ์ž์›์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด s3 ๊ฐ์ฒด์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ S3๋Š” ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค ์ฐจ๋‹จ์„ ํ•˜๋ฉด์„œ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ด์ฃผ๋Š”๋ฐ, ๊ทธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. Pre-Signed-URL ์„ ์ด์šฉํ•˜์—ฌ S3 ๊ฐ์ฒด ์—…๋กœ๋“œ(PUT)/๋‹ค์šด๋กœ๋“œ(GET) ํ•˜๊ธฐ Pre-Signed-URL ์„ ์ด์šฉํ•˜์—ฌ S3 ๊ฐ์ฒด ์—…๋กœ๋“œ(PUT)๋ฅผ ์ง„ํ–‰ํ•˜๊ณ , ๋‹ค์šด๋กœ๋“œ๋Š” ์„œ๋ฒ„๋ฅผ ํ”„๋ก์‹œ๋กœ ๋‘์–ด ์„œ๋ฒ„์—์„œ S3์— ์ ‘๊ทผํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œ(GET)ํ•˜๊ธฐ Pre-Signed-URL ์„ ์ด์šฉํ•˜์—ฌ S3 ๊ฐ์ฒด ์—…๋กœ๋“œ(PUT)๋ฅผ ์ง„ํ–‰ํ•˜๊ณ , ๋‹ค์šด๋กœ๋“œ๋Š” goofys๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ S3..

article thumbnail
[Kotlin] ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ ํ‘œํ˜„์— data ํ•œ์ •์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
... 2022. 6. 16. 21:51

์ด ๊ธ€์˜ ๋‚ด์šฉ์€ [์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ]์„ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์ „๋‹ฌํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ๋ง์ด์ฃ . data class Player( val id: Int, val name: String, val points: Int ) val player = Player(0, "Gecko", 9999) data ํ•œ์ •์ž๋Š” ์•„๋ž˜์˜ ํ•จ์ˆ˜๋“ค์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. toString equals ์™€ hashCode copy componentN(component1, component2 ๋“ฑ) toString ํด๋ž˜์Šค์˜ ์ด๋ฆ„๊ณผ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ํ˜•ํƒœ๋กœ ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ์™€ ๊ฐ’์„ ์ถœ๋ ฅ ํ•ด์ค๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋กœ๊ทธ ์ถœ๋ ฅ์ด๋‚˜ ๋””๋ฒ„๊น… ํ• ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. println(player) // Player(id=0, name=Gecko, p..

article thumbnail
[Spring] Security +Google Oauth2 + JWT ๊ตฌํ˜„ํ•˜๊ธฐ (4) - JWT ์žฌ๋ฐœ๊ธ‰ ํ•ด์ฃผ๊ธฐ
... 2022. 6. 5. 12:44

์ด์–ด์„œ ๊ณ„์† ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ ์ž์ฒด๊ฐ€ ๋ชฉ์ ์ด๋ฏ€๋กœ ์ž์„ธํ•œ ์„ค๋ช…์„ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค. JWT ์ƒ์„ฑํ•˜๊ธฐ JWT์— ๊ถŒํ•œ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ ์ƒ์„ฑํ•œ JWT์— ๋Œ€ํ•ด ์ธ์ฆ/์ธ๊ฐ€ ํ•˜๊ธฐ JWT ์žฌ๋ฐœ๊ธ‰ ํ•ด์ฃผ๊ธฐ (์ง„ํ–‰) ๊ตฌํ˜„ AuthController @RestController @RequestMapping("/auth") class AuthController( private val authService: AuthService ) { /** * token ์ƒ์„ฑํ•ด์„œ ๋ณด๋‚ด์ฃผ๊ธฐ */ @GetMapping("/login") fun login(@AuthenticationPrincipal oAuth2User: OAuth2User): ResponseEntity { return ResponseEntity.ok(authService.login(oAu..

article thumbnail
[Spring] Security +Google Oauth2 + JWT ๊ตฌํ˜„ํ•˜๊ธฐ (3) - ์ƒ์„ฑํ•œ JWT์— ๋Œ€ํ•ด ์ธ์ฆ/์ธ๊ฐ€ ํ•˜๊ธฐ
... 2022. 6. 5. 12:08

์ด์–ด์„œ ๊ณ„์† ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ ์ž์ฒด๊ฐ€ ๋ชฉ์ ์ด๋ฏ€๋กœ ์ž์„ธํ•œ ์„ค๋ช…์„ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค. JWT ์ƒ์„ฑํ•˜๊ธฐ JWT์— ๊ถŒํ•œ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ ์ƒ์„ฑํ•œ JWT์— ๋Œ€ํ•ด ์ธ์ฆ/์ธ๊ฐ€ ํ•˜๊ธฐ (์ง„ํ–‰) JWT ์žฌ๋ฐœ๊ธ‰ ํ•ด์ฃผ๊ธฐ ๊ตฌํ˜„ JwtFilter class JwtFilter( private val jwtProvider: JwtProvider ) : OncePerRequestFilter() { override fun doFilterInternal( request: HttpServletRequest, response: HttpServletResponse, filterChain: FilterChain ) { val jwt = jwtProvider.resolveToken(request) if (StringUtils.hasText(jwt) && ..

article thumbnail
[Spring] Security +Google Oauth2 + JWT ๊ตฌํ˜„ํ•˜๊ธฐ (2) - JWT์— ๊ถŒํ•œ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ
... 2022. 6. 4. 18:36

์ด์–ด์„œ ๊ณ„์† ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ ์ž์ฒด๊ฐ€ ๋ชฉ์ ์ด๋ฏ€๋กœ ์ž์„ธํ•œ ์„ค๋ช…์„ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค. JWT ์ƒ์„ฑํ•˜๊ธฐ JWT์— ๊ถŒํ•œ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ (์ง„ํ–‰) ์ƒ์„ฑํ•œ JWT์— ๋Œ€ํ•ด ์ธ์ฆ/์ธ๊ฐ€ ํ•˜๊ธฐ JWT ์žฌ๋ฐœ๊ธ‰ ํ•ด์ฃผ๊ธฐ ๊ตฌํ˜„ @Component class JwtProvider( private val memberRepository: MemberRepository ) { companion object { private const val AUTHORITIES_KEY = "auth" private const val BEARER_TYPE = "bearer" private const val ACCESS_TOKEN_EXPIRE_TIME = (1000 * 60 * 30) private const val REFRESH_TOKEN_EXPIRE_TIME..

article thumbnail
[Spring] Security +Google Oauth2 + JWT ๊ตฌํ˜„ํ•˜๊ธฐ (1) - JWT ์ƒ์„ฑํ•˜๊ธฐ
... 2022. 6. 4. 18:11

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Spring Security + Google Oauth2 + JWT๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ ์ž์ฒด๊ฐ€ ๋ชฉ์ ์ด๋ฏ€๋กœ ์ž์„ธํ•œ ์„ค๋ช…์„ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค. ์ง„ํ–‰ํ•˜๊ธฐ ์•ž์„œ Google Oauth2 Client_ID, Client_Secret๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๋ฐ›์œผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค :) ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. JWT ์ƒ์„ฑํ•˜๊ธฐ (์ง„ํ–‰) JWT์— ๊ถŒํ•œ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ ์ƒ์„ฑํ•œ JWT์— ๋Œ€ํ•ด ์ธ์ฆ/์ธ๊ฐ€ ํ•˜๊ธฐ JWT ์žฌ๋ฐœ๊ธ‰ ํ•ด์ฃผ๊ธฐ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” JWT ์ƒ์„ฑํ•˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌํ˜„ build.gradle.kts import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.springframework.boot") version "2.6.8" id("..

article thumbnail
[Kotlin] ์ œ๋„ค๋ฆญ ํƒ€์ž…๊ณผ variance ํ•œ์ •์ž๋ฅผ ํ™œ์šฉํ•˜๋ผ
... 2022. 4. 29. 15:19

์žฌ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ณผ๋„ํ•œ ์œ ์—ฐ์„ฑ ๋‹ค์–‘ํ•œ ํƒ€์ž…์— ๋™์ผํ•œ ๋กœ์ง์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ ๊ณผ๋„ํ•˜๊ฒŒ ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋ถ€ Any๋กœ ๋ฐ›๋Š” ๊ฒƒ์ด ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. open class Car class K3 : Car() class Avante : Car() //โ€œ์ฐจ์— ๋Œ€ํ•œ ์„ค๋ช…์„œโ€ ํ•จ์ˆ˜ fun getInstruction(car: Array) { println("car = ${car.size}") } ๋งŽ์ด ๊ทน๋‹จ์ ์ธ ์˜ˆ์ œ์ด๊ธฐ๋Š” ํ•ฉ๋‹ˆ๋‹ค.. open class Fruit class Apple : Fruit() fun main() { val k3 = K3("k3", "๊ธฐ์•„") val avante = Avante("์•„๋ฐ˜๋–ผ", "ํ˜„๋Œ€") val fruits: Array = arrayOf(Apple())..

article thumbnail
[Java] ์Šคํ”„๋ง์„ ์™œ ์‚ฌ์šฉํ• ๊นŒ?(2) - OCP์™€ DIP ํ•ด๊ฒฐ By ์ˆœ์ˆ˜ ์ž๋ฐ”
... 2022. 2. 1. 11:25

์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ๋Š” OCP์™€ DIP๊ฐ€ ์œ„๋ฐฐ ๋˜๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ์Šคํ”„๋ง์ด ์•„๋‹Œ ์ˆœ์ˆ˜ ์ž๋ฐ”๋กœ ํ•ด๊ฒฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž ๊น ์ง€๋‚œ ๊ธ€์˜ ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. public class DriverImpl implements Driver{ Car car = new K3(); Engine engine = new Electronic(); @Override public void findOwnCarDetail() { car.findCarName(); car.findCarBrand(); engine.WayToMove(); } } DriverImpl ์—ญํ• ์— ๊ตฌํ˜„์ฒด๊ฐ€ ์ง์ ‘ new ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ ์–ผํ•๋ณด๋ฉด OCP์™€ DIP๋ฅผ ์ž˜ ์ง€ํ‚จ ๊ฒƒ ๊ฐ™์ง€๋งŒ ์‚ฌ์‹ค ์•„๋‹ˆ๋ผ๊ณ  ์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ ..

article thumbnail
[Java] ์Šคํ”„๋ง์„ ์™œ ์‚ฌ์šฉํ• ๊นŒ?(1) - OCP์™€ DIP์˜ ์œ„๋ฐฐ
... 2022. 1. 20. 15:20

๋ฐ”๋Š˜๊ณผ ์‹ค์ฒ˜๋Ÿผ ์ž๋ฐ”ํ•˜๋ฉด ๋ฐ”๋กœ ๋– ์˜ค๋ฅด๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ "๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด" ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "๊ฐ์ฒด ์ง€ํ–ฅ"์ด๋ž€ ๋ ˆ๊ณ ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ๊ณ  ๋ธ”๋ก๋“ค์„ ์กฐ๋ฆฝํ•˜์—ฌ ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์ด๋“  ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ๊ณ ๋ฅผ ์ด์šฉํ•ด์„œ ๋™๋ฌผ์›์„ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋™๋ฌผ์›์—๋Š” ๋ ˆ๊ณ ๋กœ ๋งŒ๋“ค์–ด์ง„ ์‚ฌ์ž๋„ ์žˆ๊ณ , ํ˜ธ๋ž‘์ด๋„ ์žˆ๊ณ , ์ฝ”๋ผ๋ฆฌ๋„ ์žˆ๊ณ , ์ œ๊ฐ€ ์ข‹์•„ํ•˜๋Š” ํŒ๋‹ค๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์Šฌํ”„๊ฒŒ๋„ ๋” ์ด์ƒ ํ˜ธ๋ž‘์ด๊ฐ€ ์ธ๊ธฐ๊ฐ€ ์—†์–ด์„œ ๊ณ ๋ฆด๋ผ ๋ ˆ๊ณ ๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ ์šฐ๋ฆฌ๋Š” ์‰ฝ๊ฒŒ ๋™๋ฌผ์›์—์„œ ํ˜ธ๋ž‘์ด ๋ ˆ๊ณ ๋ฅผ ๋นผ๊ณ  ๊ณ ๋ฆด๋ผ ๋ ˆ๊ณ ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ˜ธ๋ž‘์ด, ๊ณ ๋ฆด๋ผ๊ฐ€ ๊ฐ์ฒด๊ฐ€ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜ธ๋ž‘์ด๋ฅผ ๋บ€ ๋‹ค๊ณ  ํ•ด์„œ ๊ธฐ์กด์— ์žˆ๋˜ ์‚ฌ์ž๋‚˜ ํŒ๋‹ค ๋ ˆ๊ณ ๋Š” ์ „ํ˜€ ์˜ํ–ฅ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ผ์ด๊ฑฐ ๋ ˆ๊ณ ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๊ณ , ํ˜ธ๋ž‘์ด์™€ ์‚ฌ์ž๋ฅผ ๋งˆ๊ตฌ์žก..

profile on loading

Loading...