Leisure - Last Dance
https://www.youtube.com/watch?v=B6buDEnrxBs

โ๏ธ PROTECT ์ผ์ง
[Day 14] Log ์๊น ์
ํ๊ธฐ
0. ๋ก๊ทธ๊ฐ ํฐ์์ด๋ฉด...๋ณด๊ธฐ๊ฐ ํ๋ค๋ค.์ด๊ฒ ์ธํ
๋ฆฌ์ ์ด์์ ๋ณด๋ฉด ๊ทธ๋๋ง ๋์๋ฐ, ๋ฐฐํฌ๋ ์๋ฒ๋ก ๋ค์ด๊ฐ ๋ก๊ทธ๋ฅผ ๋ณผ๋ ค๊ณ ์น๋ฉด ์ ๋ง ๊ตฌ๋ถํ ํ๋ค์ด์ง๋ค. ์ด๋ฅผ ์ํด๋ก๊ทธ ๋ ๋ฒจ ๋ณ๋ก ์๊น์ ์ ์ฉํ์ฌ ๊ฐ๋
์ฑ์ ๋์ด๋ ค ํ๋ค.1. ์ ์ฉ ๋ฐฉ๋ฒ(1) ํ์ผ ๊ตฌ์กฐ ๋ฐ ์์กด์ฑ ์ฝ์
resources ๋ถ๋ถ์ logBack์ ๋๋ค. ์ดํ ๋ก๊น
๊ณผ ์ค์ ๊ตฌํ ์ฝ๋ ๊ฐ์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ฅผ ์ํด @SLF4J ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฝ์
ํ๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ์ง ์์ผ๋ฉด ๋ก๊ทธ๋ฅผ ์ฐ๊ณ ์ถ์ ๋ชจ๋ ํด๋์ค๋ง๋ค Logger ๊ฐ์ฒด๋ฅผ ์ฃผ์
๋ฐ์์ผ ํ๋ค. ์ด๋ ๊ฐ์ฒด๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋์ด๊ณ , Logger ๊ธฐ๋ฅ ์์ฒด์ ์ ์ฐ์ฑ๋ ์ค์ธ๋ค. (์ฒ์์ Log-Back ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๋ค๊ฐ Log4j๋ก ๋ฐ๊พธ๊ณ ์ถ์ ๋ @SL4FJ๋ฅผ ์ ์ด๋ค๋ฉด ๋ชจ๋ Logger ๋ฉค๋ฒ๋ฅผ ๋ฐ๊ฟ์ค์ผ ํ๋ค;;)..

โ๏ธ PROTECT ์ผ์ง
[DAY 13] Jasypt๋ฅผ ํ์ฉํด Secret-key ์ํธํ ๋ฐ ์๋ฒ ๋ฐฐํฌ ์ ์๋ ๋ณตํธํ
0. ์ ํ์ํ๊ฐ์ธ๋ถ API๋ DB, ๋ฏธ๋ค์จ์ด ์ฐ๋์ ์ํด์๋ ํ์ฉ์ ์ํด ์ฝ์ํ secret-key๋ฅผ ๋ค๊ณ ์์ด์ผ ํ๋ค. ๋ณดํต ๊ฐ๋ฐ์๋ค์ ์ค์ ํ์ผ์ ๊ทธ๊ฒ์ ๋ชฐ์๋ฃ๊ณ , @Value()๋ฅผ ํ์ฉํ์ฌ ๊ทธ๊ฒ๋ค์ ๋ถ๋ฌ์จ๋ค. ๋ค์ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ง์ด๋ค.์ด๋ฐ secret-key๋ค์ ์ ์ถ๋๋ฉด ํดํน ๋ฑ ํ๋ก์ ํธ์ ์น๋ช
์ ์ธ ์ํ์ ์ค๋ค. ๊ทธ๋์ ๊ฐ๋ฐ์๋ค์ ํญ์ ์ด๊ฒ๋ค์ ๋ํด ์ ๊ฒฝ ์ฐ๊ณ , ์ธํ๋ผ ํ ๋ํ Jenkins๋ DockerHub์ ํค ๋ฆฌ์คํธ๋ค์ ๋ฐ๋ก ๊ด๋ฆฌํด์ผ ํด์ ๊ณจ์น ์ํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Java์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Jasypt๋ฅผ ํ์ฉํ๋ค.1. Jasypt๋?(0) ์ ์๋จ๋ฐฉํฅ ์ํธํ ํน์ ๋จ์ผ ํค ์๋ฐฉํฅ ์ํธํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ ์ด๋ผ ํ๋ค๋ฉด Jasypt๋ก ์ํธํํ ๋์์ ํน์ ํ..

