๋กœ์ผ“๐Ÿพ
article thumbnail
[Java] ์ž๋ฐ”์˜ ๋™์ž‘๊ณผ์ • Java Compiler์™€ JVM
... 2021. 5. 11. 14:12

์ดํด๋ฆฝ์Šค์—์„œ *.java๋ฅผ ๋‹จ์ถ•ํ‚ค ๋ˆŒ๋Ÿฌ์„œ ์‹คํ–‰์‹œํ‚ฌ ์ค„๋งŒ ์•Œ์•˜์ง€ *.java ํŒŒ์ผ์ด ์–ด๋– ํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ ์‹คํ–‰์ด ๋˜๋Š”์ง€๋Š” ์•Œ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์–ด๋–ค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์–ด๋””์„œ ๋งŽ์ด ๋“ค์–ด๋ณธ JVM์€ ๋ฌด์—‡์ธ์ง€ ๊ทธ๋ฆฌ๊ณ  ์ž๋ฐ”์—์„œ *.java๋ฅผ ์–ด๋–ป๊ฒŒ ์ปดํ“จํ„ฐ๊ฐ€ ์‹คํ–‰์‹œํ‚ค๋Š” ์ง€์— ๋Œ€ํ•œ ๊ณผ์ •์„ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด๋‚˜ ์งˆ๋ฌธ ์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋ฉด ์–ธ์ œ๋“ ์ง€ ๋ง์”€ํ•ด์ฃผ์„ธ์š” :) ์ „์ฒด์ ์ธ ์ž๋ฐ”์˜ ์‹คํ–‰๊ณผ์ • ์œ„ ๊ทธ๋ฆผ์€ ์ „์ฒด์ ์ธ ์ž๋ฐ”์˜ ์‹คํ–‰๊ณผ์ •์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๋” ๊นŠ์ˆ™์ด ํŒŒ๊ณ ๋“ค๋ฉด ์ด๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์€ ๊ฒƒ๋“ค์ด ์กด์žฌํ•˜์ง€๋งŒ, ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด์ •๋„๋งŒ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌํ‚ค์›Œ๋“œ *Java Compiler , *JVM , *Interpreter , *JIT compiler Java Compiler with binar..

article thumbnail
[CA] ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ๊ณผ ๋ฐ”์ดํŠธ ํŒŒ์ผ ๊ทธ๋ฆฌ๊ณ  ์ปดํŒŒ์ผ, ๋งํฌ
... 2021. 5. 10. 11:43

์ž๋ฐ”์˜ ์ž‘๋™์›๋ฆฌ๋ฅผ ๊ณต๋ถ€ํ•˜๋˜ ์ค‘ ๋ฐ”์ดํŠธ ํŒŒ์ผ๊ณผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์˜ ๊ฐœ๋…์„ ์ˆ™์ง€ํ•ด์•ผ๋˜์„œ ๊ด€๋ จ ๊ธ€์„ ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Complie๊ณผ Link C์–ธ์–ด๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์†Œ์ŠคํŒŒ์ผ(*.c)์ด ๋ชฉ์ ํŒŒ์ผ(*.obj)๋กœ ๋ณ€ํ™˜๋  ๋•Œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ , ์ฆ‰ 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋ชฉ์ ํŒŒ์ผ์€ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ์˜ ํ˜•ํƒœ์ด์ง€๋งŒ ์‹คํ–‰๋  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์™„์ „ํ•œ ๊ธฐ๊ณ„์–ด๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. *์†Œ์ŠคํŒŒ์ผ : ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ๊ณ ๋ ˆ๋ฒจ์–ธ์–ด์ธ ์†Œ์Šค์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋œ ํŒŒ์ผ ex. *.java, *.py *๋ชฉ์ ํŒŒ์ผ : ์†Œ์ŠคํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•ด์„œ ์ƒ๊ธด ํŒŒ์ผ ex. ๋ฐ”์ดํŠธ์ฝ”๋“œ, ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ ์ปดํŒŒ์ผ๋Ÿฌ ์— ์˜ํ•ด ๋ณ€ํ™˜๋œ ๋ชฉ์ ํŒŒ์ผ์€ ๋ง์ปค ์— ์˜ํ•ด ์‹คํ–‰๊ฐ€๋Šฅํ•œ ์‹คํ–‰ํŒŒ์ผ(*.exe)๋กœ ๋ณ€ํ™˜๋  ๋•Œ ํ•จ์ˆ˜๋‚˜ ํ—ค๋” ํŒŒ์ผ ๋“ฑ์˜ ์‹ค์ œ ๋ฉ”๋ชจ..

