Super Kawaii Cute Cat Kaoani
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ALL

(55)
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํŠœํ”Œ https://school.programmers.co.kr/learn/courses/30/lessons/64065 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๐Ÿ’ก ์•„์ด๋””์–ด ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌํ•˜๊ธฐ },{ ๊ธฐ์ค€์œผ๋กœ ์Šฌ๋ผ์ด์‹ฑํ•˜๊ธฐ , ๊ธฐ์ค€์œผ๋กœ ์Šฌ๋ผ์ด์‹ฑํ•˜๊ธฐ ๋ฆฌ์ŠคํŠธ ๊ธธ์ด ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ์ •๋‹ต ๋ฐฐ์—ด์— ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•˜๊ธฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค s = "{{4,2,3},{3},{2,3,4,1},{2,3}}" result = [3, 2, 4, 1] ๐Ÿ”Ž ํ’€์ด def solution(s): answer = [] ### ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌํ•˜๊ธฐ ### s1 = s.lstrip('{').rstri..
[Python] DFS ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ ๐Ÿ”Ž DFS (Depth-First Search) ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰, ๊ทธ๋ž˜ํ”„์—์„œ ๊นŠ์€ ๋ถ€๋ถ„์„ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ทธ๋ž˜ํ”„์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ ๋…ธ๋“œ(node)์™€ ๊ฐ„์„ (edge)๋กœ ํ‘œํ˜„ ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ฅผ ์‹œ์ž‘์œผ๋กœ ๋‹ค์ˆ˜์˜ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ ๋‘ ๋…ธ๋“œ๊ฐ€ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋ฉด โžก ๋‘ ๋…ธ๋“œ๋Š” ์ธ์ ‘ํ•˜๋‹ค ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ์‹ ์ธ์ ‘ ํ–‰๋ ฌ (Adjacency Matrix) : 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๊ทธ๋ž˜ํ”„ ์—ฐ๊ฒฐ ๊ด€๊ณ„ ํ‘œํ˜„ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ (Adjacency List) : ๋ฆฌ์ŠคํŠธ๋กœ ๊ทธ๋ž˜ํ”„ ์—ฐ๊ฒฐ ๊ด€๊ณ„ ํ‘œํ˜„ ์ธ์ ‘ ํ–‰๋ ฌ ๋ฐฉ์‹ 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š๋Š” ๋…ธ๋“œ๋ผ๋ฆฌ๋Š” ๋ฌดํ•œ์˜ ๋น„์šฉ (999999999 ๋“ฑ์˜ ํฐ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”) INF = 99999999 graph = [ [0, 7, 5], [7, 0, INF], [5..
[Python] ์žฌ๊ท€ํ•จ์ˆ˜ ๐Ÿ’ก ์žฌ๊ท€ํ•จ์ˆ˜๋ž€? ์ž๊ธฐ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜ def recursive_function(): print('์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.') recursive_function() recursive_function() '์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค' ๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๋ฌดํ•œํžˆ ํ˜ธ์ถœํ•œ๋‹ค. โœ”๏ธ ์žฌ๊ท€ํ•จ์ˆ˜์˜ ์ข…๋ฃŒ ์กฐ๊ฑด ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ๋ฌธ์ œ ํ’€์ด์—์„œ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์žฌ๊ท€ ํ•จ์ˆ˜๊ฐ€ ์–ธ์ œ ๋๋‚  ์ง€, ์ข…๋ฃŒ ์กฐ๊ฑด์„ ๊ผญ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค. def recursive_function(i): if i == 100 : return print(i, '๋ฒˆ์งธ ์žฌ๊ท€ ํ•จ์ˆ˜์—์„œ', i + 1, '๋ฒˆ์งธ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.') recursive_function(i + 1) print(i, '๋ฒˆ์งธ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.') recursive_function(1) ์ปด..
[Python] ์ž๋ฃŒ๊ตฌ์กฐ - ์Šคํƒ, ํ ๐Ÿ’ก ์ž๋ฃŒ๊ตฌ์กฐ๋ž€? ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ. ๊ทธ ์ค‘ ์Šคํƒ๊ณผ ํ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ฐœ๋…์œผ๋กœ ๋‹ค์Œ์˜ ๋‘ ํ•ต์‹ฌ์ ์ธ ํ•จ์ˆ˜๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. โœ… ์‚ฝ์ž… (Push) : ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. โœ… ์‚ญ์ œ (Pop) : ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค. โœ๏ธ ์Šคํƒ Stack โœ”๏ธ ์„ ์ž…ํ›„์ถœ (First In Last Out) โœ”๏ธ ๋ฐ•์Šค ์Œ“๊ธฐ โžก๏ธ ์•„๋ž˜์— ์žˆ๋Š” ๋ฐ•์Šค๋ฅผ ์น˜์šฐ๊ธฐ ์œ„ํ•ด์„œ ์œ„์— ์žˆ๋Š” ๋ฐ•์Šค๋ฅผ ๋จผ์ € ๋‚ด๋ ค์•ผ ํ•œ๋‹ค. ์ดˆ๊ธฐ๋‹จ๊ณ„ ์‚ฝ์ž… (5) 5 ์‚ฝ์ž… (2) 5 2 ์‚ฝ์ž… (3) 5 2 3 ์‚ญ์ œ 5 2 ์‚ฝ์ž… (7) 5 2 7 ์‚ญ์ œ 5 2 ํŒŒ์ด์ฌ ์ฝ”๋“œ stack = [] stack.append(5) stack.append(2) stack.append(3) stack.pop() stack.append(7) stack.pop() print(stack)..
[AWS] k8s์—์„œ LoadBalancer ๊ตฌ์„ฑํ•˜๊ธฐ (classic, nlb) k8s์—์„œ LoadBalancer ๊ตฌ์„ฑํ•˜๊ธฐ (classic, nlb) ๐Ÿ’ก k83์—์„œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์‚ฌ์šฉํ•˜๊ธฐ on-premise : metallb๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LB๋ฅผ ๊ตฌ์ถ•ํ•ด๋‘”๋‹ค. aws : ์ž์ฒด์ ์œผ๋กœ LB ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ yaml ํŒŒ์ผ ๋‚ด์—์„œ ์„œ๋น„์Šค ํƒ€์ž…์„ LoadBalancer๋ฅผ ์ง€์ •ํ•˜๋ฉด ์ž๋™์œผ๋กœ LB api์™€ ์—ฐ๊ฒฐํ•˜์—ฌ LB๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค. alb : L7 LoadBalancer → ingress๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค. nlb : L4 LoadBalancer classic lb ← Haproxy๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์˜ L4, L7์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. โœ๏ธ EKS์—์„œ ๋ณ„๋‹ค๋ฅธ ์˜ต์…˜์—†์ด LB ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๋ฉด Classic LB๊ฐ€ ๋ฐฐํฌ๋œ๋‹ค. ๋งŒ์•ฝ, nlb & alb๋ฅผ ์„ ํƒํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ถ”๊ฐ€ ์˜ต์…˜์„ metadata..
[AWS] Amazon ECR - ํ”„๋ผ์ด๋น— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑํ•˜๊ธฐ Amazon ECR - ํ”„๋ผ์ด๋น— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑํ•˜๊ธฐ โœ… eks > Amazon ECR โœ… ํ”„๋ผ์ด๋น— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ โœ… aws์— ๋กœ๊ทธ์ธํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด ์ถ”๊ฐ€ rm -f ~/.docker/config.json aws ecr get-login-password --region ap-northeast-1|\\ docker login --username AWS --password-stdin \\ 533266992525.dkr.ecr.ap-northeast-1.amazonaws.com/yoon/myapp01 โœ… nginx ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ docker pull nginx โœ… ์ด๋ฏธ์ง€ push docker tag nginx:latest 533266992525.dkr.ecr.ap-northeast-1.amazonaws.com..
[AWS] ELK๋กœ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑํ•˜๊ธฐ ELK๋กœ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑํ•˜๊ธฐ ๐Ÿ’ก EKS ๊ตฌ์„ฑ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๋‚ด์šฉ - ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„ - ๋ฒ„์ „ - eksClusterRole - VPC/subnet - ๋ณด์•ˆ๊ทธ๋ฃน ๐Ÿ’ก CloudFormation ๊ตฌ์„ฑ๋“ค์„ ํ•˜๋‚˜์”ฉ ์„ ํƒํ•˜์—ฌ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์‹œ๊ฐ„, ์žฌ์‚ฌ์šฉ์„ฑ ๋ฉด์—์„œ ๋ถˆํŽธํ•จ์ด ๋งŽ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” "์„ ์–ธ์  ์–ธ์–ด"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ IaC ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. ๐Ÿ’ก eksctl eks ๊ตฌ์„ฑ์„ ๊ฐ„๋‹จํžˆ ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ eksctl์„ ์ด์šฉํ•˜์—ฌ eks ๊ตฌ์„ฑ์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด cloudformation์ด ์ž๋™์œผ๋กœ ์ž‘์„ฑ๋œ๋‹ค. ๊ฐ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•˜์—ฌ ํ•„์š”ํ•œ ์ž์›์„ ์ƒ์„ฑํ•˜๊ณ  ์„œ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค. โœ… ์—ญํ•  ์ƒ์„ฑ • IAM > ์—ญํ•  > ์—ญํ•  ์ƒ์„ฑ โœ… ์•ก์„ธ์Šค ํ‚ค ๋งŒ๋“ค๊ธฐ • ์˜ค๋ฅธ์ชฝ ์œ„ ๋‹‰๋„ค์ž„ ํด๋ฆญ ํ›„ ๋ณด์•ˆ ์ž๊ฒฉ ์ฆ๋ช… • ์•ก์„ธ์Šค ํ‚ค ๋งŒ..
[Jenkins] Pipeline์œผ๋กœ ์›น ๋ฐฐํฌํ•˜๊ธฐ (Jenkinsfile) Pipeline์œผ๋กœ ์›น ๋ฐฐํฌํ•˜๊ธฐ (Jenkinsfile) ๐Ÿ’ก ์  ํ‚จ์Šค์—์„œ ์ƒˆ๋กœ์šด ์•„์ดํ…œ ์ƒ์„ฑํ•˜๊ธฐ โœ… โž• ์ƒˆ๋กœ์šด Item โœ”๏ธ ์  ํ‚จ์Šค์—์„œ ์•„์ดํ…œ์ด๋ž€? ์ƒˆ๋กญ๊ฒŒ ์ •์˜ํ•  ์ž‘์—…์„ ๋งํ•œ๋‹ค. ๋ชจ๋“  ์ž‘์—…์˜ ์ •์˜์™€ ์ˆœ์„œ๋ฅผ ๋ชจ์•„๋‘” ์ „์ฒด ์ž‘์—…์„ ํ”„๋กœ์ ํŠธ๋ผ๊ณ  ํ•˜๋ฉฐ, ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์—๋Š” Freestyle, Pipeline๋“ฑ์ด ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ •์˜ํ•˜๊ณ  ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ์•„์ดํ…œ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๐Ÿ’ก Pipeline โœ”๏ธ Pipeline์ด๋ž€? ์  ํ‚จ์Šค์—์„œ ์ง€์›ํ•˜๋Š” ๊ณ ์œ ์˜ Pipeline ๋ฌธ๋ฒ•์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์ด๋‹ค. ๊นƒํ—ˆ๋ธŒ์™€ ๊ฐ™์€ ์ฝ”๋“œ ์ €์žฅ์†Œ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฆด ๋•Œ Pipeline ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•œ ํŒŒ์ผ์„ ํ•จ๊ป˜ ์˜ฌ๋ ค๋‘๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์™€ ๋ฐฐํฌ๋ฅผ ํ•จ๊ป˜ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ๊ด€๋ฆฌ ํŽธ๋ฆฌ์„ฑ์ด ๋†’๋‹ค. Pipeli..
[Kubernetes] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์—์„œ Canary Update ์‹ค์Šต ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์—์„œ Canary Update ์‹ค์Šต ๐Ÿ’ก Canary Update โœ”๏ธ ๋ณ„๋„์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.์ „์ฒด ๋น„์œจ์—์„œ ์‹ ๊ทœ Pod๋Š” 5% ์ •๋„๋กœ ๋ฐฐํฌํ•˜๊ณ  ๋น„์œจ์„ ์ ์  ๋Š˜๋ ค๊ฐ„๋‹ค. ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹ ๊ทœ Pod๋กœ ๋ฐ”๊พผ๋‹ค. โœ”๏ธ canary๋งŒ ์ ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์‹ ๊ทœ Pod๋ฅผ ๋ˆ„๊ตฌ์—๊ฒŒ ๋ฐฐํฌํ•  ๊ฒƒ์ธ๊ฐ€ ๊ฒฐ์ •ํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๋งŒ์•ฝ ํŠน์ • ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹ ๊ทœ Pod๋กœ ์ ‘์† ๋˜๋„๋ก ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด istio๋ฅผ ์ ์šฉํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. (istio๋Š” service mesh๋ฅผ ์ œ๊ณตํ•œ๋‹ค.) โœ”๏ธ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•˜์—ฌ ์†Œ์ˆ˜์˜ Pod๋ฅผ ๋ฏธ๋ฆฌ ๋ฐฐํฌํ•ด ๋ณธ ๋’ค, ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ/๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ฑฐ์ณ ์•ˆ์ •์„ฑ์ด ๊ฒ€์ฆ๋˜๋ฉด ์ƒˆ๋กœ์šด Pod๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ๋‹ค. โœ”๏ธ ํ…Œ์ŠคํŠธ์šฉ Pod๋ฅผ ๋ฏธ๋ฆฌ ๋ฐฐํฌํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋™์ž‘ ์ƒํƒœ๋ฅผ ๋ฏธ๋ฆฌ ์ ๊ฒ€ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ..
[Jenkins] CentOS8์—์„œ Jenkins ์‚ฌ์šฉํ•˜๊ธฐ CentOS8์—์„œ Jenkins ์‚ฌ์šฉํ•˜๊ธฐ ๐Ÿ’ก ํŒŒ์ดํ”„๋ผ์ธ์ด๋ž€? ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ตฌ๋™ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ • ๊นƒํ—ˆ๋ธŒ ๋“ฑ ์ €์žฅ์†Œ์— ์ €์žฅํ•ด ๋‘” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‚ด๋ ค๋ฐ›์•„ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋กœ ๋นŒ๋“œ ๋นŒ๋“œํ•œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋“ฑ๋ก ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋“ฑ๋ก๋œ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ ์ƒ์„ฑํ•œ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์™ธ๋ถ€์—์„œ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„œ๋น„์Šค ํ˜•ํƒœ๋กœ ๋…ธ์ถœ ๋Œ€๋ถ€๋ถ„ IT ์ž‘์—…์€ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ ๋‹ค. ๊ธฐ์กด์—๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ๋žŒ์ด ํ•˜๋‚˜ํ•˜๋‚˜ ์ˆ˜์ž‘์—…์œผ๋กœ ์ง„ํ–‰ํ–ˆ์ง€๋งŒ, ์ด์ œ๋Š” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ’ก CI/CD ์ž๋™ํ™”๋Š” ํฌ๊ฒŒ ์ง€์†์  ํ†ตํ•ฉ(CI), ์ง€์†์  ๋ฐฐํฌ(CD) ๋‘ ๊ฐ€์ง€๋กœ ์ •์˜ CI/CD๋Š” ์‹ค๋ฌด์ ์ธ ํ™˜๊ฒฝ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณ„์† ์ถ”์ ํ•ด ์ข€ ๋” ์•ˆ์ •..

728x90