โ๏ธ PROTECT ์ผ์ง
[DAY 12] ๊ณตํต ์๋ต ์๋ํ ์ค๊ณ ๋ฐ ๊ตฌํ (๋ดํฌ ํจํด ๋์
- @ResponseBody Advice)
0. ํ์์ฑ์ ๋ฒ์ ํ๋ 6์ธ ํ๋ก์ ํธ์ ๋ฐํ ํ๊ฒฝ ๋ชจ์ต์ด๋ค. ๋น์ ResultResponse๋ผ๋ ํ ๋ด์ ๊ณตํต ์๋ต ๊ท์น์ ์ ํ๊ณ , ResponseEntity๋ก ๋ฐํํ๊ธฐ ์ ์ DTO๋ฅผ ResultResponse๋ก ํ ๋ฒ ๋ ๊ฐ์ธ์ ๋ฐํํ๋ค.๊ทธ ๋น์์๋ ํฐ ๋ถํธํจ ์์ด ํ๋ ๊ฒ ๊ฐ์ง๋ง, ๋ค์ ๋ณด๋ 2๊ฐ์ง ๋ถํธ ์ฌํญ์ด ์์๋ค.1๏ธโฃ ๋งค์๋์ ๋ฐํ ํ์
์ ํญ์ ResponseEntity์ ResultResponse๋ก ๊ฐ์ธ์ค์ผ ํ๋ค. ์ค์ ํ์๊ฐ ํ๋ก ํธ ๊ฐ๋ฐ์์๊ฒ ์ค์ผํ JSON ๋ฐํ ๊ฐ์ฒด๋ TokenDTO์ธ๋ฐ, ๊ทธ์ ๋ฐํ ๊ท์น์ ์ํด์ ํ๋ก์ธ์ค์์๋ ๋ถํ์ํ ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํด์ผ๋ง ํ๋ค.2๏ธโฃ ๊ฐ์ ์ด์ ๋ก ๋ฐํ๊ฐ ๋ํ ๋ ๊ฐ์ฒด๋ฅผ ํ์ฉํด ๊ฐ์ธ์ค์ผ ํ๋ค.์ด๋ 3์ธ์ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ค ํ ๋ช
์ด๋ผ๋ ์ค์๋ก ResultRe..

OS
[OS] ์ ์ ํ๊ณผ ๋น์ ์ ํ ์ค์ผ์ค๋ง์ ์ ์์ ์ข
๋ฅ
1. CPU ์ค์ผ์ค๋ง์ด๋?๋ณต์์ ํ๋ก์ธ์ค ์ค ์ด๋ค ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ฌ์ฉํ๊ณ ์ผ๋ง๋ ์ค๋ ์ฌ์ฉํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ์์ ์๋ฏธํ๋ค.์ด๋ฅผ ์ํด์ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ๋ง๋ค ๋ค๋ฅด๊ฒ ํ๋ก์ธ์ค๋ค์ ์ฐ์ ์์๋ฅผ ์ธก์ ํ๊ณ , CPU ์ฌ์ฉ์๊ฐ์ ์ฐ์ ํ๋ค.(1) ์ข์ CPU ์ค์ผ์ค๋ง์ด๋?CPU๋ ๋จ์ผ ์์์ ํ๋ก์ธ์ค๋ค์๊ฒ ์ต๋ํ ๊ณตํํ๊ฒ ๋ฐฐ๋ถํ์ฌ ํ๋ก์ธ์ค ์ฒ๋ฆฌ์จ๊ณผ CPU ์ด์ฉ๋ฅ ์ ๋์ด๊ณ , ์๋ต์๊ฐ, CPU ๊ณผ๋ถํ(์ค๋ฒ ํค๋), ํ๋ก์ธ์ค๋ค์ ์ฒ๋ฆฌ ๋๊ธฐ์๊ฐ์ ์ค์ด๋ ๊ฒ์ด ์ข์ ์ค์ผ์ค๋ง์ด๋ค.๊ณตํ์ฑ๐ โ ( ํ๋ก์ธ์ค ์ฒ๋ฆฌ์จโฌ๏ธ, CPU ์ด์ฉ๋ฅ โฌ๏ธ ) | (์๋ต ์๊ฐ โฌ๏ธ, CPU ๊ณผ๋ถํ โฌ๏ธ, ํ๋ก์ธ์ค ์ฒ๋ฆฌ ๋๋ฆฌ์๊ฐ โฌ๏ธ)2. ์ ์ ํ ์ค์ผ์ค๋ง์ ๋ํ์ฌํ์ฌ CPU๋ฅผ ํ์ฉํ๊ณ ์๋ ํ๋ก์ธ์ค๋ฅผ A๋ผ๊ณ ํ์. ์ด๋ ์ค๋นํ์์ A๋ณด๋ค ์ฒ..

