2024/07 10

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / ์ž๋ฐ” / Lv.3] 43105 ์ •์ˆ˜ ์‚ผ๊ฐํ˜•

๋ฌธ์ œ ํ’€์ด  DP ๋ฌธ์ œ๋‹ค. ํŠธ๋ฆฌ์—์„œ ์ž์‹๋“ค์˜ ๋ˆ„์ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€๋˜๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.DP ์ ํ™”์‹์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ๊ฐํ–ˆ๋‹ค.{์ž์‹์˜ ํ˜„์žฌ ๊ฐ’ + (์˜ค๋Œ€๊ฐ์„ ์œ„ or ์™ผ๋Œ€๊ฐ์„ ์œ„) ์ค‘ ์ตœ๋Œ“๊ฐ’} ์„ ๊ตฌํ•ด์„œ ๋‹จ๋ง๋…ธ๋“œ์— ๋ˆ„์  ํ•ฉ์„ ๋„ฃ์–ด๋†“๋Š”๋‹ค ์ด ์ ํ™”์‹์œผ๋กœ DP์— ๋ˆ„์ ํ•ฉ์„ ๋„ฃ์–ด๋†“์œผ๋ฉด ๋งˆ์ง€๋ง‰ ๋ฐฐ์—ด์— ์ด ๋ˆ„์ ํ•ฉ์˜ ๊ฒฝ์šฐ๊ฐ€ ์Œ“์ด๋ฏ€๋กœ ๋งˆ์ง€๋ง‰ ๋ฐฐ์—ด ์ค‘ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ฉด ๋‹ต์ด๋‹ค. class Solution { public int solution(int[][] triangle) { int len = triangle.length; int[][] dp = new int[len][len]; dp[0][0] = triangle[0][0]; for (int i=1; i 1. dp ๋ฐฐ์—ด..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / ์ž๋ฐ” / Lv.2] 70129 ์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐ

๋ฌธ์ œ ํ’€์ด ์ž…๋ ฅ๊ฐ’์—์„œ 0์„ ์ œ๊ฑฐํ•˜๊ณ ->  0 ์ œ๊ฑฐ ํ›„ ๊ธธ์ด๋ฅผ ๋‹ค์‹œ ์ด์ง„๋ณ€ํ™˜-> ์ด์ง„๋ณ€ํ™˜ํ•œ ์ˆ˜์—์„œ ๋‹ค์‹œ 0์„ ์ œ๊ฑฐ-> 0 ์ œ๊ฑฐ ํ›„ ๊ธธ์ด๋ฅผ ๋‹ค์‹œ ์ด์ง„๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•ด์„œ ์ด์ง„๋ณ€ํ™˜ ๊ฒฐ๊ณผ๊ฐ€ 1์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์•ผํ•œ๋‹ค.์ถœ๋ ฅ๊ฐ’์œผ๋กœ๋Š” [{์ด ๋ฐ˜๋ณต ํšŸ์ˆ˜}, {์ œ๊ฑฐํ•œ 0์˜ ๊ฐœ์ˆ˜}] ๋ฅผ ์ถœ๋ ฅํ•ด์•ผํ•œ๋‹ค. ๋ณ€์ˆ˜ ์„ค๋ช…- len : 0 ์ œ๊ฑฐํ›„ ๊ธธ์ด- zero : ์ œ๊ฑฐํ•œ 0์˜ ๊ฐœ์ˆ˜ ์นด์šดํ„ฐ- count : ๋ฐ˜๋ณต ํšŸ์ˆ˜ ์นด์šดํ„ฐ ํ’€์ด ์ˆœ์„œclass Solution { static int zero = 0; static int count = 0; public int[] solution(String s) { convert(s); int[] answer = {count, zero}; ret..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / ์ž๋ฐ” / Lv.2] 12924 ์ˆซ์ž์˜ ํ‘œํ˜„

๋ฌธ์ œ ํ’€์ด ์—ฐ์†๋œ ์ˆซ์ž์˜ ํ•ฉ์ด n์ด ๋˜๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋‹ค.์ฒ˜์Œ์— ์—ฐ์†๋œ ์ˆซ์ž์˜ ํ•ฉ์ด๋‹ˆ๊นŒ ๋“ฑ์ฐจ์ˆ˜์—ด๋กœ ํ’€์–ด์•ผ๊ฒ ๋‹ค.. ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ–ˆ๋‹ค.์ฒซ ๋ฒˆ์งธ ํ’€์ด๊ธฐ๋ณธ ๋ฒ ์ด์Šค๋Š” ์œ„์˜ ๋“ฑ์ฐจ์ˆ˜์—ด ๊ณต์‹์„ ์ƒ๊ฐํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.1. n==n์ธ ๊ฒฝ์šฐ๋ฅผ ๋ฏธ๋ฆฌ ์„ธ์–ด์ฃผ๊ธฐ ์œ„ํ•ด count๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”ํ•จ2. ์ด์ค‘ for๋ฌธ์œผ๋กœ ์ € ๊ณต์‹์„ ๋งŒ์กฑํ•˜๋Š” a, b ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด count๋ฅผ ๋Š˜๋ ค์คŒ3. for๋ฌธ ๋‹ค ๋Œ๋ฉด count ๋ฐ˜ํ™˜์ด๋ ‡๊ฒŒํ•ด์„œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ๋‹ค ํ†ต๊ณผ๋๋Š”๋ฐ... ์‹œ๊ฐ„๋ณต์žก๋„ O(n^2)์ด๋ผ ๊ทธ๋Ÿฐ์ง€ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋œธ ใ…œใ…œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€๋ฉด ๋˜๋Š”๋ฐ ์˜ค๊ธฐ๊ฐ€ ์ƒ๊ฒจ์„œ ๋“ฑ์ฐจ์ˆ˜์—ด ๊ณ ์ง‘ํ•˜๋‹ค๊ฐ€ ์‹œ๊ฐ„ ๋งŽ์ด ๋ฒ„๋ฆฐ ๋ฌธ์ œ...ใ…‹ใ…‹ class Solution { public int solution(int n) { ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / ์ž๋ฐ” / Lv.3] 42628 ์ด์ค‘์šฐ์„ ์ˆœ์œ„ํ

๋ฌธ์ œํ’€์ด ์ด์ค‘์šฐ์„ ์ˆœ์œ„ํ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ๋กœ, ์ฃผ์–ด์ง„ ๋ช…๋ น์–ด๋“ค์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ ํ์˜ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.1. ๋‘ ๊ฐœ์˜ ์šฐ์„ ์ˆœ์œ„ ํ ์ƒ์„ฑ (์ตœ์†Œํž™, ์ตœ๋Œ€ํž™)- ์ตœ๋Œ€ํž™ ์ •๋ ฌ์€ `Collections.reverseOrder()`๋กœ ํ ์—ญ์ˆœ ์ •๋ ฌํ•˜์—ฌ ์ตœ๋Œ€ํž™์„ ๋งŒ๋“ ๋‹ค.2. ๋ช…๋ น์–ด ๊ทœ์น™๋Œ€๋กœ ์ฒ˜๋ฆฌ- I : min, max ๋‘ ํ์— ๋ชจ๋‘ add ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰- D 1 : ์ตœ๋Œ“๊ฐ’ ์‚ญ์ œ- D -1 : ์ตœ์†Ÿ๊ฐ’ ์‚ญ์ œ3. ํ๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด [0, 0] ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด max.peek()์œผ๋กœ ์ตœ๋Œ“๊ฐ’, min.peek()๋กœ ์ตœ์†Ÿ๊ฐ’ ๋ฐ˜ํ™˜ํ•จ.class Solution{ public int[] solution(String[] operations) { PriorityQueue min..

[์ „์‚ฐ์ง ํ•„๊ธฐ] 2. ์šด์˜์ฒด์ œ๋ก 

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

ํ•„๊ธฐ 2024.07.14

[์ธํ”„๋ผ] Vue.js, React ๋ฐฐํฌ ์ดํ›„ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด 404 Not Found

๋ฌธ์ œ ์ƒํ™ฉ ํ”„๋ก ํŠธ๋ฅผ Nginx๋ž‘ Docker๋ฅผ ์ด์šฉํ•ด EC2์— ๋ฐฐํฌํ•ด๋†จ๋Š”๋ฐ, ๋ฐฐํฌํ•œ ํ”„๋ก ํŠธ ์„œ๋ฒ„์— ์ ‘์†ํ–ˆ์„ ๋•Œ ์ƒˆ๋กœ๊ณ ์นจํ•˜๊ฑฐ๋‚˜ url์„ ์ž…๋ ฅํ•ด์„œ ์ ‘์†ํ•˜๋ฉด 404 Not Found ํŽ˜์ด์ง€๊ฐ€ ๋œจ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ` GET http://{ํ”„๋ก ํŠธ ์„œ๋ฒ„ ip}/login 404 (Not Found) ` ์ด๋Ÿฐ์‹์œผ๋กœ.. ์ฐพ์•„๋ณด๋‹ˆ Vue.js ํ”„๋กœ์ ํŠธ์—์„œ๋Š” History ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Vue Router๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋‹ˆ, ์‹ค์ œ๋กœ ์„œ๋ฒ„ ์„ค์ •์—์„œ ์ ์ ˆํ•œ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.History ๋ชจ๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ์—์„œ ๋ผ์šฐํŒ…์„ ๋‹ด๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ URL์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ ๊ณ ์นจ์„ ํ•  ๋•Œ ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์–ด์„œ 404 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.ํ˜„์žฌ๋Š” Vue.js๋กœ ๋ฐฐํฌํ•œ ์„œ๋ฒ„์— ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / ์ž๋ฐ” / Lv.2] 12941 ์ตœ์†Ÿ๊ฐ’ ๋งŒ๋“ค๊ธฐ

๋ฌธ์ œํ’€์ด ๋‘ ๋ฐฐ์—ด์˜ ๊ฐ ์›์†Œ์˜ ๊ณฑ์˜ ๋ˆ„์ ํ•ฉ์ด ์ตœ์†Œ๊ฐ€ ๋˜๋„๋ก ํ•˜๋Š” ๋ฌธ์ œ๋‹ค.๊ฐ ์›์†Œ์˜ ๊ณฑ์˜ ๋ˆ„์ ํ•ฉ์ด ์ตœ์†Œ๊ฐ€ ๋˜๋ ค๋ฉด, ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด๊ณผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด์˜ ๊ฐ ์›์†Œ๋ฅผ ๊ณฑํ•ด์ค€ ํ›„์— ๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•ด์ฃผ๋ฉด ์ตœ์†Ÿ๊ฐ’์ด ๋œ๋‹ค. 1. ์ž๋ฐ”์—์„œ๋Š” int[] ๋ฐฐ์—ด์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ, ์ผ๋‹จ ๊ฐ๊ฐ A, B ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•ด์ค€๋‹ค.2. A๋ฐฐ์—ด์€ ์›์†Œ์˜ ์‹œ์ž‘์ธ i ๋ถ€ํ„ฐ, B ๋ฐฐ์—ด์€ ์›์†Œ์˜ ๋์ธ (len-1)-i ๋ถ€ํ„ฐ ์—ญ์ˆœ์œผ๋กœ ์›์†Œ๋ฅผ ๊ณฑํ•ด์ฃผ๊ณ , answer์— ํ•ฉ์„ ๋ˆ„์ ํ•œ๋‹ค.  class Solution{ public int solution(int []A, int []B){ int len = A.length; int answer = 0; ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / ์ž๋ฐ” / Lv.2] 12909 ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

๋ฌธ์ œ ์ž๋ฐ” ๊ฐœ๋… ์ •๋ฆฌString ๋ฌธ์ž์—ด์—์„œ ์ธ๋ฑ์Šค i๊ฐ’ ๋ฝ‘์•„์˜ค๊ธฐ : `charAt(i)`์Šคํƒ ์ƒ์„ฑStack stack = new Stack(); // push, pop, peek, empty, search ์ง€์› ํ’€์ด () ์Œ์ด ์˜ฌ๋ฐ”๋ฅด๊ธฐ ์œ„ํ•ด์„œ๋Š” ( ์ดํ›„์— )๊ฐ€ ๋ฌด์กฐ๊ฑด ์™€์•ผํ•œ๋‹ค.๋”ฐ๋ผ์„œ ์Šคํƒ์„ ์ƒ์„ฑํ•˜์—ฌ ( ์ธ ๊ฒฝ์šฐ์— push๋ฅผ ํ•˜๊ณ  )์ธ ๊ฒฝ์šฐ์— pop์„ ํ–ˆ์„ ๋•Œ ์ตœ์ข…์ ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๋ผ๋ฉด ์Šคํƒ์ด ๋น„์–ด์žˆ์–ด์•ผํ•œ๋‹ค. 1. Character ํƒ€์ž…์œผ๋กœ ์Šคํƒ์„ ์ƒ์„ฑํ•œ๋‹ค. (charAt()์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด)2. ์ž…๋ ฅ๊ฐ’์„ charAt์œผ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์ˆœํšŒํ•˜๊ณ , ( ์ธ ๊ฒฝ์šฐ ์Šคํƒ์— push๋ฅผ ํ•ด์ค€๋‹ค.3. ๋งŒ์•ฝ ) ์ธ ๊ฒฝ์šฐ์—๋Š” ์Šคํƒ์„ pop ํ•ด์ฃผ๋Š”๋ฐ, ์ด ๋•Œ ์Šคํƒ์ด ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ์— pop์„ ํ•ด์ค„ ์ˆ˜ ์—†์œผ๋ฉฐ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ๊ธฐ๋•Œ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / ์ž๋ฐ” / Lv.2] 12939 ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’

๋ฌธ์ œ  ์ž๋ฐ” ๊ฐœ๋…Stream API๋ž€?๋žŒ๋‹ค์‹์„ ์ด์šฉํ•œ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๋กœ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์กฐ์ž‘ ๋ฐ ๊ฐ€๊ณต, ๋ณ€ํ™˜ํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์ŠคString[] ๋ฐฐ์—ด to Integer[] ๋ฐฐ์—ด : `Arrays.stream(list).mapToInt(Integer::parseInt)`์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’ : `Arrays.stream(list).max().getAsInt()`, `Arrays.stream(list).min().getAsInt()`ํ’€์ด String ๋ฐฐ์—ด์„ Integer ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ• ๋•Œ Stream API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์ดํ•˜์˜€๋‹ค.1. String ์ž…๋ ฅ๊ฐ’์„ split์„ ์ด์šฉํ•ด ๊ณต๋ฐฑ ๊ธฐ์ค€์œผ๋กœ String ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ2. `Arrays.strea(list).mapToInt(Integer::parseIn..

[AWS] ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ, ๋„๋ฉ”์ธ ์—†์ด EC2 ์„œ๋ฒ„ HTTPS ์—ฐ๊ฒฐ

๊ฐœ์š” ํ˜„์žฌ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋Š” EC2๋กœ ๋ฐฐํฌํ•ด๋†“์€ ์ƒํƒœ์ด๊ณ , SSL ์ธ์ฆ์„œ๋กœ Https ๋ถ™์—ฌ์•ผ Https ์ ์šฉ๋œ ํ”„๋ก ํŠธ๋ž‘ ํ†ต์‹ ํ•  ๋•Œ Mixed Content ์—๋Ÿฌ๊ฐ€ ์•ˆ๋‚œ๋‹ค.ํ”„๋ก ํŠธ๋Š” S3๋กœ ๋ฐฐํฌํ•ด์„œ ACM์œผ๋กœ SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰๋ฐ›์•„์„œ ๋ฐ”๋กœ Route53์ด๋ž‘ Cloud Front๋กœ ์—ฐ๊ฒฐํ•ด์„œ ์ ์šฉํ•˜๊ธฐ ์‰ฌ์› ๋Š”๋ฐ, ๋ฐฑ์—”๋“œ๋Š” EC2๋กœ ๋ฐฐํฌํ•ด์„œ ๋„๋ฉ”์ธ ๊ตฌ๋งคํ›„ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ Route53 AEM์œผ๋กœ ๋ถ™์—ฌ์•ผ ํ•˜๋Š”๊ฒŒ ์ •์„์ด๋ผ๋Š”๋ฐ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ๋‹ฌ๊ธฐ ์‹ซ์–ด์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ดค๋‹ค.. Caddy๋ž€?Caddy๋Š” ์˜คํ”ˆ์†Œ์Šค๋กœ Https๋ฅผ ๋ถ™์—ฌ์ฃผ๋Š” DNS๋‹ค. systemd๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Linux ๋ฐฐํฌํŒ์—์„œ Caddy๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋„๋ฉ”์ธ ๊ตฌ๋งค ์—†์ด Https๋ฅผ ๋‹ฌ ์ˆ˜ ์žˆ๋‹ค! ๊ณผ์ • 1. EC2์— Caddy ์„ค์น˜ํ•˜๊ธฐcurl -1sLf 'h..