ยซ   2025/02   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
Archives
Recent Posts
02-08 13:57

Today
Total

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

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

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

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

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

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

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
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] 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..

์šฐํ…Œ์ฝ” ํ”„๋ฆฌ์ฝ”์Šค 1์ฃผ์ฐจ ํ”ผ๋“œ๋ฐฑ ์ •๋ฆฌ(๊ฐœ๋ฐœ ์š”๊ตฌ์‚ฌํ•ญ ์ž‘์„ฑ, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, junit)

1์ฃผ์ฐจ ํ”ผ๋“œ๋ฐฑ ์ •๋ฆฌ ์ด ๊ธ€์€ ์šฐํ…Œ์ฝ” 1์ฐจ ๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ๋ฐฐ์šด ์ ์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ์ƒˆ๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ์•„๋ž˜ ๋งํฌ์—์„œ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/kite707/java-baseball-6/tree/kite707_feedback GitHub - kite707/java-baseball-6 Contribute to kite707/java-baseball-6 development by creating an account on GitHub. github.com ๋จผ์ € ์ด๋ฒˆ 1์ฃผ์ฐจ์˜ ๊ณตํ†ต ํ”ผ๋“œ๋ฐฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค. ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ •ํ™•ํžˆ ์ค€์ˆ˜ํ•œ๋‹ค. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์˜๋ฏธ์žˆ๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค. git์„ ํ†ตํ•ด ๊ด€๋ฆฌํ•  ์ž์›์— ๋Œ€ํ•ด์„œ๋„ ๊ณ ๋ คํ•œ๋‹ค. Pull Request๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „ ๋ธŒ๋žœ์น˜๋ฅผ..

etc 2023. 10. 31. 00:03
์ปดํŒŒ์ผ ๊ณผ์ •

์ด ๊ธ€์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ง  ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ป๊ฒŒ ์ปดํŒŒ์ผ๋˜์–ด ์‹คํ–‰๋˜๋Š”์ง€ ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋‹ค. ๋จผ์ € ์•„๋ž˜์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. #include #define MAX 5 int main(){ printf("hello world\n"); //hello world๋ฅผ ์ถœ๋ ฅ int a = MAX; return 0; } ์ดํ›„ ์šฐ๋ฆฌ๊ฐ€ gcc hello.c ๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด a.outํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค. ์ด a.outํŒŒ์ผ์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ชฉ์  ํŒŒ์ผ(executable object file)์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ณด๊ธฐ์—๋Š” hello.cํŒŒ์ผ์ด ๋ฐ”๋กœ a.outํŒŒ์ผ๋กœ ๋ณ€ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์—ฌ์ง€์ง€๋งŒ ์‚ฌ์‹ค ๋‚ด๋ถ€์ ์œผ๋กœ ์ „์ฒ˜๋ฆฌ, ์ปดํŒŒ์ผ, ์–ด์…ˆ๋ธ”๋ฆฌ, ๋งํ‚น ๊ณผ์ •์„ ๋ชจ๋‘ ๊ฑฐ์นœ ๊ฒƒ์ด๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ๊ทธ ๊ณผ์ •์„ ํ•˜๋‚˜ํ•˜๋‚˜ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. ์ „์ฒ˜๋ฆฌ(h..

[๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ] ๋””์ž์ธ ํŒจํ„ด๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„