๋ฌธ์ ํ์ด
ํญํด99 ์ฝํ
์คํฐ๋ 14์ผ์ฐจ + [๋ฐฑ์ค] 1738 ๊ณจ๋ชฉ๊ธธ java ํ์ด
1. ๋ฌธ์ ์ค๋ช
๐(1) ๋งํฌ๐https://www.acmicpc.net/problem/1738(2) ํด์ค๐ต๊ฒฝ๋ก์ ๊นกํจ๊ฐ ์์ด์ ๊ฐ์ค์น๊ฐ ๋ง์ด๋์ค์ธ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๋ฐ๋ผ์ ์ต์ ๊ฒฝ๋ก๋ ๋ฒจ๋ง ํฌ๋๋ก ๊ตฌํด์ผ ํ๋๋ฐ, ์ฌ๊ธฐ์ ์ ์ฝ ์กฐ๊ฑด์ด ์๋ค.1๏ธโฃ ์ด๋ฒ ๋ฌธ์ ๋ ์ต์ ๊ฐ์ค์น ํฉ์ด ์ต์ ๊ฒฝ๋ก์ธ ์ผ๋ฐ์ ์ธ ๋ฒจ๋ง ํฌ๋ ๋ฌธ์ ์๋ ๋ฌ๋ฆฌ ์ต๋ ๊ฐ์ค์น ํฉ์ด ์ต์ ๊ฒฝ๋ก ์ด๋ค.2๏ธโฃ ๋ฐ๋ผ์ ์ต์ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ ์ ์๋ ๊ฒฝ์ฐ๋ N ๋ฒ์งธ ์ํ๊ณผ์ ์ ๊ฑฐ์ณ๋ ๊ฐ์ค์น์ ํฉ์ด ์ปค์ง๋ ๊ฒฝ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ์ด๋ค.3๏ธโฃํ์ง๋ง ์์ ์ฌ์ดํด์ด 1์์ N๊น์ง์ ๊ฒฝ๋ก์ ์ํฅ์ ์ฃผ์ง ์๋๋ค๋ฉด, ์ต์ ๊ฒฝ๋ก๋ ๊ทธ๋๋ก ์กด์ฌํ๋ ๊ฒ์์ผ๋ก ์๊ด ์๋ค.2. ์๊ฐ์ ํ๋ฆ: ์ฝ๋๊ฐ ๋์ค๊ธฐ๊น์ง ๐๏ธ(1) IDEA ๋์ถ๐กKEY WORD: Bellman-ford, BF..

0. ๋ก๊ทธ๊ฐ ํฐ์์ด๋ฉด...๋ณด๊ธฐ๊ฐ ํ๋ค๋ค.์ด๊ฒ ์ธํ
๋ฆฌ์ ์ด์์ ๋ณด๋ฉด ๊ทธ๋๋ง ๋์๋ฐ, ๋ฐฐํฌ๋ ์๋ฒ๋ก ๋ค์ด๊ฐ ๋ก๊ทธ๋ฅผ ๋ณผ๋ ค๊ณ ์น๋ฉด ์ ๋ง ๊ตฌ๋ถํ ํ๋ค์ด์ง๋ค. ์ด๋ฅผ ์ํด๋ก๊ทธ ๋ ๋ฒจ ๋ณ๋ก ์๊น์ ์ ์ฉํ์ฌ ๊ฐ๋
์ฑ์ ๋์ด๋ ค ํ๋ค.1. ์ ์ฉ ๋ฐฉ๋ฒ(1) ํ์ผ ๊ตฌ์กฐ ๋ฐ ์์กด์ฑ ์ฝ์
resources ๋ถ๋ถ์ logBack์ ๋๋ค. ์ดํ ๋ก๊น
๊ณผ ์ค์ ๊ตฌํ ์ฝ๋ ๊ฐ์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ฅผ ์ํด @SLF4J ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฝ์
ํ๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ์ง ์์ผ๋ฉด ๋ก๊ทธ๋ฅผ ์ฐ๊ณ ์ถ์ ๋ชจ๋ ํด๋์ค๋ง๋ค Logger ๊ฐ์ฒด๋ฅผ ์ฃผ์
๋ฐ์์ผ ํ๋ค. ์ด๋ ๊ฐ์ฒด๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋์ด๊ณ , Logger ๊ธฐ๋ฅ ์์ฒด์ ์ ์ฐ์ฑ๋ ์ค์ธ๋ค. (์ฒ์์ Log-Back ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๋ค๊ฐ Log4j๋ก ๋ฐ๊พธ๊ณ ์ถ์ ๋ @SL4FJ๋ฅผ ์ ์ด๋ค๋ฉด ๋ชจ๋ Logger ๋ฉค๋ฒ๋ฅผ ๋ฐ๊ฟ์ค์ผ ํ๋ค;;)..
โ๏ธ PROTECT ์ผ์ง

