728x90

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

[boj/python] 1238๋ฒˆ ํŒŒํ‹ฐ

import sys import heapq input = sys.stdin.readline INF= (int)(1e8) N,M,X=map(int,input().split()) lst=[[] for _ in range(N+1)] for i in range(M): start,end,cost = map(int,input().split()) lst[start].append((end,cost)) # ์ง‘ -> x๊นŒ์ง€ ๋‹ค์ต์ŠคํŠธ๋ผ x-> ์ง‘๊นŒ์ง€ ๋‹ค์ต์ŠคํŠธ๋ผ 2ํšŒ ์ˆ˜ํ–‰ def dijkstra(start,): q = [] distance = [INF]*(N+1) distance[start] = 0 heapq.heappush(q,(start,0)) while q: node,dist=heapq.heappop(q) if dist..

[DevOps] Cloud Run์—์„œ RDS์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด

CloudRun ์›น์„œ๋ฒ„์— ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•ด์ฃผ๋ƒ๋ฉด ์šฐ์„  cloud run ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๊ณ  ์ปจํ…Œ์ด๋„ˆ -> ํ™˜๊ฒฝ๋ณ€์ˆ˜์—์„œ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ํ™˜๊ฒฝ๋ณ€์ˆ˜๋Š” ์š”๋ ‡๊ฒŒ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๊ฐ€๋ฆฌ๊ธฐ ! ๊ทธ๋Ÿฌ๋ฉด ํ™˜๊ฒฝ๋ณ€์ˆ˜ ENDPOINT,SCHEMA,USER,PW๋งŒ Cloud Run์— ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

Elastic beanstalk์—์„œ Environment health has transitioned from Ok to Severe. 100 % of the requests are erroring with HTTP 4xx ์—๋Ÿฌ๊ฐ€ ๋œฐ ๋•Œ

๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ ๋กœ๋“œ๋ฒจ๋Ÿฐ์‹ฑ ์ƒํƒœํ™•์ธ์ด ๊ณ„์† 404๊ฐ€ ๋–ด๋‹ค. ๊ณต์‹๋ฌธ์„œ๋ฅผ ๋ณด๋‹ˆ๊นŒ ์ƒํƒœ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์•„์„œ ์ธ๊ฒƒ ๊ฐ™์•˜๋‹ค. Target.ResponseCodeMismatch ์„ค๋ช…: ์ƒํƒœ ํ™•์ธ์ด ์˜ˆ์ƒ HTTP ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ์„ฑ๊ณต ์ฝ”๋“œ๋Š” ๋Œ€์ƒ์œผ๋กœ๋ถ€ํ„ฐ ์„ฑ๊ณต์ ์ธ ์‘๋‹ต์„ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” HTTP ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. 200~499 ์‚ฌ์ด์˜ ๊ฐ’ ๋˜๋Š” ๊ฐ’ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 200์ž…๋‹ˆ๋‹ค. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ์ƒํƒœ ํ™•์ธ ๊ตฌ์„ฑ์„ ํ™•์ธํ•˜์—ฌ ์ˆ˜์‹ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์„ฑ๊ณต ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ์›น ์„œ๋ฒ„ ์•ก์„ธ์Šค ๋กœ๊ทธ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ์˜ˆ์ƒ ์„ฑ๊ณต ์ฝ”๋“œ๊ฐ€ ๋ฐ˜ํ™˜๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ํ•„์š”์— ๋”ฐ๋ผ ์„ฑ๊ณต ์ฝ”๋“œ ๊ฐ’์„ ์ˆ˜์ •ํ•˜์‹ญ์‹œ์˜ค. ping ๊ฒฝ๋กœ๊ฐ€ ์œ ํšจํ•œ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ping ๊ฒฝ๋กœ๋Š” ์ƒํƒœ ํ™•์ธ์„ ์œ„ํ•œ ๋Œ€์ƒ์—..

[GCP] Cloud Run์œผ๋กœ ์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์›น์„œ๋ฒ„์— ๋ฐฐํฌํ•ด๋ณด์ž!

