ยซ   2025/04   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Recent Posts
04-07 14:34

Today
Total

Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (116)

์—ฐ์˜ ๊ธฐ๋ก ๐Ÿช

[C++ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ด ๊ธ€์€ ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•™์Šตํ•˜๋ฉฐ ์ด๋ ‡๊ฒŒ ์งœ๋ฉด ์™œ ์•ˆ๋ ๊นŒ?๋ฅผ ๊ณ ๋ฏผํ•œ ๊ณผ์ •์„ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž์ฒด๊ฐ€ ์ฒ˜์Œ์ด๋ผ๋ฉด ์•„๋ž˜ ๋งํฌ์—์„œ ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์ตํžŒ ํ›„ ๊ธ€์„ ์ฝ์œผ์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.https://blog.encrypted.gg/1035 [์‹ค์ „ ์•Œ๊ณ ๋ฆฌ์ฆ˜] 0x1C๊ฐ• - ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๋ฒˆ์—๋Š” ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ํ”Œ๋กœ์ด๋“œ, ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋งŒ ๋‹ค๋ฃจ๊ณ  ๋‚˜๋ฉด ๋‚˜๋ฆ„ ๊ธธ์—ˆ๋˜ ๊ทธ๋ž˜ํ”„ ํŒŒํŠธ๊ฐ€ ๋๋‚ฉ๋‹ˆ๋‹ค. ๋ชฉ์ฐจ๋Š” ๋ˆˆ์œผ๋กœ ํ•œ ๋ฒˆblog.encrypted.gg ์ตœ๋‹จ๊ฑฐ๋ฆฌํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์ •์ ๊ฐ„์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•œ ํŽธ์ด๋‹ค.NxNํฌ๊ธฐ์˜ ๋ฐฐ์—ด์„ ํฐ ๊ฐ’(INF)์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.๊ฐ ์ •์ ๊ฐ„์˜ ..

[C++ ์•Œ๊ณ ๋ฆฌ์ฆ˜] LCS, Longest Common Subsequence

๊ฐœ์š”LCS(Longest Common Subsequence)๋Š” ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ, ๋‘ ๋ฌธ์ž์—ด ์‚ฌ์ด ๊ณตํ†ต๋˜๋Š” ๋ถ€๋ถ„์„ ๋งํ•œ๋‹ค. ์ฆ‰ ๋ฌธ์ž์—ด์˜ ์ƒ๋Œ€์ ์ธ ์ˆœ์„œ๋งŒ ๊ฐ™์œผ๋ฉด ๋œ๋‹ค.์˜ˆ๋ฅผ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์ด 2๊ฐœ์˜ ๋ฌธ์ž์—ด์ด ์žˆ์„ ๋•ŒLCS๋Š” ABCCE์ด๋‹ค. ์ด๋Ÿฐ LCS๋Š” DP๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ตฌํ•œ๋‹ค.๊ณผ์ •๋จผ์ € AABCCDE์™€ A์˜ ๊ณตํ†ต๋ถ€๋ถ„์„ ๊ตฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ํ‘œ์—๋Š” ํ˜„์žฌ๊นŒ์ง€ ๊ฐ€์žฅ ๊ธด ๊ณตํ†ต๋ถ€๋ถ„์˜ ๊ธธ์ด๋ฅผ ์ €์žฅํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ‘œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋œ๋‹ค. (A๋Š” ๊ธธ์ด๊ฐ€ 1์ด๋‹ˆ ์ตœ๋Œ€ ๊ณตํ†ต๋ถ€๋ถ„์˜ ๊ธธ์ด๋Š” 1์ด๋‹ค.)์ด์ œ AABCCDE์™€ AB์˜ ์ตœ์žฅ๊ณตํ†ต๋ถ€๋ถ„์ˆ˜์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•ด๋ณด๋„๋ก ํ•˜์ž. ๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋  ๊ฒƒ์ด๋‹ค.์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์€ ๊ณตํ†ต๋˜๋Š” ๋ถ€๋ถ„์ธ B๊ฐ€ ๋‚˜์™”์„ ๋•Œ์ด๋‹ค. ์ €๊ณณ์€ AAB์™€ AB์˜ LCS์˜ ๊ธธ์ด๋ฅผ ๊ธฐ๋กํ•œ ๋ถ€๋ถ„์ธ๋ฐ AB..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์ด์ง„ํŠธ๋ฆฌ (C++)

https://school.programmers.co.kr/learn/courses/30/lessons/150367 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr ๋ฌธ์ œ ๋ถ„์„๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์€ ์ฃผ์–ด์ง„ ์ˆซ์ž๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๊ณ  ํฌํ™” ์ด์ง„ํŠธ๋ฆฌ๋กœ ๋‚˜ํƒ€๋ƒˆ์„ ๋•Œ ํ•ด๋‹น ํŠธ๋ฆฌ๊ฐ€ ์ด์ง„ํŠธ๋ฆฌ๊ฐ€ ๋งž๋Š”์ง€๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.์ด์ง„์ˆ˜๋ฅผ ํฌํ™” ์ด์ง„ํŠธ๋ฆฌ๋กœ ๋‚˜ํƒ€๋‚ด๋ ค๋ฉด ์•ž์— 0์„ ์ฑ„์›Œ์„œ ๊ฐ’์„ ๊ฐ€๊ณตํ•ด์ค˜์•ผ ํ•œ๋‹ค. ์ด ๋ถ€๋ถ„์„ ์ข€ ๋” ๋ถ„์„ํ•ด๋ณด๋„๋ก ํ•˜์ž.์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ๊ธด ๊ฒƒ์ด ํฌํ™” ์ด์ง„ํŠธ๋ฆฌ์ด๋‹ค. ๋ฆฌํ”„๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋‘ 2๊ฐœ์˜ ์ž์‹๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํฌํ™” ์ด์ง„ํŠธ๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค. 1์ธต์งœ๋ฆฌ ํฌํ™” ์ด์ง„ํŠธ๋ฆฌ๋ผ๋ฉด ๋…ธ๋“œ์˜ ์ˆ˜๋Š” 1๊ฐœ, 2์ธต์ด๋ฉด 3๊ฐœ, 3..

[C++ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฌดํ–ฅ๊ทธ๋ž˜ํ”„ ์‚ฌ์ดํด dfs

dfs๋ฅผ ์‘์šฉํ•˜์—ฌ ๋ฌดํ–ฅ๊ทธ๋ž˜ํ”„์—์„œ์˜ ์‚ฌ์ดํด์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์ด๋‹ค.  ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด ์ ์„ ํ•˜๋‚˜์”ฉ ์ˆœํšŒํ•˜๋ฉฐ ์‚ฌ์ดํด์ด ์กด์žฌํ•˜๋Š”์ง€ ํŒ๋ณ„ํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๋ˆˆ์œผ๋กœ ๋ด์„œ๋Š” 2 3 5 ์‚ฌ์ดํด์ด ์กด์žฌํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ์—์„œ๋Š” 1์—์„œ๋ถ€ํ„ฐ dfs๋ฅผ ํ•˜๋ฉฐ ๋ฐ”๋กœ ์‚ฌ์ดํด์„ ์ฐพ๊ฒŒ ๋œ๋‹ค.dfs ๊ฐ€์žฅ ์•„๋ž˜ path.pop_back()์€ 4์™€ ๊ฐ™์ด ์‚ฌ์ดํด์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๋…ธ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ์ธ์ ‘ํ•œ ๋…ธ๋“œ๊ฐ€ ์ „์— ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ๋ฐ–์— ์—†์„ ๋•Œ์˜ ๊ฒฝ์šฐ์ด๋‹ค.#include #include #include using namespace std;vector> graph; // ๊ทธ๋ž˜ํ”„ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธvector> edges; // ๊ฐ„์„  ์ •๋ณดvector visited;vector path;b..

[๋ฐฑ์ค€ 16724] ํ”ผ๋ฆฌ๋ถ€๋Š” ์‚ฌ๋‚˜์ด(C++)

https://www.acmicpc.net/problem/16724๋ฌธ์ œ์„ค๋ช…UDLR(์ƒํ•˜์ขŒ์šฐ)๋กœ ๊ฐ ์นธ์— ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์–ด๋–ค ๋ฐฉํ–ฅ์— ์žˆ๋Š”์ง€ ์ฃผ์–ด์ง„๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ํ™”์‚ดํ‘œ๋ฅผ ๋”ฐ๋ผ ์ญ‰ ์ด๋™ํ–ˆ์„ ๋•Œ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์•ˆ์ „๊ตฌ์—ญ์œผ๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐœ์˜ ์•ˆ์ „ ๊ตฌ์—ญ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋ฌป๋Š” ๋ฌธ์ œ์ด๋‹ค. ์•„์ด๋””์–ด์ด ๋ฌธ์ œ๋Š” ๊ทธ๋ž˜ํ”„์˜ ์‚ฌ์ดํด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์‚ฌ์ดํด 1๊ฐœ๋‹น 1๊ฐœ์˜ ์•ˆ์ „๊ตฌ์—ญ์„ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ๋œ๋‹ค. ๊ทธ๋ž˜์„œ dfs๋ฅผ ํ†ตํ•ด ๊ทธ๋ž˜ํ”„๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๋ถ€๋ชจ(์‚ฌ์ดํด์˜ ์‹œ์ž‘์ )๋ฅผ ๊ธฐ๋กํ•ด์ฃผ๊ณ , ๋งˆ์ง€๋ง‰์— ๋ถ€๋ชจ๊ฐ€ ์ด ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€๋ฅผ ๋ฆฌํ„ดํ•ด์คฌ๋‹ค.์•„๋ž˜์˜ ๊ฒฝ์šฐ ๋ถ€๋ชจ๊ฐ€ 2์ข…๋ฅ˜๊ฐ€ ๋‚˜์™”์œผ๋‹ˆ 2๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ฝ”๋“œ์ •๋‹ต ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. dfs๋ฅผ ์ด์šฉํ•ด ์ˆœํšŒํ•˜๋ฉฐ ๋‹ค์Œ ๋ธ”๋Ÿญ์ด ํ˜„์žฌ์™€ ๋ถ€๋ชจ๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด Unionํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ถ€๋ชจ๋ฅผ ํ•ฉ์ณ..

Problem Solving/BOJ 2025. 1. 21. 19:51
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋„๋„›๊ณผ ๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„ (C++)

https://school.programmers.co.kr/learn/courses/30/lessons/258711 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr ๋ฌธ์ œ ๋ถ„์„์•„๋ž˜์™€ ๊ฐ™์ด ๋„๋„›๋ชจ์–‘, ๋ง‰๋Œ€๋ชจ์–‘, 8์ž๋ชจ์–‘ ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ๋‹ค.์—ฌ๊ธฐ์„œ ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ โ€œ์ด ๊ทธ๋ž˜ํ”„๋“ค๊ณผ ๋ฌด๊ด€ํ•œ ์ •์ ์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•œ ๋’ค, ๊ฐ ๋„๋„› ๋ชจ์–‘ ๊ทธ๋ž˜ํ”„, ๋ง‰๋Œ€ ๋ชจ์–‘ ๊ทธ๋ž˜ํ”„, 8์ž ๋ชจ์–‘ ๊ทธ๋ž˜ํ”„์˜ ์ž„์˜์˜ ์ •์  ํ•˜๋‚˜๋กœ ํ–ฅํ•˜๋Š” ๊ฐ„์„ ๋“ค์„ ์—ฐ๊ฒฐโ€ํ–ˆ๋‹ค๋Š” ๋ถ€๋ถ„์ด๋‹ค.์ฆ‰ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์ ์„ ์ฐพ์œผ๋ฉด ๊ฑฐ๊ธฐ์— ์—ฐ๊ฒฐ๋œ ๊ฒƒ์€ ๋„๋„›, ๋ง‰๋Œ€, 8์ž๊ทธ๋ž˜ํ”„ ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•œ๋‹ค๋Š” ์†Œ๋ฆฌ์ด๋‹ค.๊ทธ๋ ‡๊ธฐ์— ์ •์ ์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋„๋„›๊ทธ๋ž˜ํ”„ 2๊ฐœ๋ฅผ ํ•ฉ์นœ ๊ฒƒ ๊ฐ™์€ ๋ชจ์–‘์ด ๋ถ™์–ด์žˆ๊ฑฐ๋‚˜ ํ•˜๋Š” ์ผ..

AWS SAA-C03 ์ทจ๋“ ํ›„๊ธฐ

๐Ÿ“Œ์š”์•ฝAWS์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด SAA ์ž๊ฒฉ์ฆ ์ถ”์ฒœUdemy๊ฐ•์˜ ์ˆ˜๊ฐ• -> ๋คํ”„๋กœ ๊ฐ์žก๊ธฐ+๊ฐœ๋… ๋นˆ์นธ ์ฑ„์šฐ๊ธฐ์ตœ๋‹จ๊ธฐ๊ฐ„์— ์ž๊ฒฉ์ฆ๋งŒ์„ ๋”ฐ๊ณ  ์‹ถ๋‹ค๋ฉด ๋คํ”„ ํ‘ธ์‹œ๋Š” ๊ฒƒ ์ถ”์ฒœ ๊ฐœ์š”์šฐ์—ฐํžˆ ์ „์‚ฌ ๊ณต์ง€์—์„œ AWS ๋ฐ”์šฐ์ฒ˜๋ฅผ ์ง€์›ํ•ด์ค€๋‹ค๋Š” ๊ณต์ง€๋ฅผ ๋ณด๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์„ ํ•˜๋ฉฐ AWS ์„œ๋น„์Šค๋ฅผ ์จ๋ณด๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ(EC2, S3, Lambda, ECR ๋“ฑ...) ์ •๋ง ์ž˜ ์“ฐ๊ณ ์žˆ๋Š”๊ฒŒ ๋งž๋‚˜? ํ•˜๋Š” ๊ณ ๋ฏผ์„ ํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ SAA์ž๊ฒฉ์ฆ์˜ ์กด์žฌ๋Š” ์•Œ์•˜์œผ๋‚˜ ์‘์‹œ๋ฃŒ๊ฐ€ 150๋‹ฌ๋Ÿฌ(์•ฝ 20๋งŒ์›...)๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ ๋Š” ๋‚˜์ค‘์— ๋”ฐ์ž๋ฉฐ ๋ฏธ๋ค„๋‘๊ณ (์žŠ์–ด๋ฒ„๋ฆฌ๊ณ ) ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ฐจ์— ์ด๋ ‡๊ฒŒ ๊ณ„๊ธฐ๊ฐ€ ์ƒ๊ฒผ์œผ๋‹ˆ ๊ณต๋ถ€ํ•ด๋ณด์žํ•˜๊ณ  ์ž๊ฒฉ์ฆ ์ทจ๋“์— ๋„์ „ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์“ฐ๋Š” ์„œ๋น„์Šค๋งŒ ์‚ฌ์šฉํ•ด์˜ค๋˜ ๊ฒƒ์ด ์•„์‰ฌ์›Œ AWS์˜ ์ „๋ฐ˜์ ์ธ ์„œ๋น„์Šค๋“ค๊ณผ ์‚ฌ์šฉ ..

์ผ์ƒ/ํšŒ๊ณ  2025. 1. 13. 21:13
AWS SAA-C03 ์˜ค๋‹ต๋…ธํŠธ

AWS ์„œ๋น„์Šค ๊ฐœ์š”๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ๋ฐ ๋ถ„์„Redshift: ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ ๋„๊ตฌIdentity ๋ฐ ์ ‘๊ทผ ์ œ์–ดaws:PrincipalOrgId: ์กฐ์ง ์ž์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ดaws:PrincipalOrgPaths: ์กฐ์ง ๋‚ด ํŠน์ • ๋ถ€์„œ๋ฅผ ๋ช…์‹œ์ฝ˜ํ…์ธ  ๋ฐ ๋ฐ์ดํ„ฐ ์ „์†กCloudFront: ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜์— ์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ๋ฐฐ์น˜, ์›๋ณธ ์„œ๋ฒ„์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ดAWS Global Accelerator: ์• ๋‹ˆ์บ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์„œ๋ฒ„๋กœ ๋ผ์šฐํŒ…ํ•˜์—ฌ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ „์†กKinesis Data Firehose: A์„œ๋น„์Šค์—์„œ B์„œ๋น„์Šค๋กœ ๋ฐ์ดํ„ฐ ์ „์†กKinesis Data Stream: ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„ ํŠน์ • ์„œ๋น„์Šค(A)์— ์ „๋‹ฌ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ฐ์‚ฌAWS Config: ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ๋ฐ ์ถ”์ AWS CloudTrail: ๋กœ๊ทธ ๊ธฐ๋ก ๋ฐ ๋‚ด์—ญ ..

[C++ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ํ€ต์ •๋ ฌ

ํ€ต์ •๋ ฌ์€ ์ˆซ์ž ํ•˜๋‚˜(pivot)๋ฅผ ๊ณจ๋ผ์„œ ์˜ฌ๋ฐ”๋ฅธ ์ž๋ฆฌ์— ๋„ฃ์–ด๊ฐ€๋ฉฐ ์ •๋ ฌ์„ ์ง„ํ–‰ํ•œ๋‹ค. ์ด๋•Œ ๋ฐฐ์—ด์„ ์ชผ๊ฐœ๊ฐ€๋ฉฐ ์žฌ๊ท€์ ์œผ๋กœ ์ •๋ ฌ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ข…์ ์ธ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(nlogn)์ด๋‹ค. ๋™์ž‘ ๊ณผ์ •์ด๋ก ์ ์ธ ๋‚ด์šฉ์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ ์–ด๋–ค์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด๋„๋ก ํ•˜์ž. ์•„๋ž˜์™€ ๊ฐ™์ด {5, 4, 1, 7, 6, 2} ๋ฐฐ์—ด์ด ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ๋งจ ์™ผ์ชฝ์„ ํ”ผ๋ด‡์œผ๋กœ ์žก๊ณ  left์™€ right๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ๊ฐ ์ง€์ •ํ•œ๋‹ค.์—ฌ๊ธฐ์„œ์˜ left๋Š” pivot๋ณด๋‹ค ์ž‘์•„์•ผํ•˜๊ณ , right๋Š” pivot๋ณด๋‹ค ์ปค์•ผํ•œ๋‹ค. ์ด์ œ left๋ฅผ ํ•˜๋‚˜์”ฉ ์˜ฎ๊ธฐ๋ฉฐ 5๋ณด๋‹ค ํฐ ์ˆ˜๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ๋‚˜์˜ค๋Š” ์ง€์ ์„ ์ฐพ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.right๋Š” pivot๋ณด๋‹ค ์ปค์•ผํ•œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ์ด๋ฏธ pivot๋ณด๋‹ค ์ž‘๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ์—ฌ๊ธฐ์„œ ๋ฉˆ์ถฐ์ค€๋‹ค.์ด์ œ left์™€ right๊ฐ€..

ํ”„๋กœํ† ์ฝœ ์Šคํƒ๊ณผ LAN ์–ด๋Œ‘ํ„ฐ์˜ ๋™์ž‘

์•ž์„œ Socket ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ์˜ Socket, Connect, Write, Read, Close ๋™์ž‘์— ๋Œ€ํ•ด ์‚ดํŽด๋ดค๋‹ค. ์ด๋Ÿฌํ•œ ๋™์ž‘๋“ค์„ ๋’ท๋‹จ์—์„œ ํ”„๋กœํ† ์ฝœ ์Šคํƒ๊ณผ LAN ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค. ๊ทธ๋ฆผ์œผ๋กœ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.์ €๋ฒˆ์—” Socket ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊นŒ์ง€ ์‚ดํŽด๋ดค์œผ๋‹ˆ ํ”„๋กœํ† ์ฝœ ์Šคํƒ ๋‚ด๋ถ€๋ฅผ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. TCP์™€ UDP๋Š” ์šฉ๋„์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค. TCP๋Š” ๋ธŒ๋ผ์šฐ์ €๋‚˜ ๋ฉ”์ผ ๋“ฑ์˜ ์ผ๋ฐ˜์ ์ธ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ๋‹ด๋‹นํ•˜๊ณ , UDP๋Š” DNS ์„œ๋ฒ„์— ๋Œ€ํ•œ ์กฐํšŒ์™€ ๊ฐ™์€ ์งง์€ ์ œ์–ด์šฉ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ๋‹ด๋‹นํ•œ๋‹ค. (์˜์ƒ ์ „์†ก์—๋„ ์‚ฌ์šฉ๋œ๋‹ค.)์•„๋ž˜์— ์žˆ๋Š” IP ๋‹ด๋‹น์€ ํŒจํ‚ท์˜ ์†ก์ˆ˜์‹ ์„ ์ œ์–ดํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค. ๋‚ด๋ถ€์— ์žˆ๋Š” ARP ํ”„๋กœํ† ์ฝœ์€ IP ์ฃผ์†Œ์— ๋Œ€์‘ํ•˜๋Š” ์ธํ„ฐ๋„ท์˜ MAC ์ฃผ์†Œ๋ฅผ ์กฐ์‚ฌํ•  ๋•Œ, ICMP๋Š” ํŒจํ‚ท ์šด๋ฐ˜ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ..

PC์—์„œ ์ธํ„ฐ๋„ท๊นŒ์ง€: ํŒจํ‚ท์˜ ์—ฌ์ • (2)

์ง€๋‚œ ๊ธ€์—์„œ๋Š” BAS๊ฐ€ ์…€์„ ํ•ฉ์ณ ํŒจํ‚ท์œผ๋กœ ๋ณต์›ํ•œ ๋’ค PPP ํŒจํ‚ท์„ ์ถ”์ถœํ•˜๊ณ , ํ„ฐ๋„๋ง์šฉ ํ—ค๋”๋ฅผ ๋ถ™์—ฌ ์†ก์‹ ํ•˜๋Š” ๊ณผ์ •๊นŒ์ง€ ์‚ดํŽด๋ดค์—ˆ๋‹ค. ๊ทธ๋•Œ์˜ ๊ณผ์ •์„ ๋ณต๊ธฐํ•ด๋ณด๋ฉด MAC์™€ PPPoE๊ฐ€ BAS์— ์ „๋‹ฌ๋˜๋Š”๋ฐ์— ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— BAS์—์„œ ๋ฒ„๋ ค์ง„๋‹ค๊ณ  ํ–ˆ๋‹ค. ์ด ๊ณผ์ •์— ๋Œ€ํ•ด ์ข€ ๋” ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.์šฐ์„  BAS ์—ญํ• ์€ ํฌ๊ฒŒ ์•„๋ž˜ ๋‘ ๊ฐ€์ง€ ์ด๋‹ค.1. ๋ณธ์ธ ํ™•์ธ๊ณผ ์„ค์ •๊ฐ’ ํ†ต์ง€2. ํ„ฐ๋„๋ง์„ ์ด์šฉํ•œ ํŒจํ‚ท ์šด๋ฐ˜์•ž์„  ๊ทธ๋ฆผ์— ๋‚˜์˜จ ๋™์ž‘์€ 2๋ฒˆ ์—ญํ• ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์ด๋‹ค.ADSL์ด๋‚˜ FTTH ์•ก์„ธ์Šค ํšŒ์„ ์€ ์ตœ์ดˆ์— ํ”„๋กœ๋ฐ”์ด๋”(KT, SKT ๋“ฑ)๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹นํ•œ ์ธํ„ฐ๋„ท ์ ‘์†์šฉ ์‚ฌ์šฉ์ž๋ช…๊ณผ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•ด ๋กœ๊ทธ์ธ์„ ํ•ด์•ผ ์ธํ„ฐ๋„ท์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค. BAS๋Š” PPPoE๋ผ๋Š” ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. PPPoE๋Š” PPP๋ผ๋Š” ๋ฐฉ์‹์„ ADS..

PC์—์„œ ์ธํ„ฐ๋„ท๊นŒ์ง€: ํŒจํ‚ท์˜ ์—ฌ์ • (1)

์•ž์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์œผ๋ฉด ํ”„๋กœํ† ์ฝœ ์Šคํƒ์ด ๋ฉ”์‹œ์ง€๋ฅผ ์†ก์ถœํ•ด์ค€๋‹ค๊ณ  ํ–ˆ์—ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์†ก์ถœ๋œ ๋ฉ”์‹œ์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ํ•ด์„œ ์ธํ„ฐ๋„ท๊นŒ์ง€ ์†ก์ถœ๋˜๋Š”์ง€ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.๊ฐœ์š”๋จผ์ € ์ง‘์—์„œ ์ธํ„ฐ๋„ท์œผ๋กœ ๋‚˜๊ฐ€๊ธฐ๊นŒ์ง€์˜ ์ „์ฒด์ ์ธ ๊ณผ์ •์„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.ํด๋ผ์ด์–ธํŠธ์—์„œ ๋งŒ๋“  ํŒจํ‚ท์€ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™”ํ•˜๋ฉฐ ํ”„๋กœ๋ฐ”์ด๋”(ISP : KT, SKT ๋“ฑ)์— ๋„์ฐฉํ•˜๊ฒŒ ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ์ขŒ์ธก ๋์— ์žˆ๋Š” ์ธํ„ฐ๋„ท ์ ‘์†์šฉ ๋ผ์šฐํ„ฐ๋Š” ํŒจํ‚ท ์†ก์‹ ๊ณผ ํŒจํ‚ท ์ค‘๊ณ„ ๋™์ž‘์„ ํ•œ๋‹ค.ํŒจํ‚ท ์ค‘๊ณ„๋Š” ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์—์„œ ๋“ค์–ด์˜จ ํŒจํ‚ท์„ ๋ชฉ์ ์ง€๋กœ ์ „๋‹ฌํ•˜๋Š” ์ค‘๊ฐ„ ์—ญํ• ์ด๊ณ , ํŒจํ‚ท ์†ก์‹ ์€ ์ž์‹ ๊ณผ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์žฅ์น˜๊ฐ€ ์ƒ์„ฑํ•œ ํŒจํ‚ท์„ ๋ฐ›์•„ ๋„คํŠธ์›Œํฌ๋กœ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด๋‹ค.ํŒจํ‚ท ์ค‘๊ณ„ ๋™์ž‘์€ ์ด๋”๋„ท์˜ ๋ผ์šฐํ„ฐ์™€ ๊ฑฐ์˜ ๊ฐ™๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•  ๊ณณ์€ ํŒจํ‚ท ์†ก์‹  ๋™์ž‘์ด๋‹ค. ์ด๋”๋„ท์—์„œ์˜ ํŒจํ‚ท ์†ก์‹ ์˜ ์ฃผ ๋ชฉ์ ์€ ..

๋ธŒ๋ผ์šฐ์ €์— google.com์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์ผ์–ด๋‚˜๋Š” ์ผ์— ๋Œ€ํ•ด ๋งํ•ด๋ณด์„ธ์š”.

๋ธŒ๋ผ์šฐ์ €์— google.com์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์ผ์–ด๋‚˜๋Š” ์ผ์— ๋Œ€ํ•ด ๋งํ•ด๋ณด์„ธ์š”. ๋ผ๋Š” ์งˆ๋ฌธ์€ ๊ธฐ์ˆ ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ํ•ด๋ดค๋‹ค๋ฉด ํ•œ๋ฒˆ์ฏค ๋“ค์–ด๋ดค์„๋ฒ•ํ•œ ์งˆ๋ฌธ์ด๋‹ค. ์ด์— ๋‚ด๋ถ€ ๋™์ž‘์„ ์ฐจ๊ทผ์ฐจ๊ทผ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค. ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๋งŽ์€ ์ผ๋“ค์ด ์ผ์–ด๋‚œ๋‹ค. 1. URL ์ž…๋ ฅ: ์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅํ•œ๋‹ค. 2. ๋„๋ฉ”์ธ ์ด๋ฆ„ ์ถ”์ถœ: ๋ธŒ๋ผ์šฐ์ €๋Š” ์ž…๋ ฅํ•œ URL์—์„œ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ถ”์ถœํ•œ๋‹ค.3. DNS ์ฟผ๋ฆฌ ์ „์†ก: ๋ธŒ๋ผ์šฐ์ €๋Š” DNS ๋ฆฌ์กธ๋ฒ„์— ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ „๋‹ฌํ•˜์—ฌ ํ•ด๋‹น IP ์ฃผ์†Œ๋ฅผ ์š”์ฒญํ•œ๋‹ค. 4. IP ์ฃผ์†Œ ์ˆ˜์‹ : DNS ๋ฆฌ์กธ๋ฒ„๊ฐ€ ๋„๋ฉ”์ธ ์ด๋ฆ„์— ๋Œ€ํ•œ IP ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 5. ์†Œ์ผ“ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ: ์ด์ œ ๋ธŒ๋ผ์šฐ์ €๋Š” IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์„œ๋ฒ„์™€์˜ TCP/IP ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/C++] ์ž…๊ตญ์‹ฌ์‚ฌ

https://school.programmers.co.kr/learn/courses/30/lessons/43238 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr๋ฌธ์ œ ๋ถ„์„๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์€ ๊ฐ ์‹ฌ์‚ฌ๊ด€์ด ์‹ฌ์‚ฌํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๊ณผ ์‚ฌ๋žŒ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ชจ๋‘๊ฐ€ ์‹ฌ์‚ฌ๋ฅผ ๋ฐ›๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.๋ฌธ์ œ ์š”๊ตฌ์‚ฌํ•ญ ์ž์ฒด๋Š” ๋ณต์žกํ•˜์ง€ ์•Š์ง€๋งŒ ๋ฌธ์ œ๋Š” ์ œํ•œ์‚ฌํ•ญ์ด๋‹ค.์ž…๊ตญ์‹ฌ์‚ฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‚ฌ๋žŒ๋„ ๋งค์šฐ ๋งŽ๊ณ , ๊ฐ ์‹ฌ์‚ฌ๊ด€์ด ์‹ฌ์‚ฌํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๋„ ์ปค์„œ ์ˆœํšŒ๋ฅผ ํ•ด์„œ ๊ตฌํ•œ๋‹ค๊ธฐ๋ณด๋‹ค๋Š” ๋‚˜๋ˆ„๊ธฐ๋กœ ๊ตฌํ•  ์ƒ๊ฐ์„ ํ•ด์•ผํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ์ž…๊ตญ ์‹ฌ์‚ฌ๊ด€์ด ๊ฐ๊ฐ 5, 7๋ถ„์— ํ•œ๋ช…์”ฉ ์‹ฌ์‚ฌ๋ฅผ ํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ 100๋ถ„๋™์•ˆ ์‹ฌ์‚ฌํ•  ์ˆ˜ ..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] B- Tree์™€ ์ธ๋ฑ์Šค์˜ ์ดํ•ด

์ด ๊ธ€์€ ์•„๋ž˜ ๊ธ€์„ ์ฝ์œผ๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ๊ณผ, ์ถ”๊ฐ€๋กœ ๊ถ๊ธˆํ•œ ์ ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.https://mangkyu.tistory.com/286 [MySQL] B-Tree๋กœ ์ธ๋ฑ์Šค(Index)์— ๋Œ€ํ•ด ์‰ฝ๊ณ  ์™„๋ฒฝํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ธฐ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹(๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜)์— ๋”ฐ๋ผ B-Tree ์ธ๋ฑ์Šค, Hash ์ธ๋ฑ์Šค, Fractal ์ธ๋ฑ์Šค ๋“ฑ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ B-Tree ๊ตฌ์กฐ๊ฐ€ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— B-Tree ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ์ธ๋ฑ์Šค์˜ ๋™์ž‘mangkyu.tistory.com  B- Tree๋Š” BinaryTree(์ž์‹์ด 2๊ฐœ์ธ ํŠธ๋ฆฌ)์—์„œ ๊ฐœ๋…์„ ํ™•์žฅํ•ด n๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ด๋‹ค.DB์—๋Š” ํŽ˜์ด์ง€๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ๋Š”๋ฐ, ํŽ˜์ด์ง€๋ž€ ๋””์Šคํฌ์™€ ๋ฉ”๋ชจ๋ฆฌ(๋ฒ„ํผํ’€)์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ์ตœ์†Œ ๋‹จ์œ„์ด๋‹ค. ์ธ๋ฑ์Šค์™€ PK, ํ…Œ..

[์Šคํ”„๋ง๋ถ€ํŠธ ์ž…๋ฌธ] 3. ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ •

DI์™€ IoC์Šคํ”„๋ง์—๋Š” DI(Dependency Injection, ์˜์กด์„ฑ ์ฃผ์ž…)์ด๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ๋‹ค. @Autowired๊ฐ€ ์žˆ์œผ๋ฉด ์Šคํ”„๋ง์ด ์—ฐ๊ด€๋œ ๊ฐ์ฒด๋ฅผ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ฐพ์•„์„œ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ ์Šคํ”„๋ง์€ @Component ์–ด๋…ธํ…Œ์ด์…˜์ด ์žˆ์œผ๋ฉด ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ์ž๋™ ๋“ฑ๋กํ•˜๊ณ  ์ด๋Ÿฐ ๊ฐ์ฒด๋“ค์˜ ์ƒ์„ฑ, ์„ค์ •, ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ”„๋ ˆ์ž„์›Œํฌ(์Šคํ”„๋ง)๊ฐ€ ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ IoC(Inversion of Control, ์ œ์–ด์˜ ์—ญ์ „)์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ธ€๋กœ๋งŒ ์ฝ์–ด์„œ๋Š” ์ž˜ ์™€๋‹ฟ์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด DI์™€ IoC์— ๋Œ€ํ•ด ์ดํ•ดํ•ด๋ณด๋„๋ก ํ•˜์ž. ์ฝ”๋“œ๋ฅผ ๋ณด๊ธฐ ์ „ MemberController์—์„œ MemberService๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์ƒํ™ฉ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ด ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ ์–ธํ•ด์„œ ์‚ฌ์šฉํ• ..

WEB/Server 2024. 4. 25. 01:07
[์Šคํ”„๋ง๋ถ€ํŠธ ์ž…๋ฌธ] 2. ์Šคํ”„๋ง ์›น ๊ฐœ๋ฐœ ๊ธฐ์ดˆ

๊ฐœ๋ฐœ์„ ํ•˜๊ธฐ ์ „ ์Šคํ”„๋ง์—์„œ ์›น์„ ๊ฐœ๋ฐœํ•˜๋Š” 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. ํฌ๊ฒŒ ์ •์ ์ปจํ…์ธ , MVC์™€ ํ…œํ”Œ๋ฆฟ์—”์ง„, API ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋‰œ๋‹ค.์ •์  ์ปจํ…์ธ ์‹ค์Šต์ •์ ์ปจํ…์ธ ๋ž€ ์„œ๋ฒ„์—์„œ ๋”ฐ๋กœ ์ž‘์—…์„ ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ํŒŒ์ผ์„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด๋ ค์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์ •์ ์ด๋ผ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ์ปจํ…์ธ ์ด๋‹ค. main/resources/staticํด๋”์— hello-static.htmlํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ (cmd+n) ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด๋ณด์ž. ์ •์  ์ปจํ…์ธ  ์ž…๋‹ˆ๋‹ค.์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•œ ๋’ค localhost:8080/hello-static.html๋กœ ์ ‘์†ํ•˜๋ฉด ์ •์ ์ปจํ…์ธ ์ž…๋‹ˆ๋‹ค.๋ผ๋Š” ํ™”๋ฉด์ด ๋ณด์ผ ๊ฒƒ์ด๋‹ค.๋™์ž‘ ์›๋ฆฌ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ localhost:8080/hello-static.html์š”์ฒญ์ด ์˜จ ๊ฒƒ์„ ๋ณด๊ณ  ๋‚ด์žฅ๋œ Tomcat..

WEB/Server 2024. 4. 25. 01:03
[์Šคํ”„๋ง๋ถ€ํŠธ ์ž…๋ฌธ] 1. ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ์„ค์ •

์Šคํ”„๋ง๋ถ€ํŠธ์—๋Š” Maven๊ณผ Gradle์ด ์žˆ๋‹ค. ๋‘˜ ๋‹ค ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋•ก๊ฒจ์˜ค๊ณ  ๋นŒ๋“œ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์š”์ฆ˜์€ Gradle์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์Šคํ”„๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž์ฒด๋„ Gradle๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃฌ๋‹ค.โญ ํ™˜๊ฒฝmacOS, IntelliJ Untimate ๋ฒ„์ „์—์„œ ์ง„ํ–‰ 1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ์—ด๊ณ  New Project๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค. ์ดํ›„ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•œ๋‹ค.Language, Type, JDK, Java, Packaging๋ถ€๋ถ„์„ ์ž˜ ๋งž์ถฐ์ค˜์•ผ ํ•œ๋‹ค.๊ทธ๋ฆฌ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด spring web๊ณผ Thymeleaf๋ฅผ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•ด์ฃผ๋„๋ก ํ•˜์ž.์ฐธ๊ณ ๋กœ spring boot ์–ดํ”Œ๋ฆฌ์ผ€..

WEB/Server 2024. 4. 25. 00:53
M1 ๋งฅ๋ถ Google test ํ™˜๊ฒฝ ๊ตฌ์ถ•

๐Ÿ“ŒC/C++๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ธ Google test๋ฅผ M1๋งฅ๋ถ์—์„œ ์„ธํŒ…ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต WSL์— ๊น”์•„์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š”๋ฐ M1, M2๋งฅ๋ถ์—์„œ๋Š” ์ž˜ ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•ด์„œ docker๋ฅผ ์ด์šฉํ•ด ํ™˜๊ฒฝ์„ ์„ธํŒ…ํ–ˆ๋‹ค. ๋ช…๋ น์–ด๋“ค์€ iTerm์— ์ž…๋ ฅํ•˜๋ฉฐ ์ง„ํ–‰ํ–ˆ๋‹ค. ๋จผ์ € ์•„๋ž˜ ์ด๋ฏธ์ง€๋ฅผ pull ๋ฐ›๊ณ  ์ดํ›„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค. https://hub.docker.com/r/srzzumix/googletest/ Docker hub.docker.com docker pull srzzumix/googletest docker run -it -v /$(pwd):/code srzzumix/googletest sh ์—ฌ๊ธฐ๊นŒ์ง€ ์‹คํ–‰ํ–ˆ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด #์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ปค๋งจ๋“œ๋ผ์ธ์œผ๋กœ ์ง„์ž…ํ•˜๊ฒŒ ๋œ๋‹ค. docke..

[๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ] ๋„คํŠธ์›Œํฌ

์ฒ˜๋ฆฌ๋Ÿ‰(throughput) : ๋งํฌ ๋‚ด์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ์˜ ์–‘, bps์ง€์—ฐ์‹œ๊ฐ„(latency) : ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋˜๋Š” ์‹œ๊ฐ„. ์–ด๋–ค ๋ฉ”์‹œ์ง€๊ฐ€ ๋‘ ์žฅ์น˜ ์‚ฌ์ด๋ฅผ ์™•๋ณตํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„๋ณ‘๋ชฉํ˜„์ƒ(bottleneck) : ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์ด๋‚˜ ์šฉ๋Ÿ‰์ด ํ•˜๋‚˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ธํ•ด ์ œํ•œ ๋ฐ›๋Š” ํ˜„์ƒ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ ๋ถ„์„ ๋ช…๋ น์–ด๋„คํŠธ์›Œํฌ ๋ณ‘๋ชฉ ํ˜„์ƒ์€ ์•„๋ž˜ ์›์ธ๋“ค๋กœ ์ธํ•ด ์œ ๋ฐœ๋  ์ˆ˜ ์žˆ๋‹ค.๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€์„œ๋ฒ„ CPU, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๋น„ํšจ์œจ์ ์ธ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ๋งŒ์ผ ๋„คํŠธ์›Œํฌ์™€ ๊ด€๋ จ๋œ ํ…Œ์ŠคํŠธ์™€ ๊ด€๋ จ์—†๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๊ฐ๊ฐ ์ง„ํ–‰ํ•œ ๋’ค ๋ฌธ์ œ์ ์ด ๋„คํŠธ์›Œํฌ์™€ ๊ด€๋ จ๋˜์–ด์žˆ๋‹ค ๋ผ๋Š” ๊ฒฐ๋ก ์ด ๋‚˜์™”๋‹ค๋ฉด ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ ๋ถ„์„์„ ํ•ด์•ผํ•œ๋‹ค.ping(Packet INternet Grouper)ping [IP address or Domain addres..