0. ์ ํ์ํ๊ฐ์ธ๋ถ API๋ DB, ๋ฏธ๋ค์จ์ด ์ฐ๋์ ์ํด์๋ ํ์ฉ์ ์ํด ์ฝ์ํ secret-key๋ฅผ ๋ค๊ณ ์์ด์ผ ํ๋ค. ๋ณดํต ๊ฐ๋ฐ์๋ค์ ์ค์ ํ์ผ์ ๊ทธ๊ฒ์ ๋ชฐ์๋ฃ๊ณ , @Value()๋ฅผ ํ์ฉํ์ฌ ๊ทธ๊ฒ๋ค์ ๋ถ๋ฌ์จ๋ค. ๋ค์ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ง์ด๋ค.์ด๋ฐ secret-key๋ค์ ์ ์ถ๋๋ฉด ํดํน ๋ฑ ํ๋ก์ ํธ์ ์น๋ช
์ ์ธ ์ํ์ ์ค๋ค. ๊ทธ๋์ ๊ฐ๋ฐ์๋ค์ ํญ์ ์ด๊ฒ๋ค์ ๋ํด ์ ๊ฒฝ ์ฐ๊ณ , ์ธํ๋ผ ํ ๋ํ Jenkins๋ DockerHub์ ํค ๋ฆฌ์คํธ๋ค์ ๋ฐ๋ก ๊ด๋ฆฌํด์ผ ํด์ ๊ณจ์น ์ํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Java์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Jasypt๋ฅผ ํ์ฉํ๋ค.1. Jasypt๋?(0) ์ ์๋จ๋ฐฉํฅ ์ํธํ ํน์ ๋จ์ผ ํค ์๋ฐฉํฅ ์ํธํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ ์ด๋ผ ํ๋ค๋ฉด Jasypt๋ก ์ํธํํ ๋์์ ํน์ ํ..
โ๏ธ PROTECT ์ผ์ง

0. ํ์์ฑ์ ๋ฒ์ ํ๋ 6์ธ ํ๋ก์ ํธ์ ๋ฐํ ํ๊ฒฝ ๋ชจ์ต์ด๋ค. ๋น์ ResultResponse๋ผ๋ ํ ๋ด์ ๊ณตํต ์๋ต ๊ท์น์ ์ ํ๊ณ , ResponseEntity๋ก ๋ฐํํ๊ธฐ ์ ์ DTO๋ฅผ ResultResponse๋ก ํ ๋ฒ ๋ ๊ฐ์ธ์ ๋ฐํํ๋ค.๊ทธ ๋น์์๋ ํฐ ๋ถํธํจ ์์ด ํ๋ ๊ฒ ๊ฐ์ง๋ง, ๋ค์ ๋ณด๋ 2๊ฐ์ง ๋ถํธ ์ฌํญ์ด ์์๋ค.1๏ธโฃ ๋งค์๋์ ๋ฐํ ํ์
์ ํญ์ ResponseEntity์ ResultResponse๋ก ๊ฐ์ธ์ค์ผ ํ๋ค. ์ค์ ํ์๊ฐ ํ๋ก ํธ ๊ฐ๋ฐ์์๊ฒ ์ค์ผํ JSON ๋ฐํ ๊ฐ์ฒด๋ TokenDTO์ธ๋ฐ, ๊ทธ์ ๋ฐํ ๊ท์น์ ์ํด์ ํ๋ก์ธ์ค์์๋ ๋ถํ์ํ ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํด์ผ๋ง ํ๋ค.2๏ธโฃ ๊ฐ์ ์ด์ ๋ก ๋ฐํ๊ฐ ๋ํ ๋ ๊ฐ์ฒด๋ฅผ ํ์ฉํด ๊ฐ์ธ์ค์ผ ํ๋ค.์ด๋ 3์ธ์ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ค ํ ๋ช
์ด๋ผ๋ ์ค์๋ก ResultRe..
โ๏ธ PROTECT ์ผ์ง

1. CPU ์ค์ผ์ค๋ง์ด๋?๋ณต์์ ํ๋ก์ธ์ค ์ค ์ด๋ค ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ฌ์ฉํ๊ณ ์ผ๋ง๋ ์ค๋ ์ฌ์ฉํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ์์ ์๋ฏธํ๋ค.์ด๋ฅผ ์ํด์ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ๋ง๋ค ๋ค๋ฅด๊ฒ ํ๋ก์ธ์ค๋ค์ ์ฐ์ ์์๋ฅผ ์ธก์ ํ๊ณ , CPU ์ฌ์ฉ์๊ฐ์ ์ฐ์ ํ๋ค.(1) ์ข์ CPU ์ค์ผ์ค๋ง์ด๋?CPU๋ ๋จ์ผ ์์์ ํ๋ก์ธ์ค๋ค์๊ฒ ์ต๋ํ ๊ณตํํ๊ฒ ๋ฐฐ๋ถํ์ฌ ํ๋ก์ธ์ค ์ฒ๋ฆฌ์จ๊ณผ CPU ์ด์ฉ๋ฅ ์ ๋์ด๊ณ , ์๋ต์๊ฐ, CPU ๊ณผ๋ถํ(์ค๋ฒ ํค๋), ํ๋ก์ธ์ค๋ค์ ์ฒ๋ฆฌ ๋๊ธฐ์๊ฐ์ ์ค์ด๋ ๊ฒ์ด ์ข์ ์ค์ผ์ค๋ง์ด๋ค.๊ณตํ์ฑ๐ โ ( ํ๋ก์ธ์ค ์ฒ๋ฆฌ์จโฌ๏ธ, CPU ์ด์ฉ๋ฅ โฌ๏ธ ) | (์๋ต ์๊ฐ โฌ๏ธ, CPU ๊ณผ๋ถํ โฌ๏ธ, ํ๋ก์ธ์ค ์ฒ๋ฆฌ ๋๋ฆฌ์๊ฐ โฌ๏ธ)2. ์ ์ ํ ์ค์ผ์ค๋ง์ ๋ํ์ฌํ์ฌ CPU๋ฅผ ํ์ฉํ๊ณ ์๋ ํ๋ก์ธ์ค๋ฅผ A๋ผ๊ณ ํ์. ์ด๋ ์ค๋นํ์์ A๋ณด๋ค ์ฒ..
OS