article thumbnail
[JS]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋™์ž‘์˜ ์‚ผ์œ„์ผ์ฒด! - V8, Web API, Event Loop
... 2021. 5. 3. 23:29

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋ฉด์„œ ์ฒ˜์Œ์—๋Š” ๊ทธ์ € ์ฝ”๋“œ ์งœ๊ธฐ์—๋งŒ ๊ธ‰๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์–ธ์–ด์˜ ์ž‘๋™์›๋ฆฌ ๊ฐ™์€ ๊ฑด ๋ด๋„ ๋„๋ฌด์ง€ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ”๊ธฐ์— ๊ด€์‹ฌ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ ์ฐจ ํ˜๋Ÿฌ ์šฐ์—ฐํžˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ž‘๋™์›๋ฆฌ ๊ด€๋ จ ๊ธ€์„ ๋‹ค์‹œ ๋ณด๊ฒŒ๋˜์—ˆ๋Š”๋ฐ ๊ธ€์ด ์–ด๋ ต์ง€ ์•Š๊ณ  ์ดํ•ด๊ฐ€ ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. "๊ทธ๋•Œ ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ๊ฐ€ ์ด๋ž˜์„œ ์ด๋Ÿฐ์‹์œผ๋กœ ์ž‘๋™ํ–ˆ๊ตฌ๋‚˜" ๋ฅผ ๊นจ๋‹ฌ์œผ๋ฉด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ๊ฒŒ ๋˜๊ณ  ๋‚˜๋‹ˆ ํ•œ์ธต ๋” ์ฝ”๋”ฉ์ด ์žฌ๋ฏธ์žˆ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ž‘๋™์›๋ฆฌ์— ์žˆ์–ด ํ•ต์‹ฌ ์›๋ฆฌ์ธ JavasScript Engine(V8), Web API, Callback Queue, ์ด๋ฒคํŠธ ๋ฃจํ”„ ๊ทธ ์ค‘ ํŠนํžˆ ์ด๋ฒคํŠธ ๋ฃจํ”„ ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด๋‚˜ ์งˆ๋ฌธ ์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋ฉด ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€๋กœ..

article thumbnail
[OS] ๋” ์ด์ƒ ์–ด๋ฒ„๋ฒ„ํ•˜์ง€๋ง์ž!! ์Šค๋ ˆ๋“œ์™€ ํ”„๋กœ์„ธ์Šค
... 2021. 4. 26. 22:35