SECTION1 ๋””์ž์ธ ํŒจํ„ด์‹ฑ๊ธ€ํ†ค ํŒจํ„ดํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๊ฐ€์ง€๋Š” ํŒจํ„ด์ด๋‹ค. ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ชจ๋“ˆ์— ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ฉฐ, ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๊ทธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์ด ๊ณต์œ ํ•˜๋ฉฐ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค. ๋น„์šฉ์€ ์ค„์ง€๋งŒ ์˜์กด์„ฑ์ด ๋†’๋‹ค.์•„๋ž˜์™€ ๊ฐ™์ด db์— ์—ฐ๊ฒฐํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด, DB๋ผ๋Š” ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— DB.instance๋ผ๋Š” ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.const URL = 'dbUrl' const createConnection = url => ({"url" : url}) class DB { constructor(url) { if (!DB.instance) { DB.instance = createConnection(url) ..

์ˆœ์ฐจํšŒ๋กœ vs ์กฐํ•ฉํšŒ๋กœ(feat ํ”Œ๋ฆฝํ”Œ๋กญ)

๐Ÿ”– ํ‚ค์›Œ๋“œ ์ˆœ์ฐจํšŒ๋กœ, ์กฐํ•ฉํšŒ๋กœ, ํ”Œ๋ฆฝํ”Œ๋กญ ๐Ÿ“Œ์ˆœ์ฐจํšŒ๋กœ(Sequential Circuits)์™€ ์กฐํ•ฉํšŒ๋กœ(Comninational Circuits) ์ˆœ์ฐจํšŒ๋กœ๋Š” ์ถœ๋ ฅ์ด ํ˜„์žฌ์˜ ์ž…๋ ฅ๊ณผ ์ด์ „์˜ ๋…ผ๋ฆฌํšŒ๋กœ ์ƒํƒœ์˜ ์กฐํ•ฉ์— ์˜ํ•ด ๊ฒฐ์ •๋˜๋Š” ๋…ผ๋ฆฌํšŒ๋กœ, ์กฐํ•ฉํšŒ๋กœ๋Š” ์ž…๋ ฅ์ด ์ฃผ์–ด์ง€๋ฉด ๋ฐ”๋กœ ์ถœ๋ ฅ์ด ๋‚˜์˜ค๋Š” ํšŒ๋กœ์ด๋‹ค. ์•ž์„œ ์ˆœ์ฐจํšŒ๋กœ๋Š” ์ด์ „์˜ ๋…ผ๋ฆฌํšŒ๋กœ ์ƒํƒœ์— ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด ์ด์ „์˜ ๊ฐ’์„ ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅํ•ด์•ผํ•œ๋‹ค. ์ด๋•Œ ์ด ๊ธฐ์–ต์†Œ์ž๋กœ ๋งŽ์ด ์“ฐ์ด๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ํ”Œ๋ฆฝํ”Œ๋กญ์ด๋‹ค. ์ฆ‰ ์ˆœ์ฐจํšŒ๋กœ๋Š” ์กฐํ•ฉํšŒ๋กœ+๊ธฐ์–ตํšŒ๋กœ์ธ ๊ฒƒ์ด๋‹ค. ์กฐํ•ฉ ๋…ผ๋ฆฌํšŒ๋กœ์˜ ํ˜„์žฌ ์ถœ๋ ฅ๊ฐ’์€ ๊ธฐ์–ตํšŒ๋กœ์— ์ €์žฅ๋˜๊ณ  ์ด ์ €์žฅ๋œ ๊ฐ’์€ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์œ„ํ•ด ํ”ผ๋“œ๋ฐฑ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์กฐํ•ฉ ๋…ผ๋ฆฌํšŒ๋กœ์˜ ์ž…๋ ฅ ๋‹จ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. ๐Ÿ“Œํ”Œ๋ฆฝํ”Œ๋กญ ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ํ”Œ๋ฆฝ ํ”Œ๋กญ์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์•Œ์•„..

[Airbridge] Api ํ˜ธ์ถœ ์ˆ˜ ํŠธ๋ž˜ํ‚น

๊ฐœ์š” api ํ˜ธ์ถœ ์ˆ˜๋ฅผ ํŠธ๋ž˜ํ‚นํ•˜๊ธฐ ์œ„ํ•ด airbridge๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณธ๋ž˜ airbridge๋Š” ๊ด‘๊ณ  ์„ฑ๊ณผ ๋ถ„์„์„ ํ•˜๋Š”๋ฐ์— ์‚ฌ์šฉ๋˜๋Š” ํˆด์ด์ง€๋งŒ ์ด๋ฒคํŠธ๋ฅผ ์—์–ด๋ธŒ๋ฆฟ์ง€ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ณ  ์ด๋ฅผ ์‰ฝ๊ฒŒ ์กฐํšŒํ•˜๊ณ  ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. api ํ˜ธ์ถœ ์ˆ˜๋ฅผ ํŠธ๋ž˜ํ‚นํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ์•ˆ์„ ์ฐพ๋˜ ์ค‘ ์—์–ด๋ธŒ๋ฆฟ์ง€๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ฐพ์ง€ ๋ชปํ–ˆ๊ธฐ์— ์ด๋Ÿฐ ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ฆฌ์ž๋Š” ์ทจ์ง€๋กœ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ „ ์ค€๋น„ ๋จผ์ € ์—์–ด๋ธŒ๋ฆฟ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜ ๊ฐ„๋‹จํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—์–ด๋ธŒ๋ฆฟ์ง€ ํšŒ์›๊ฐ€์ž… ์•ฑ ๋“ฑ๋ก ์—์–ด๋ธŒ๋ฆฟ์ง€๋Š” ์•„๋ž˜ ํŽ˜์ด์ง€์—์„œ ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ๋งŒ์œผ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ํšŒ์›๊ฐ€์ž… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://www.airbridge.io/ko ์—์–ด๋ธŒ๋ฆฟ์ง€ | ๋ชจ๋ฐ”์ผ ์•ฑ ์„ฑ์žฅ์„ ๊ทน๋Œ€ํ™”ํ•˜์„ธ์š”. ํ•ฉ๋ฆฌ์ ..

WEB/Server 2023. 7. 1. 18:05
[Javascript -> Typescript] ์—๋Ÿฌ ๋ชจ์Œ

JavaScript๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ TypeScript๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ๋งŒ๋‚ฌ๋˜ ๋งŽ์€ ์—๋Ÿฌ์— ๋Œ€ํ•ด ๊ธฐ๋กํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” export๋‚˜ import๊ฐ€ ์—†์œผ๋ฉด ์Šคํฌ๋ฆฝํŠธ๋กœ ํ•ด์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค๋ฉด(๋‹ค๋ฅธ ํŒŒ์ผ์ž„์—๋„!!!) ์—๋Ÿฌ๋ฅผ ๋‚ธ๋‹ค. ํŒŒ์ผ์˜ ๋์— export {}; ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์ž‘์„ฑํ•œ ์ธ์ž๋ฅผ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๋ฅผ ๋‚ธ๋‹ค. ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. function hihi(a, b) { return a+b; } //์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์œ„ ๋‘ ์ƒํ™ฉ์— ๋Œ€ํ•ด ์—๋””ํ„ฐ์—์„œ ์—๋Ÿฌ๋ฅผ ๋‚ด์ง€ ์•Š์ง€๋งŒ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์—๋Ÿฌ๋ฅผ ๋‚ธ๋‹ค. hihi(1); hihi(1,2,3); //๋งŒ์•ฝ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋Š” ์ธ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ช…์‹œ์ ์œผ๋กœ ?๋ฅผ ๋ถ™์—ฌ..

WEB/Typescript 2023. 4. 26. 01:00
[Typescript] Cannot redeclare block-scoped variable ‘OOO’

์ด์ „์— ์ง„ํ–‰ํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ•˜๋ฉฐ javascript๋กœ ์ž‘์„ฑํ–ˆ๋˜ ํŒŒ์ผ์˜ ํ™•์žฅ์ž๋ฅผ ts๋กœ ์ˆ˜์ •ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ์ž Cannot redeclare block-scoped variable ‘OOO’ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ์–ป์€ ๊ฒฐ๋ก ์€ “ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ํŒŒ์ผ์˜ top-level์— import๋‚˜ export๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ์„ ๋ชจ๋“ˆ์ด ์•„๋‹Œ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋กœ ์ธ์‹ํ•˜๊ณ , ํŒŒ์ผ ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” window, global๊ณผ ๊ฐ™์€ ์ „์—ญ ์Šค์ฝ”ํ”„์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.” ์ด๋‹ค. ์ฆ‰ ์šฐ๋ฆฌ์˜ ํ˜„์žฌ ์ฝ”๋“œ์—๋Š” require๋ฌธ๋งŒ ์žˆ์–ด์„œ ๋ณ€์ˆ˜๊ฐ€ ์ „์—ญ ์Šค์ฝ”ํ”„์— ์˜ํ–ฅ์„ ๋ฏธ์ณ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ require๋ฅผ ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŒŒ์ผ์˜ ๊ฐ€์žฅ ์•„๋ž˜์— export {}; ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์„œ ์ด ํŒŒ์ผ์€..

WEB/Typescript 2023. 4. 26. 00:55