1. ๋ฌธ์ ์ค๋ช
๐(1) ๋งํฌ๐https://www.acmicpc.net/problem/1738(2) ํด์ค๐ต๊ฒฝ๋ก์ ๊นกํจ๊ฐ ์์ด์ ๊ฐ์ค์น๊ฐ ๋ง์ด๋์ค์ธ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๋ฐ๋ผ์ ์ต์ ๊ฒฝ๋ก๋ ๋ฒจ๋ง ํฌ๋๋ก ๊ตฌํด์ผ ํ๋๋ฐ, ์ฌ๊ธฐ์ ์ ์ฝ ์กฐ๊ฑด์ด ์๋ค.1๏ธโฃ ์ด๋ฒ ๋ฌธ์ ๋ ์ต์ ๊ฐ์ค์น ํฉ์ด ์ต์ ๊ฒฝ๋ก์ธ ์ผ๋ฐ์ ์ธ ๋ฒจ๋ง ํฌ๋ ๋ฌธ์ ์๋ ๋ฌ๋ฆฌ ์ต๋ ๊ฐ์ค์น ํฉ์ด ์ต์ ๊ฒฝ๋ก ์ด๋ค.2๏ธโฃ ๋ฐ๋ผ์ ์ต์ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ ์ ์๋ ๊ฒฝ์ฐ๋ N ๋ฒ์งธ ์ํ๊ณผ์ ์ ๊ฑฐ์ณ๋ ๊ฐ์ค์น์ ํฉ์ด ์ปค์ง๋ ๊ฒฝ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ์ด๋ค.3๏ธโฃํ์ง๋ง ์์ ์ฌ์ดํด์ด 1์์ N๊น์ง์ ๊ฒฝ๋ก์ ์ํฅ์ ์ฃผ์ง ์๋๋ค๋ฉด, ์ต์ ๊ฒฝ๋ก๋ ๊ทธ๋๋ก ์กด์ฌํ๋ ๊ฒ์์ผ๋ก ์๊ด ์๋ค.2. ์๊ฐ์ ํ๋ฆ: ์ฝ๋๊ฐ ๋์ค๊ธฐ๊น์ง ๐๏ธ(1) IDEA ๋์ถ๐กKEY WORD: Bellman-ford, BF..
๋ฌธ์ ํ์ด
#Popular Posts
๋ฌธ์ ํ์ด
[๋ฐฑ์ค] 11003 ์ต์๊ฐ ์ฐพ๊ธฐ java ํ์ด (๊ทธ๋ฆผ์ผ๋ก ์ฌ์ด ์ค๋ช
^^)

1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์์ ๋ ๋์๊ฐ์, ์๋์ฐ ๊ตฌ๊ฐ์์ ์ต์๊ฐ์ ๋งค๋ฒ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: Sliding Window, Data Structure (Deque)ํ์ด์ฌ์์๋ ์ถ๊ฐ์๊ฐ์ด ์ฃผ์ด์ค์ ์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํด๋ ํ๋ฆฌ์ง๋ง, Java์์๋ ํ๋ฆฌ์ง ์๋๋ค. ์ ์ฐ์ ์์ ํ๋ก๋ ์๋๋์ง์ ๋ํด 4๋ฒ ํญ๋ชฉ์์ ์ค๋ช
ํ๊ฒ ๋ค.(1) ์ ์ฒด ์ ๊ทผ ๋ฐฉ์ArrayDeque๋ก ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ฅผ ๊ตฌํํ๋ค.(ํด๋น deque๋ ํ์ฌ ๊ตฌ๊ฐ์ธ ๊ฐ๋ค๋ง ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ค๋ฆ์ฐจ์์ผ๋ก ๊ฐ์ ์์๋ฅผ ์ ์งํ๋ค. (front = ์ต์๊ฐ))์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ์ฉ ์์ง์ธ๋ค.๊ตฌ๊ฐ์ ์ ๊ท๋ก ์ถ๊ฐ๋ ๊ฐ์ A๋ผ๊ณ ์ณค์ ๋, A์ deque์ rear(๊ผฌ๋ฆฌ)๋ฅผ ๋น๊ตํ๋คrear > A:..
2024.12.21
๋ฌธ์ ํ์ด
[ํ๋ก๊ทธ๋๋จธ์ค] Lv2 ํผ์ฆ๊ฒ์์ฑ๋ฆฐ์ง java ์ดํดํ๊ธฐ ์ฌ์ด ํ์ด!