๋ˆ„๊ตฐ๊ฐ€ ์ €์—๊ฒŒ ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ๋ฌผ์—ˆ๋˜ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ, ๋ช…ํ™•ํ•˜๊ฒŒ ๋Œ€๋‹ต์„ ๋ชปํ•œ๊ฒŒ ๋„ˆ๋ฌด ์•„์‰ฌ์›Œ์„œ ์ด ์ฐธ์— ํ™•์‹คํžˆ ๊ณต๋ถ€ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ ค ์ด ๊ธ€์„ ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋…๋“ค์ด ํŒŒ๊ณ ํŒŒ๊ณ  ๋“ค๋ฉด ๋ฐ‘๋„ ๋๋„ ์—†๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ด ๊ธ€์„ ์ดํ•ดํ•˜๋Š”๋ฐ ์žˆ์–ด ๊ตณ์ด ๋ถˆํ•„์š”ํ•œ ๊ฐœ๋…๋“ค์— ๋Œ€ํ•ด์„  ์–ธ๊ธ‰ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋Š” ๋ฌด์—‡์ผ๊นŒ? #ํ”„๋กœ์„ธ์Šค(Process)๋ž€? ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์ „์— ํ”„๋กœ๊ทธ๋žจ์ด๋ž€ ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด๋ž€ ๋‹จ์–ด๋Š” ์ปดํ“จํ„ฐ์ „๊ณต์ž๊ฐ€ ์•„๋‹ˆ์—ฌ๋„ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ๋“ค์–ด๋ดค์„ ๊ฒƒ์ด๊ณ  ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋„ ํ•˜๋Š” ๋‹จ์–ด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์€ ์–ด๋–ค ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”ํƒ•ํ™”๋ฉด์— LoL.exe , Visual Studio.exe ๊ฐ™์€ ํŒŒ์ผ๋“ค์ด ์žˆ๋Š”๋ฐ ์ด๊ฒƒ๋“ค์ด ํ”„..

article thumbnail
[Python] list(๋ฆฌ์ŠคํŠธ)์˜ ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ
... 2021. 4. 25. 21:28