Google Cloud๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋ฐฐํฌํ•  ์ผ์ด ์ƒ๊ฒจ์„œ ์—ฌ๋Ÿฌ๋ฒˆ ๋ป˜์ง“์„ ํ•˜๋‹ค ๊ธฐ๋กํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์•„๋ฌด๋ž˜๋„ GCP๋Š” AWS๋ณด๋‹ค ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋งŽ์ด ์—†๊ธฐ๋„ ํ•ด์„œ ๋” ์–ด๋ ค์› ๋‹ค. ํ•˜์ง€๋งŒ ๊ตฌ๊ธ€์ด์—ฌ์„œ ๊ทธ๋Ÿฐ์ง€ ๊ณต์‹๋ฌธ์„œ๊ฐ€ ์ •๋ง ์ž˜ ๋˜์–ด์žˆ์—ˆ๋‹ค. ์ฝ๊ธฐ ๋”ฐ๋ถ„ํ• ์ง€ ๋ชฐ๋ผ๋„ ๊ผญ ์ฝ์–ด๋ณด๋ฉด ์ข‹๋‹ค! ๊ฒฐ๊ตญ ๋‚˜๋„ ๋‹ต์„ ๊ณต์‹๋ฌธ์„œ์— ์ฐพ์•˜๋‹ค! ๋„์›€์„ ๋ฐ›์€ ๋งํฌ๋Š” https://cloud.google.com/build/docs/deploying-builds/deploy-cloud-run?hl=ko Cloud Build๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Run์— ๋ฐฐํฌ | Cloud Build ๋ฌธ์„œ | Google Cloud ์˜๊ฒฌ ๋ณด๋‚ด๊ธฐ Cloud Build๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Run์— ๋ฐฐํฌ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”..

DevOps 2023.02.06

[Springboot] Docker+Elastic Beanstalk +Github action ๋‹ฌ๊ณ  CI/CDํ•ด๋ณด์ž!