1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ1๋ฒ ํผ์ฆ์ฌ์ฉ์์ ๋ ๋ฒจ์ด 1์ด๋ผ ํ์ ๋, ์ฒซ ๋ฒ์งธ ํผ์ฆ์ ์ฌ์ฉ์์ ๋ ๋ฒจ >= ํผ์ฆ์ ๋์ด๋ ์กฐ๊ฑด์ ๋ถํฉํจ์ผ๋ก ์๊ฐ์ 3๋ถ ๋๋ ค์ ํผ์ฆ์ ์๋ฃํ๋ค.2๋ฒ ํผ์ฆ์ฌ์ฉ์์ ๋ ๋ฒจ ํผ์ฆ์ ๋์ด๋ ์ด๋ค.์ด ๊ฒฝ์ฐ ๋ฌธ์ ์ ์๊ตฌ์กฐ๊ฑด์ฒ๋ผ ์ง์ ํผ์ฆ์ (ํผ์ฆ์ ๋์ด๋ - ์ฌ์ฉ์์ ๋ ๋ฒจ) ๋งํผ ๋ค์ ํ์ด์ผ ํ๋ค. ๊ทธ๋์ 2๋ฒ ํผ์ฆ์ ํธ๋๋ฐ๋ 1*3+4 = 7๋ถ์ ์๊ฐ์ด ๋ ๋ค.3๋ฒ ํผ์ฆ์ด๊ฒ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ์์ ๋ ๋ฒจ ํผ์ฆ์ ๋์ด๋ ์์ผ๋ก (ํผ์ฆ์ ๋์ด๋ - ์ฌ์ฉ์์ ๋ ๋ฒจ)*4 + 2 = 10๋ถ ์ด ๋ ๋ค.๋ฐ๋ผ์, ์ฌ์ฉ์์ ๋ ๋ฒจ์ด 1์ด๋ฉด ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํธ๋๋ฐ ์ด 20๋ถ์ด ์์๋๋ค.๋ฌธ์ ์์๋ limit ์ด๋ผ๋ ์ ํ์๊ฐ์ด ์ฃผ์ด์ง๋ค.์ ํ ์๊ฐ ์์ ํผ์ฆ์ ๋ค ํ ์ ์๋ ์ต์ ๋ ๋ฒจ์ด ๋ช์ธ์ง ๊ตฌํ์ฌ๋ผ2. ์ ๊ทผ ๋ฐฉ..
2024.10.14
๋ฌธ์ ํ์ด
[ํ๋ก๊ทธ๋๋จธ์ค]Lv3 ํฉ์น ํ์ ์๊ธ java ์ ๊ทผ ๋ฐฉ์๋ถํฐ ์ฝ๋ ๋ถ์๊น์ง

1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ๋ฌด์ง๋ ์ดํผ์น๋ ์ผ๊ทผ์ ๋๋ด๊ณ , ์ง์ ๊ฐ๋ ค๊ณ ํจ.๋ฒ์ค๊ฐ ๋๊ฒจ์ ํ์๋ฅผ ํ์ผ ํ๋๋ฐ, ํ์ ์๊ธ์ด ๊ฑฑ์ ๋จ.๋ง์นจ ๋ฌด์ง๋ ์ดํผ์น๊ฐ ์ง ๊ฐ๋ ๋ฐฉํฅ์ด ๊ฐ์ ์ชฝ์ด๋ผ, ์ต๋ํ ํฉ์นํด์ ์ ์ฒด ํ์ ๋น์ฉ์ ์ค์ด๋ ค๊ณ ํจ. ๋ค๋ง ํฉ์นํ์ง ์๊ณ ๊ฐ๋๊ฒ ์ ์ฒด ํ์ ๋น์ฉ์ด ๋ ์์ ๊ฒฝ์ฐ, ๊ทธ ๊ฒฝ์ฐ์ ์๋ฅผ ์ ํํจ.ํ์ฌ ์์น : s, ๋ฌด์ง ์ง: a, ์ดํผ์น ์ง: b ์ ์์น๊ฐ ์ฃผ์ด์ง๋ค๊ณ ์น์.์ดํผ์น์ ๋ฌด์ง์ ํ์ ์๊ธ์ ์ ๋ถ ํฉ์ณค์ ๋, ์ต์ ํ์ ์๊ธ์ ๋ฐํํ๋ผ.ํํธ๋ง ์ป๊ณ ๊ฐ์ค ๋ถ๋ค์ ์ ๊ทผ ๋ฐฉ์๊น์ง๋ง ๋ณด๊ณ ๊ฐ์๊ธธ ๋ฐ๋ผ๊ณ , ํ์ด๋ฒ์ ๋ณด์ค ๋ถ๋ค์ ๋๊น์ง ์ฝ์ด์ฃผ์๋ผ2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: ๋ค์ต์คํธ๋ผํด๋น ๋ฌธ์ ๊ฐ ๋ค์ต์คํธ๋ผ์ธ ๊ฒ์ ์์์ฑ๊ธฐ๋ ์ฝ์ง๋ง ๊ฑฐ๊ธฐ์ ๋ํด ์์ด๋์ด๊ฐ ํ์ํ๋ค. ์๋ํ๋ฉด ๊ทธ์ ..
2024.10.23
SpringMVC
HTTP์์ Binary File์ ์ ์กํ๊ธฐ ์ํ ๋ฐฉ๋ฒ (MIME, Base64)