๋ฆฌ์ŠคํŠธ ๋ณต์‚ฌํ•˜๊ธฐ ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด๋ฅผ ๋‹ด๋Š” ๊ทธ๋ฆ‡์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•˜๋ฉด ๋‘ ๋ณ€์ˆ˜๋Š” ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๋‘ ๊ฐœ์˜ ์ด๋ฆ„์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์ด์ง€ ๊ฐ์ฒด ์ž์ฒด๊ฐ€ ๋‘ ๊ฐœ๊ฐ€ ๋œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๋ณ€ํ˜• ๊ฐ์ฒดimmutable object์—์„œ๋Š” ํ•œ ๋ณ€์ˆ˜์— ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์ž…ํ•ด๋„ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์ง€๋งŒ, ๋ฆฌ์ŠคํŠธ ๊ฐ™์€ ๋ณ€ํ˜• ๊ฐ์ฒดmutable object์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์žฅ์ ์ด ๋˜๊ธฐ๋„ ํ•˜๊ณ , ๋‹จ์ ์ด ๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  ์—ฌ๊ธฐ๊นŒ์ง€ ์ฝ”๋“œ๋กœ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. >>> mu_a = [2020, 'year'] >>> mu_b = mu_a >>> mu_b.append(['hi', 'hello']) >>> mu_a [2020, '..

article thumbnail
[Node.js] uuid ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฐ ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 4. 12. 16:43

UUID๋Š” Universally Unique IDentifier์˜ ์•ฝ์ž๋กœ, ์ „์„ธ๊ณ„์— ํ•˜๋‚˜๋ฐ–์— ์—†๋Š” ID๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ID๋Š” ๊ณ ์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ž๋“ค์— UUID๋ฅผ ๋ถ™์—ฌ์„œ ๊ตฌ๋ถ„ํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฉด์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UUID๊ฐ€ ๊ฒน์น˜๋ฉด ์–ด์ฉŒ์ง€? ์ด ๊ธ€์€ koreanhole ๋‹˜์˜ ๊ธ€์ž…๋‹ˆ๋‹ค. Intro ์ตœ๊ทผ UOS๊ณต์ง€์‚ฌํ•ญ ์•ฑ์˜ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์„ ๊ต์ฒดํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด Firebase์˜ Firestore๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ์ƒˆ๋กญ๊ฒŒ Nestjs๋กœ ์„œ๋ฒ„๋ฅผ ์ž‘์„ฑํ•˜๋Š” kingofbackend.tistory.com ์„ค์น˜ $ npm install uuid uuid ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ install ํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฅ˜ UUID๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. v1: ํƒ€์ž„์Šคํƒฌํ”„(์‹œ๊ฐ„) ๊ธฐ..

article thumbnail
Node.js์— ๊ด€ํ•œ 10๊ฐ€์ง€ ํ›„ํšŒ - ๋ผ์ด์–ธ ๋‹ฌ๊ณผ Deno.js
... 2021. 4. 11. 22:25

Node.js๋ฅผ ๊ฐœ๋ฐœํ•œ ๋ผ์ด์–ธ ๋‹ฌ(Ryan Dahl) ์€ ์ง€๋‚œ 2018๋…„ 6์›” Javascript ์ตœ๋Œ€ ์ฝ˜ํผ๋Ÿฐ์Šค์ธ JSConf 2018์—์„œ 10 Things I Regret About Node.js ์„ ๋ฐœํ‘œํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„ Node.js๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ƒ๊ฒผ๋˜ ํ›„ํšŒ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ƒˆ๋กœ์šด ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋Ÿฐํƒ€์ž„์ธ Deno.js๋ฅผ ๋ฐœํ‘œํ•˜์˜€์Šต๋‹ˆ๋‹ค. (Node์—์„œ de๋ฅผ no ์•ž์— ์“ด๊ฑด๋ฐ ์ด๊ฑฐ ๋ˆˆ์น˜์ฑ„๊ณ  ์†Œ๋ฆ„์ด.. ) ๋ผ์ด์–ธ ๋‹ฌ์€ Node.js ๋งŒ๋“ค๋ฉด์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ HTTP ์„œ๋ฒ„(Event driven HTTP server)์— ์ƒ๋‹นํžˆ ๋งŽ์€ ์‹ฌํ˜ˆ์„ ๊ธฐ์šธ์˜€์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ Node.js๋ฅผ ๋งŒ๋“ค๋•Œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ์ด ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ HTTP ์„œ๋ฒ„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ์—ฌ์ „ํžˆ Node๋Š” ์ข‹์€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋Ÿฐํƒ€์ž„์ด๋ผ๊ณ  ๋ง..

article thumbnail
[JavaScript] ๊ธฐ๋‹ค๋ ค! ๋จน์–ด! async/await ์ดํ•ดํ•˜๊ธฐ
... 2021. 3. 28. 12:14

์šฐ๋ฆฌ๋Š” ๋ญ‰์น˜์—๊ฒŒ ๊ธฐ๋‹ค๋ ค! ๋จน์–ด! ํ›ˆ๋ จ์„ ๊ต์œก์‹œํ‚ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ญ‰์น˜์˜ ๋‹ค๋ฆฌ์— ๊ฐ„์‹์„ ์˜ฌ๋ ค๋†“๊ณ  ๋จน์–ด!๋ผ๊ณ  ํ–ˆ์„ ๊ฒฝ์šฐ ๋ญ‰์น˜๊ฐ€ ๊ฐ„์‹์„ ๋จน์—ˆ์œผ๋ฉด ํ•˜๋Š”๋ฐ ๋ญ‰์น˜๋Š” ์ฃผ์ธ์˜ ๋ช…๋ น์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ (๋น„๋™๊ธฐ ๋ฐฉ์‹ ๋ฌธ์ œ) ์ œ๋ฉ‹๋Œ€๋กœ ๊ฐ„์‹์„ ๋จน์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค...๋ญ‰์น˜์—๊ฒŒ ํ›ˆ๋ จ(์ผ๋ฐ˜ ์ฝœ๋ฐฑํ•จ์ˆ˜)์„ ์‹œ์ผœ๋ณด์•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ญ‰์น˜๋Š” ๋ง์„ ๋“ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ญ‰์น˜๋Š” ๋ง๋ชปํ•˜๋Š” ๊ฐ•์•„์ง€๋ผ ํ˜ผ๋‚ผ ์ˆ˜๋„ ์—†๊ณ  ์šฐ๋ฆฌ๋Š” ๋‚œ์ฒ˜ํ•œ ์ƒํ™ฉ์— ๋น ์ ธ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹คใ… ใ…  ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋” ์‰ฌ์šด ํ›ˆ๋ จ๋ฐฉ๋ฒ•(async/await)์œผ๋กœ ๋ญ‰์น˜๋ฅผ ๊ต์œก์‹œํ‚ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค!! # ๋น„๋™๊ธฐ์™€ ๋™๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€์žฅ ์‹ ๊ฒฝ์จ์•ผ ํ•˜๋Š” ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋ถ„๋ช… ๋กœ์ง์€ ๋งž๊ฒŒ ์ง ๊ฑฐ ๊ฐ™์€๋ฐ ๊ฒฐ๊ณผ๊ฐ’์ด undefined ์ด๊ฑฐ๋‚˜ ์•Œ์ˆ˜ ์—†๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์‹ญ์ค‘ํŒ”๊ตฌ ๋น„๋™๊ธฐ ๋ฌธ์ œ๋ฅผ ์˜์‹ฌํ•ด..

article thumbnail
[Server] ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ(Load Balancer)๋Š” ์™œ ํ•„์š”ํ• ๊นŒ?
... 2021. 3. 15. 16:55

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

article thumbnail
[Linux] OpenSSH ์„œ๋ฒ„ ๊ตฌ์ถ•ํ•˜๊ธฐ
... 2021. 3. 9. 20:05

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์›๊ฒฉ์œผ๋กœ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” OpenSSH ์„œ๋ฒ„์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. OpenSSH ์„œ๋ฒ„๋Š” ํ…”๋„ท ์„œ๋ฒ„์™€ ๊ธฐ๋Šฅ์ด ๋™์ผํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ณด์•ˆ์ƒ ์•ˆ์ „ํ•˜์ง€ ๋ชปํ–ˆ๋˜ ํ…”๋„ท์— ๋น„ํ•ด OpenSSH๋Š” ํ›จ์”ฌ ์•ˆ์ „ํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OpenSSH๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ ์•”ํ˜ธํ™” ํ•œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. # OpenSSH ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณด์ž ์ €๋Š” VMware workstation ํ™˜๊ฒฝ์—์„œ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ SSH ์„œ๋ฒ„์˜ ํŒจํ‚ค์ง€ ์ด๋ฆ„์€ "openssh-server" ์ด๊ณ  ์„œ๋น„์Šค(๋ฐ๋ชฌ) ์ด๋ฆ„์€ "sshd"์ž…๋‹ˆ๋‹ค. rpm -qa openssh-server ๋ช…๋ น์–ด๋กœ ํ˜„์žฌ ์„ค์น˜๋˜์–ด ์žˆ๋Š” openssh-server๋ฅผ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค.(CentOS๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ openssh๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค๊ณ  ํ•ฉ..

article thumbnail
[shell] ์…ธ ์Šคํฌ๋ฆฝํŠธ for๋ฌธ๊ณผ while๋ฌธ ๋ฐ˜๋ณต๋ฌธ
... 2021. 3. 9. 19:40

!/bin/sh hap=0 for i in 1 2 3 4 5 6 7 8 9 10 do hap=`expr $hap + $i` done echo "1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ํ•ฉ:"$hap hap2=0 for((i=0;i

article thumbnail
[shell] ์…€ ์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 3. 9. 16:52

์‚ฌ์šฉ์ž ์ •์˜ํ•จ์ˆ˜ #!/bin/sh myFunction(){ echo "ํ•จ์ˆ˜ ์•ˆ์œผ๋กœ ๋“ค์–ด์™”์Œ" return } echo "ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค." myFunction echo "ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค." exit 0 ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์‚ฌ์šฉ #!/bin/sh sumFunction(){ echo "$1 $2 ๊ฐœ์˜ ํ•ฉ์€ `expr $1 + $2` ์ž…๋‹ˆ๋‹ค" } echo "ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” $1 ์™€ $2 ์ž…๋‹ˆ๋‹ค" sumFunction $1 $2 #!/bin/sh myFunction(){ result=`expr $1 + $2` return "$result" } temp=$(myFunction 1 2) echo $? export ์™ธ๋ถ€ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. #!/bin..

article thumbnail
[shell] ์…ธ ์Šคํฌ๋ฆฝํŠธ if๋ฌธ๊ณผ case๋ฌธ
... 2021. 3. 8. 21:05

#if ๋ฌธ if [ ์กฐ๊ฑด ] then ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰ fi *์ฃผ์˜ํ• ์  : '[ ์กฐ๊ฑด ]' ์‚ฌ์ด์˜ ๊ฐ ๋‹จ์–ด์—๋Š” ๋ชจ๋‘ ๊ณต๋ฐฑ์ด ์žˆ์–ด์•ผ ํ•จ if [ ์กฐ๊ฑด ] ๋Œ€์‚ฐ if test ๋„ ๊ฐ€๋Šฅ #!/bin/sh if [ "woo" = "woo" ] then echo "์ฐธ์ž…๋‹ˆ๋‹ค" fi if test "woo1" = "woo1" then echo "์ฐธ2์ž…๋‹ˆ๋‹ค" fi exit 0 ์กฐ๊ฑด๋ฌธ์— ๋“ค์–ด๊ฐ€๋Š” ๋น„๊ต ์—ฐ์‚ฐ์ž ๋ฌธ์ž์—ด ๋น„๊ต ๊ฒฐ๊ณผ "๋ฌธ์ž์—ด1" = "๋ฌธ์ž์—ด2" ๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™์œผ๋ฉด ์ฐธ "๋ฌธ์ž์—ด1" != "๋ฌธ์ž์—ด2" ๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™์ง€ ์•Š์œผ๋ฉด ์ฐธ -n "๋ฌธ์ž์—ด" ๋ฌธ์ž์—ด์ด NULL์ด ์•„๋‹ˆ๋ฉด ์ฐธ -z "๋ฌธ์ž์—ด" ๋ฌธ์ž์—ด์ด NULL์ด๋ฉด ์ฐธ ์‚ฐ์ˆ  ๋น„๊ต ๊ฒฐ๊ณผ ์ˆ˜์‹1 -eq ์ˆ˜์‹2 ๋‘ ์ˆ˜์‹์ด ๊ฐ™์œผ๋ฉด ์ฐธ ์ˆ˜์‹1 -ne ์ˆ˜์‹2 ๋‘ ์ˆ˜์‹์ด ๊ฐ™์ง€ ์•Š์œผ๋ฉด..

article thumbnail
[Server] ๋ฆฌ๋ˆ…์Šค ์ปค๋„(kernel)์ด๋ž€?
... 2021. 3. 2. 09:33

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

article thumbnail
[Python] sort()์—์„œ์˜ key lambda ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 2. 22. 21:34

ํŒŒ์ด์ฌ์˜ sort() ํ•จ์ˆ˜๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ๋˜ํ•œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์ด ๋ฉ๋‹ˆ๋‹ค. sort(reverse=True) ๋˜๋Š” reverse()๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ๋„ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” key ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” sort()์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. key ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” sort() ํ•จ์ˆ˜๋Š” key ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋˜๊ณ  ๊ธฐ๋ณธ๊ฐ’์€ ์˜ค๋ฆ„์ฐจ์ˆœ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ lambda์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์ค€ 1181๋ฒˆ ๋ฌธ์ œ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ ๊ฐ™์€ ๊ฒฝ์šฐ sort(key)๋ฅผ ์ด์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. data_list = ['but','i','wont','hesitate','no','more','no','more','it','cannot','wait','im','yo..

profile on loading

Loading...