์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ์— ๋„์ปค๋ฅผ ๊ฐ์‹ธ๊ณ  Github Action์œผ๋กœ CI CD๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‚ด๊ฐ€ ์ฐพ์•„๋ณธ ๋ฐ”๋กœ ์ด 3๊ฐ€์ง€์ด๋‹ค! ์•„ ์šฐ์„  ์™œ ๋„์ปค๋ฅผ ๊ฐ์‹ธ๋ƒ ํ•˜๋ฉด ๋‚˜์ค‘์— ์„œ๋น„์Šค๊ฐ€ ์ปค์กŒ์„ ๋•Œ ๋ชจ๋“  ํ™˜๊ฒฝ์— ๋™์ผํ•œ ๋ฒ„์ „์œผ๋กœ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋‹ค๋“ค ๋„์ปค๋„์ปค ํ•˜๋‹ˆ๊นŒ ๋‚˜๋„ ๋„์ปค ์ข€ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค! ๐Ÿณ ๊ทธ๋ž˜์„œ ๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ CI CDํ•˜๋Š” ๋ฐฉ๋ฒ• ์„ธ๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•˜๊ฒ ๋‹ค. 1๏ธโƒฃ Docker+ S3+CodeDeploy+Github actions ๊ฐ„๋‹จํ•ด ๋งํ•˜๋ฉด ๋นŒ๋“œ ํŒŒ์ผ์ธ jarํŒŒ์ผ์„ ์••์ถ•ํ•ด์„œ ์—…๋กœ๋“œ ํ•œ ๋‹ค์Œ์— CodeDeploy๋ฅผ ํ™œ์šฉํ•ด ๋ฐฐํฌํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ธ์ง€ ์ด ๋ฐฉ๋ฒ•์„ ์“ฐ๋ฉด IAM์ด ๋ฌด๋ ค ์„ธ๊ฐœ๋‚˜ ํ•„์š”ํ•˜๋‹ค. IAM ์—ญํ•  2๊ฐœ my-ec2-ima-role : EC2์ธ์Šคํ„ด์Šค์—์„œ S3์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ถŒํ•œ์„ ์ค€๋‹ค (AmazonS3..

DevOps 2023.01.14

[DevOps] Elastic Beanstalk + Github Actions ํ™˜๊ฒฝ์—์„œ Deployment failed: Error: Deployment failed! Current State: Version: Sample Application, Health: Red, Health Status: Degraded ๋ฌธ์ œ ํ•ด๊ฒฐ

Github Actions๋กœ ์Šคํ”„๋ง๋ถ€ํŠธ๋ฅผ CI/CDํ• ๋•Œ Elastic Beanstalk์—์„œ ๋ฐฐํฌ๋ฅผ ํ•˜๋ คํ–ˆ๊ณ , grade.yml์— Beanstalk ์„ค์ •์„ ํ•ด์ฃผ๋Š”๋ถ€๋ถ„์—์„œ ๊ณ„์† ์—๋Ÿฌ๊ฐ€ ํ„ฐ์กŒ๋‹ค ์˜ˆ๋ฅผ ๋“ค๋ฉด ์ด๊ฑด deployment_package๊ฐ€ ์ด๋ฏธ ์žˆ๋‹ค๋Š” ์—๋Ÿฌ ๊ฐ™์•˜๊ณ  ์ด๋ ‡๊ฒŒ ๋ฐ‘์—๋‹ค true๋กœ ์„ค์ •ํ•ด๋‘์—ˆ๋‹ค! ์ด ์—๋Ÿฌ๊ฐ€ jolla ๋นก์ณค๋‹ค ์ž๊พธ ์„ฑ๋Šฅ์ €ํ•˜๋๋‹ค ๊ทธ๋Ÿฌ๋Š”๋ฐ ์–ด๋””์„œ ๋ฌธ์ œ์ธ์ง€ ๋ชจ๋ฅด๋‹ˆ๊นŒ ๋ถ„๋…ธ ๊ทธ ์žก์ฑ„์˜€๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒŒ ์™œ ์ž˜๋ชป๋๋‚˜ ์ƒ๊ฐ์„ ํ•ด๋ดค๊ณ  ๋‘๊ฐ€์ง€๋ฅผ ๊ณ ์น˜๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค. 1. gradle.yml์„ ์“ฐ๋Š” ์ˆœ์„œ์˜ ๋ฌธ์ œ ์›๋ž˜๋Š” gradle -> docker->EB ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ–ˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ gradle->EB->docker๋กœ ์จ์ฃผ๋Š”๊ฒŒ ๋ฌธ์ œ์˜€๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ..

[NextJS] getServerSideProps

Next.js์—์„œ๋Š” getServerSideProps๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด SSR์„ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค! ์˜ค์ง ์„œ๋ฒ„ ์‚ฌ์ด๋“œ์—์„œ๋งŒ ์‹คํ–‰์ด๋˜๊ณ , ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์‹คํ–‰์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ์š”์ฒญ์‹œ๊ฐ„์— ์‹คํ–‰๋˜๊ณ  ๋ฐ˜ํ™˜๋œ ๊ฐ’์œผ๋กœ ๋ฏธ๋ฆฌ ๋ Œ๋”๋ง์„ ํ•œ๋‹ค. getStaticProps์™€ ์ฐจ์ด์ ์€ ๋นŒ๋“œ ์‹œ๊ฐ€ ์•„๋‹Œ ๋งค request๋งˆ๋‹ค ์‹คํ–‰๋œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค. ์ฆ‰, ๋งค ์š”์ฒญ๋งˆ๋‹ค ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. 1 2 3 4 5 export async function getServerSideProps(context) { return { props: {}, // will be passed to the page component as props } } Colored by Color Scripter cs ๐Ÿ“Œ props ์ด ํ•จ์ˆ˜๋Š” object๋ฅผ ๋ฆฌํ„ดํ•˜๋Š”..

React/NextJS 2022.12.30

[Springboot] ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ• ๋•Œ ์ƒ์„ฑ์ž,์ •์ ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ,Builder๋ฅผ์‚ฌ์šฉํ•œ๋‹ค. ๋ณดํ†ต ๊ฐ์ฒด ์ƒ์„ฑ์ด ๋‹จ์ˆœํ•  ๋•Œ๋Š” ๋‹จ์ˆœํžˆ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ฐ์ฒด ์ƒ์„ฑ์ด ๋ณต์žกํ•˜๋ฉฐ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๋ฉด ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋‚˜ Builder ํŒจํ„ด์„ ์‚ฌ์šฉํ•ด ์ƒ์„ฑ์ž๋ฅผ private์ฒ˜๋ฆฌํ•œ๋‹ค. ๊ทธ๋Ÿผ ์ƒ์„ฑ์ž๋Š” ๋‹ค๋“ค ์ž˜ ์•„๋‹ˆ๊นŒ ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ์™€ Builder์— ์ง‘์ค‘ํ•ด์„œ ์„ค๋ช…ํ•ด๋ณด๋ คํ•œ๋‹ค. ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ์ƒ์„ฑ์ž์™€ ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌ๋ณ„ํ•ด์„œ ์„ค๋ช…ํ•˜์ž๋ฉด public class Product{ private String name; public Product(String name){ this.name=name; } public static Product nameOf(String name){ return new Product(name); } ๐Ÿ˜€ ์žฅ์ ..

Springboot/lecture 2022.10.05

[JAVA] ๋งค๊ฐœ๋ณ€์ˆ˜์— ... / ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค ์ฐจ์ด ์ •๋ฆฌ

๋งค๊ฐœ๋ณ€์ˆ˜์— ... ๋งค๊ฐœ๋ณ€์ˆ˜์— OrderItem... orderItems๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ์ด๊ฒƒ์˜ ์˜๋ฏธ๋Š” ๊ฐ€๋ณ€์ธ์ž๋ผ๊ณ  ํ•œ๋‹ค! OrderItem์ด๋ผ๋Š” ์ธ์ž๊ฐ€ 0๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ๊ฐœ๊นŒ์ง€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.(์—ฌ๋Ÿฌ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป) ์ž๋ฃŒํ˜•์ด ๊ผญ ๋ฐฐ์—ด์ผ ํ•„์š” ์—†๊ณ  ์ธ์ž๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ธ์ž๊ฐ€ 1๊ฐœ๋ผ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธํ•  ๋•Œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์จ์•ผ ํ•˜๋ฉฐ ์ „๋‹ฌ ๋ฐ›์€ ๊ฐ€๋ณ€์ธ์ž๋Š” ๋ฐ˜๋ณต๋ฌธ ์จ์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฐ€๋ณ€์ธ์ž๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜๋ฅผ ๋™์ ์œผ๋กœ ์ง€์ •ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. public static String[] strArr(String ... vargs) { return vargs; } public static void main(String[] args) { String[] sArr = strArr("A", "B", "..

Language/JAVA 2022.10.05

[React] CRA์—์„œ ๊ฒฝ๋กœ ๋‹จ์ถ• ํ•˜๋Š” ๋ฒ•

import App from '@layouts/App' ๊ฐ™์ด ์ ˆ๋Œ€๊ฒฝ๋กœ๋กœ ๋ฐ”๊พธ์–ด์„œ alias ํ•ด์„œ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜๋‹ค. https://simian114.gitbook.io/blog/undefined/react/cra-import-alias CRA๋กœ ๋งŒ๋“  ์•ฑ์—์„œ ์ ˆ๋Œ€๊ฒฝ๋กœ๋กœ import ํ•ด์˜ค๊ธฐ(aliasํ•˜๊ธฐ) - ๊ณต๋ถ€๋ฐฉ '@shared': path.resolve(__dirname, 'src/components/shared'), simian114.gitbook.io craco๋ผ๊ณ  CRA ์„ค์ •์„ ๋ฎ์–ด์จ์ฃผ๋Š” ์• ๊ฐ€ ์žˆ๋Š”๋ฐ ์–˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

React/Project 2022.09.14