1. HTTP์์ ์ ์ผ๋ฐ์ ์ผ๋ก Binary File์ ์ ์กํ ์ ์๋๊ฐ? (1) ํ์ผ ์ข
๋ฅ ๊ตฌ๋ถ Binary ํ์ผ ํ
์คํธ ํ์ผ ์ ์ฅํ๋ ๋ด์ฉ ๋ฌธ์์ ์ซ์ ๋ชจ๋ ์ ์ฅ ๋ฌธ์๋ง ์ ์ฅ ๊ฐ๋ฅ ๋ฐ์ดํฐ ์ฝ์ ๋ ์ ํ ๊ทธ๋๋ก ์ฝ๋๋ค . ๋ฌธ์ -> ๋ฌธ์๋ก ์ฝ์, ์ซ์ -> ์ซ์๋ก ์ฝ์ ์ซ์๋ ๋ฌธ์๋ก ๋ณํ ํด์ ์ฝ๋๋ค. ๋ฌธ์ -> ๋ฌธ์ ์ซ์ -> ๋ฌธ์ ๋ฐ์ดํฐ ์ธ ๋ ์ ํ ๊ทธ๋๋ก ์ด๋ค. ๋ฌธ์ -> ๋ฌธ์ ์ซ์ -> ์ซ์ ์ซ์๋ ๋ฌธ์๋ก ๋ณํ ํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์๋ง ์ด๋ค. ๋ฌธ์ -> ๋ฌธ์ ์์ ์ด๋ฏธ์ง, ๋์์ ํ์ผ, ํ๋ก๊ทธ๋จ ๊ธ๋ก ์ ํ ๊ฒ (2)์ HTTP ์์ Binary file์ ๋ชป ์ฝ๋๊ฐ? HTTP๋ ํ
์คํธ ๊ธฐ๋ฐ์ ํ๋กํ ์ฝ, ์ผ๋ฐ์ ์ผ๋ก ํ
์คํธ ํ์ผ์ ์ฝ๊ธฐ ์ํด ๋์์ธ ๋์๋ค. ๋ฐ๋ผ์ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ์ฝ์ผ๋ ค๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ํ..
2023.02.28
๋ฌธ์ ํ์ด
๊ฒ๋ ์ฝ๊ฒ ์ค๋ช
ํ [ํ๋ก๊ทธ๋๋จธ์ค] 12903. 3xn ํ์ผ๋ง java

1. ๋ฌธ์ ์ค๋ช
๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
๊ฐ๋ก ๊ธธ์ด๊ฐ 2์ด๊ณ ์ธ๋ก์ ๊ธธ์ด๊ฐ 1์ธ ์ง์ฌ๊ฐํ ๋ชจ์์ ํ์ผ์ด ์์ต๋๋ค. ์ด ์ง์ฌ๊ฐํ ํ์ผ์ ์ด์ฉํ์ฌ ์ธ๋ก์ ๊ธธ์ด๊ฐ 3์ด๊ณ ๊ฐ๋ก์ ๊ธธ์ด๊ฐ n์ธ ๋ฐ๋ฅ์ ๊ฐ๋ ์ฑ์ฐ๋ ค๊ณ ํฉ๋๋ค. ํ์ผ์ ์ฑ์ธ ๋๋ ๋ค์๊ณผ ๊ฐ์ด 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋คํ์ผ์ ๊ฐ๋ก๋ก ๋ฐฐ์น ํ๋ ๊ฒฝ์ฐํ์ผ์ ์ธ๋ก๋ก ๋ฐฐ์น ํ๋ ๊ฒฝ์ฐ์๋ฅผ๋ค์ด์ n์ด 8์ธ ์ง์ฌ๊ฐํ์ ๋ค์๊ณผ ๊ฐ์ด ์ฑ์ธ ์ ์์ต๋๋ค.์ง์ฌ๊ฐํ์ ๊ฐ๋ก์ ๊ธธ์ด n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ์ง์ฌ๊ฐํ์ ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.์ ํ์ฌํญ๊ฐ๋ก์ ๊ธธ์ด n์ 5,000์ดํ์ ์์ฐ์ ์
๋๋ค.๊ฒฝ์ฐ์ ์๊ฐ ๋ง์ ์ง ์ ์์ผ๋ฏ๋ก, ๊ฒฝ์ฐ์ ์๋ฅผ 1,000,000,007์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ returnํด์ฃผ์ธ์.์
์ถ๋ ฅ ์nresult411์
..
2024.06.16
๋ฌธ์ ํ์ด
ํญํด 99 ์ฝํ
์คํฐ๋ 5๊ธฐ 8์ผ์ฐจ + [ํ๋ก๊ทธ๋๋จธ์ค] Lv3 ์๊ณผ ๋๋ java ํ์ด

1. ๋ฌธ์ ์ค๋ช
๐(1) ๋งํฌ๐ย ย ํ๋ก๊ทธ๋๋จธ์คSW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํprogrammers.co.krย (2) ์ฃผ๋ชฉ ํฌ์ธํธ ๐ต1๏ธโฃ ๋๋ >= ์ ์ด๋ฉด ๋ชจ์๋ ์์ ๊ฐ์๊ฐ 0์ด ๋๋ค!2๏ธโฃ ํ์ฌ ํน์ ํ ์๋ธ ํธ๋ฆฌ๋ฅผ ๋ฐฉ๋ฌธ ์ค์ด๋ผ ๊ฐ์ ํ ๋, ํด๋น ํธ๋ฆฌ์์ ์ต๋ ์ด์ต์ ์ด๋ฏธ ๋๋ค๊ณ ํ์ ํ๋ค๋ฉด, ์กฐ์ ๋
ธ๋๋ฅผ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ ๋ค๋ฅธ ์๋ธ ํธ๋ฆฌ๋ฅผ ํ๊ณ ๋๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.2. ์๊ฐ์ ํ๋ฆ: ์ฝ๋๊ฐ ๋์ค๊ธฐ๊น์ง ๐๏ธ(1) IDEA ๋์ถ๐กKEY WORD: BACK-TRACKING, DFSํด์ค์์ ์ค๋ช
ํ 2๏ธโฃ๋ฒ์งธ ํฌ์ธํธ ๋๋ฌธ์, ์ด๋ฒ ๋ฌธ์ ๋ BACK-TRACKING์ ๊ฐ๊น๊ฒ ๋ณํ๋ DFS๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ๊น์ด ์ฐ์ ํ์์ ํ๋ ์ฑ์ง์..
2025.01.22
#Notice
์ ๋ธ๋ก๊ทธ ์ด๋ฆ์ด ์ ์ ๊ณผ ์๊ฐ์ ๋ฐฉ์ธ๊ฐ์?
Home ๊นํ๋ธ
๋๋๊ณค๋ณผ Cell saga๋ฅผ ๋ณด์ จ๋์?
ํด๋น ์ํผ์๋์์ ์ฃผ์ธ๊ณต ์ผํ์ ๋ง๊ฐํ ์ ์ ์ด๊ธฐ๊ธฐ ์ํ์ฌ ํ๋ฃจ๊ฐ 1๋ ์ผ๋ก ๋ณํ๋ ์ ์ ๊ณผ ์๊ฐ์ ๋ฐฉ์ ๋ค์ด๊ฐ ์๋ จ์ ํฉ๋๋ค.
์ด ๋ธ๋ก๊ทธ๊ฐ ์ ์๊ฒ ํ๋ฃจ๋ฅผ 1๋ ์ฒ๋ผ ์์ฐจ๊ฒ ์ธ ์ ์๋ ๊ณต๊ฐ์ด ๋์ด ์ ์ฑ์ฅ์ ๋์์ฃผ๊ธธ ๋ฐ๋ผ๋ ๋ง์์์ ์ง์์ต๋๋ค ๐ค
Home ๊นํ๋ธ
D-day
์์ผ๊น์ง
#Review
#tag cloud
์๊ณ ๋ฆฌ์ฆ ํ์ด ๋ฌธ์ ํ์ด ๊ฐ๋ฐ์ ์ฝ๋ฉํ ์คํธ์ค๋น ์ฝ๋ฉํ ์คํธ ์ค๋น ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง ํฐ์คํ ๋ฆฌ ๊พธ๋ฏธ๊ธฐ ๋ฐฑ์ค ์ฝ๋ฉํ ์คํธ ๊ณํ ํ๋ก๊ทธ๋๋จธ์ค ์์์ ์ค๋ธ์ ๊ธฐ์ ๋ถ์ 99ํด๋ฝ ๊ฐ๋ฐ์์ทจ์ Java ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์๊ณ ๋ฆฌ์ฆ ์ฝํ ์คํฐ๋ til ์ทจ์ ๊ธฐ์ ๋ถ์ ์ฝ๋ฉ ํ ์คํธ ํญํด99 ์ฝ๋ฉ ํ ์คํธ ์ค๋น ์๊ณ ๋ฆฌ์ฆ ์ด๋ก ์ง์๋๊ธฐ ํญํด 99 ๊ฐ๋ฐ์ ์ทจ์ Read More โ