tech.ssut

Node, Go, and Python enthusiast.

10๊ธฐ๊ฐ€๋น„ํŠธ ํ™ˆ ๋„คํŠธ์›Œํฌ ๊ตฌ์ถ•ํ•˜๊ธฐ
networking

10๊ธฐ๊ฐ€๋น„ํŠธ ํ™ˆ ๋„คํŠธ์›Œํฌ ๊ตฌ์ถ•ํ•˜๊ธฐ

๊ทธ๋ƒฅ ์žฌ๋ฏธ๋กœ 10๊ธฐ๊ฐ€๋น„ํŠธ ํ™ˆ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ์ €๋ ดํ•˜๊ฒŒ ๋ง์ด์ฃ . ์žฅ๋น„๋ถ€ํ„ฐ ๊ณจ๋ผ๋ณด๋Š”๋ฐ ํ‰์†Œ homelab subreddit์„ ์ž์ฃผ ๋ˆˆํŒ…ํ•˜๊ณ  ์žˆ์—ˆ๋˜์ง€๋ผ ์žฅ๋น„ ์„ ์ •์—๋Š” ํฐ ์–ด๋ ค์›€์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋•์งˆ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ์‹  ์Šฌ๋ž™ ์ฃผ์‹(WORK) [https://finance.yahoo.com/quote/WORK/]๊ณผ ์ด๋”๋ฆฌ์›€(ETH)์— ๊นŠ์€ ๊ฐ์‚ฌ๋ฅผ ํ‘œํ•ฉ๋‹ˆ๋‹ค. (__) Router: Ubiquiti UniFi Dream Machine

๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ๊ฐ€๋ณ๊ฒŒ ์จ๋ณด๋Š” M1 ๋งฅ ๋ฏธ๋‹ˆ ์‚ฌ์šฉ๊ธฐ
applesilicon

๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ๊ฐ€๋ณ๊ฒŒ ์จ๋ณด๋Š” M1 ๋งฅ ๋ฏธ๋‹ˆ ์‚ฌ์šฉ๊ธฐ

์• ํ”Œ์ด ์ž์ฒด M1 ์นฉ์„ ํƒ‘์žฌํ•œ M1 ๋งฅ ๋ฏธ๋‹ˆ๋ฅผ ๋ฐœํ‘œํ•˜๊ณ  ๋ฏธ๊ตญ ๋™๋ถ€ ํ‘œ์ค€์‹œ ๊ธฐ์ค€ ๋‹น์ผ ์ €๋…์— ๋ฐ”๋กœ ์ฃผ๋ฌธ์„ ๋„ฃ๊ณ  11/28(ํ† )์— M1 ๋งฅ ๋ฏธ๋‹ˆ๋ฅผ ์ง‘์—์„œ ์ˆ˜๋ นํ•˜๊ฒŒ ๋˜์–ด ์ง€๊ธˆ๊นŒ์ง€ ์‚ฌ์šฉํ•ด๋ณธ ํ›„๊ธฐ๋ฅผ ๋‚จ๊ฒจ๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์˜: ์กธ๋ฆฐ ์ƒํƒœ์—์„œ ์“ด ๊ธ€์ด๋ผ ์˜์‹์˜ ํ๋ฆ„๋Œ€๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.โ€Œโ€Œ ์šฐ์„  ๋งฅ ๋ฏธ๋‹ˆ๋ฅผ ์‚ฐ ์ด์œ ๋ฅผ ๋ง์”€๋“œ๋ฆฌ๋ฉด: ๋ชจ๋‹ˆํ„ฐ 2๊ฐœ ์—ฐ๊ฒฐํ•˜๋ ค๊ณ ์š”.

M1 ๋งฅ์—์„œ Docker ์‚ฌ์šฉํ•˜๊ธฐ
docker

M1 ๋งฅ์—์„œ Docker ์‚ฌ์šฉํ•˜๊ธฐ

Click here for English version. [https://tech.ssut.me/using-docker-on-apple-silicon/] ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๋งฅ์—์„œ Docker๋Š” ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋Œ์•„๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Docker Desktop on Mac๋Š” Apple์ด ๋งŒ๋“  Hypervisor.framework๋ฅผ ์ด์šฉํ•ด [https://github.com/moby/hyperkit] alpinelinux๋ฅผ ๊ฐ€์ƒ๋จธ์‹  ์œ„์— ๋„์šด ํ›„ remote๋กœ ์ ‘์†ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์—ฌ๊ธฐ์„œ ์•ˆ๋‚ดํ•˜๋Š” ๋ฐฉ์‹์€ ์‹ค์ œ Docker Desktop on Mac์ด ๋™์ž‘ํ•˜๋Š”

5G NSA ๋„คํŠธ์›Œํฌ ์‚ดํŽด๋ณด๊ธฐ (์•„๋งˆ์ถ”์–ดํŽธ)
3gpp

5G NSA ๋„คํŠธ์›Œํฌ ์‚ดํŽด๋ณด๊ธฐ (์•„๋งˆ์ถ”์–ดํŽธ)

์–ผ๋งˆ ์ „๋ถ€ํ„ฐ U+ MVNO๋กœ 5G ๋ง์„ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์›” 3๋งŒ ์› ํ›„๋ฐ˜๋Œ€์— 180GB ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์š”๊ธˆ์ œ๋ผ ์ด์ •๋„ ๊ฐ€๊ฒฉ์ด๋ฉด 5G๋ฅผ ์“ฐ๊ธฐ์— ์ถฉ๋ถ„ํžˆ ๋‚ฉ๋“์ด ๊ฐ€๋Š” ๊ฐ€๊ฒฉ์ด๊ธฐ๋„ ํ–ˆ๊ณ , ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์›ํ”Œ๋Ÿฌ์Šค 8 ํ”„๋กœ๊ฐ€ 5G๋ฅผ ์ง€์›ํ•ด์„œ ํ˜ธ๊ธฐ์‹ฌ์ด ์ƒ๊ฒจ์„œ ๋ง์ด์ฃ . ๋ฌธ์ œ๋Š” ์ด๊ฒŒ ์™ธ์‚ฐํฐ์ด๋ž€ ๊ฑฐ์˜€์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ์ค‘๊ตญ์—์„œ ์ง๊ตฌํ•œ ๋ชจ๋ธ(๋ชจ๋ธ๋ช…: IN2020)์ด๋ผ NR78 ๋Œ€์—ญ(ํ•œ๊ตญ ํ†ต์‹ 

NodeJS์—์„œ async_hooks์„ ์ด์šฉํ•ด ์š”์ฒญ์˜ ๊ณ ์œ ํ•œ context ์‚ฌ์šฉํ•˜๊ธฐ
nodejs

NodeJS์—์„œ async_hooks์„ ์ด์šฉํ•ด ์š”์ฒญ์˜ ๊ณ ์œ ํ•œ context ์‚ฌ์šฉํ•˜๊ธฐ

> ์ด ๊ธ€์€ Guillaume Bession [https://twitter.com/geekuillaume]์˜ ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ผ์™€์žˆ๋Š” Getting per-request context in NodeJS with async_hooks [https://blog.besson.co/nodejs_async_hooks_to_get_per_request_context/] ๊ธ€์˜ ๋ฒˆ์—ญ๊ธ€์ž…๋‹ˆ๋‹ค. ์ €๋Š” ์ตœ๊ทผ NodeJS๋กœ HTTP ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๋˜ ๋„์ค‘ ๋ฌธ์ œ๋ฅผ ๋งž๋‹ฅํŠธ๋ฆฌ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ œ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋งŽ์€ ๋ถ€๋ถ„์—์„œ

2018๋…„์— ํฌ๋กฌ์€ ์ •๋ง๋กœ ๋น ๋ฅผ๊นŒ์š”?
web browser

2018๋…„์— ํฌ๋กฌ์€ ์ •๋ง๋กœ ๋น ๋ฅผ๊นŒ์š”?

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

[๋ฒˆ์—ญ] OpenSSH์˜ ๊ธฐ๋ณธ ํ‚ค ์•”ํ˜ธํ™”๋Š” ํ‰๋ฌธ๋ณด๋‹ค ๋ชปํ•ฉ๋‹ˆ๋‹ค
security

[๋ฒˆ์—ญ] OpenSSH์˜ ๊ธฐ๋ณธ ํ‚ค ์•”ํ˜ธํ™”๋Š” ํ‰๋ฌธ๋ณด๋‹ค ๋ชปํ•ฉ๋‹ˆ๋‹ค

> ์ด ๊ธ€์€ Latacora์—์„œ ์ž‘์„ฑํ•œ The default OpenSSH key encryption is worse than plaintext [https://latacora.singles/2018/08/03/the-default-openssh.html]์˜ ๋ฒˆ์—ญ๊ธ€์ž…๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ ์ง€์‹์ด ๊นŠ์ง€ ์•Š๊ณ  ์˜๋ฌธ ๋ฒˆ์—ญ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค์—ญ์ด ๋งŽ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋งŽ์„ ๊ฑฐ๋ผ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.) ์ด์— ๋Œ€ํ•ด์„œ๋Š” ๊ฐœ์ธ ์ด๋ฉ”์ผ๋กœ ๋ฌธ์˜์ฃผ์‹œ๋ฉด ๋ฐ”๋กœ ์ˆ˜์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ตœ๊ทผ์—

[๋ฒˆ์—ญ] ์ž˜๊ฐ€์š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค: 100๊ฐœ์˜ ๋ฌธ์ œ์  ํˆฌ์„ฑ์ด๋ฅผ 1๊ฐœ์˜ ์Šˆํผ์Šคํƒ€๋กœ
microservices

[๋ฒˆ์—ญ] ์ž˜๊ฐ€์š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค: 100๊ฐœ์˜ ๋ฌธ์ œ์  ํˆฌ์„ฑ์ด๋ฅผ 1๊ฐœ์˜ ์Šˆํผ์Šคํƒ€๋กœ

> ์ด ๊ธ€์€ Segment์˜ Alexandra Noonan์ด ์ž‘์„ฑํ•œ Goodbye Microservices: From 100s of problem children to 1 superstar [https://segment.com/blog/goodbye-microservices/]์˜ ๋ฒˆ์—ญ์ž…๋‹ˆ๋‹ค. ์Œ์ง€์— ์ˆจ์–ด์„œ ์‚ด์•„์˜ค์ง€ ์•Š์•˜๋”๋ผ๋ฉด, ๋‹น์‹ ์€ ์•„๋งˆ๋„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์˜ค๋Š˜๋‚ ์˜ ์•„ํ‚คํ…์ฒ˜๋ž€ ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์„๊ฒ๋‹ˆ๋‹ค. ํŠธ๋ Œ๋“œ์™€ ํ•จ๊ป˜ ์„ฑ์žฅํ•˜๋ฉฐ Segment๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ตœ๊ณ ์˜ ์„ ํƒ์œผ๋กœ [https://segment.com/blog/why-microservices/] ์ดˆ๊ธฐ์— ๋น ๋ฅด๊ฒŒ

Node.js v10.5.0 Worker PR FAQ
nodejs

Node.js v10.5.0 Worker PR FAQ

> ์ด ๊ธ€์€ nodejs 10.5.0์— ์‹คํ—˜์  ๊ธฐ๋Šฅ(experimental feature)์œผ๋กœ ์ถ”๊ฐ€๋œ worker์˜ PR FAQ๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์›๋ฌธ์€ https://gist.github.com/benjamingr/3d5e86e2fb8ae4abe2ab98ffe4758665 ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Worker PR FAQ The content here is mostly copied material written by Anna (@addaleax) and people on the PR and copied

Chrome 64, Node.js v10์—์„œ๋Š” GC๊ฐ€ markํ•˜๋Š” ๋™์•ˆ ์•ฑ์ด ๋ฉˆ์ถ”์ง€ ์•Š์Šต๋‹ˆ๋‹ค
nodejs

Chrome 64, Node.js v10์—์„œ๋Š” GC๊ฐ€ markํ•˜๋Š” ๋™์•ˆ ์•ฑ์ด ๋ฉˆ์ถ”์ง€ ์•Š์Šต๋‹ˆ๋‹ค

> ์ด ๊ธ€์€ V8 Javascript Engine ๊ณต์‹ ๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ผ์˜จ ์•„๋ž˜ ๊ธ€์˜ ๋ฒˆ์—ญ๊ธ€์ž…๋‹ˆ๋‹ค. Concurrent marking in V8 https://v8project.blogspot.com/2018/06/concurrent-marking.html ์›๊ธ€ ์ž์ฒด๊ฐ€ ์‰ฌ์šฐ๋ฉด์„œ ์ด๋”ฐ๊ธˆ์”ฉ ์–ด๋ ค์šด ์„ค๋ช…์ด ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์˜ค์—ญ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ“๊ธ€ ๋˜๋Š” ์ด๋ฉ”์ผ๋กœ ์ˆ˜์ • ํ”ผ๋“œ๋ฐฑ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. :) V8์˜ ์ง€์†์ ์ธ ๋งˆํ‚น ์ด ๊ธ€์—์„œ๋Š” ์ง€์†์ ์ธ ๋งˆํ‚น(

์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์˜ˆ์ œ
programming

์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์˜ˆ์ œ

> ์ด ๊ธ€์€ Jorin [https://jorin.me/]๋‹˜์ด ์ž‘์„ฑํ•˜์‹  An Example of How Software Becoms Complicated [https://jorin.me/an-example-of-how-software-becomes-complicated/]์˜ ๋ฒˆ์—ญ๊ธ€์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์บ์‹œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ํ™•์ธํ•ด๋ด…์‹œ๋‹ค. ์šฐ๋ฆฌ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž์ฃผ ์ฝ”๋“œ๋Š” ๊ฐ„๊ฒฐํ•ด์•ผ ํ•˜๊ณ  ๋ณต์žก์„ฑ์„ ์ปจํŠธ๋กค ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ด๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์„ ๋“ฃ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ์™€์ผ๋“œ์นด๋“œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋  ์ˆ˜๋„ ์žˆ๋Š” ์ด์œ 
security

๋‹น์‹ ์ด ์™€์ผ๋“œ์นด๋“œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋  ์ˆ˜๋„ ์žˆ๋Š” ์ด์œ 

> ์ด ๊ธ€์€ Why you probably should not use a wildcard certificate [https://gist.github.com/joepie91/7e5cad8c0726fd6a5e90360a754fc568]์˜ ๋ฒˆ์—ญ๊ธ€์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ Let's Encrypted๋Š” ๋ฌด๋ฃŒ ์™€์ผ๋“œ์นด๋“œ ์ธ์ฆ์„œ [https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579] ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ทธ๋™์•ˆ ๊ฐ’๋น„์ŒŒ๋˜ ์ƒ์šฉ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋˜ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋ฅผ ์—†์• ์ค„ ์ข‹์€

WSL(Windows Subsystem for Linux) ์‚ฌ์šฉ๊ธฐ ๋ฐ ArchLinux๋กœ์˜ ์ „ํ™˜
WSL

WSL(Windows Subsystem for Linux) ์‚ฌ์šฉ๊ธฐ ๋ฐ ArchLinux๋กœ์˜ ์ „ํ™˜

Windows 10์— WSL(Windows Subsystem for Linux) [https://msdn.microsoft.com/en-us/commandline/wsl/about] ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜๊ธฐ ์ด์ „์—๋Š” SSH๋ฅผ ํ†ตํ•ด ๋ฏธ๋ฆฌ ์…‹ํŒ…ํ•ด๋‘” ์šฐ๋ถ„ํˆฌ ์„œ๋ฒ„์— ์›๊ฒฉ์œผ๋กœ ์ ‘์†ํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์›๊ฒฉ์œผ๋กœ ์ ‘์†ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์ ์„ ๋น„๋กฏํ•ด ์œˆ๋„์šฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ„ฐ๋ฏธ๋„ ์•ฑ๋“ค์€ 24๋น„ํŠธ ํŠธ๋ฃจ์ปฌ๋Ÿฌ๋ฅผ ์ œ๋Œ€๋กœ ์ง€์›ํ•˜์ง€ ์•Š๊ณ  ์†๋„๊ฐ€ ๋Š๋ฆฐ ๋ฌธ์ œ์  ๋•Œ๋ฌธ์— ์ฃผ๋กœ

Peephole: CPython์€ ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š”๊ฐ€
python

Peephole: CPython์€ ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š”๊ฐ€

๋งŽ์€ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋Š” "์‹คํ–‰ ์„ฑ๋Šฅ(์†๋„)"์ด ์ข‹์ง€ ์•Š๋‹ค๋Š” ํฐ ๋‹จ์ ์„ ์ง€๋‹ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด JIT ๋Ÿฐํƒ€์ž„์„ ๋ถ™์ด๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์ž ์Šค์Šค๋กœ ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ ๊ฐœ๋ฐœ์ž ์Šค์Šค๋กœ ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค๊ณ  ํ•˜์—ฌ(์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ) ํˆฌ์žํ•˜๋Š” ์‹œ๊ฐ„์— ๋น„ํ•ด ํฐ ์„ฑ๋Šฅํ–ฅ์ƒ์„ ์–ป๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. Python์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ํ•ด์†Œ์‹œํ‚ค๊ณ ์ž Peephole์ด๋ผ๋Š” Python

Goroutines vs Threads
Go

Goroutines vs Threads

Google์ด Go ์–ธ์–ด๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ ์ดํ›„ ๋งŽ์€ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์šฉ ์œ ํ‹ธ๋ฆฌํ‹ฐ, ์„œ๋ฒ„๊ฐ€ Go๋กœ ์งœ์—ฌ์ง€๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ๋งค ์—…๋ฐ์ดํŠธ๋งˆ๋‹ค ์—„์ฒญ๋‚œ ์„ฑ๋Šฅ ํ–ฅ์ƒ๊ณผ ๋ฐœ์ „์œผ๋กœ ์ด์ œ ์–ด๋””์„œ๋“  Go ์–ธ์–ด๋กœ ์งœ์—ฌ์ง„ ํ”„๋กœ๊ทธ๋žจ์„ ์‰ฝ๊ฒŒ ๋งŒ๋‚  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ด์ „์— ์˜ฌ๋ ธ๋˜ HTTP Server Benchmark [https://tech.ssut.me/2017/04/17/http-server-benchmark/] ๊ธ€์—์„œ ๋ณด์—ฌ์ค€ Go์˜ ์„ฑ๋Šฅ์€ ๋งŽ์€ ์ด๋“ค์—๊ฒŒ

Docker(container)์˜ ์ž‘๋™ ์›๋ฆฌ: namespaces and cgroups
docker

Docker(container)์˜ ์ž‘๋™ ์›๋ฆฌ: namespaces and cgroups

๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ(LXC) ๊ธฐ์ˆ ์ด ๋“ฑ์žฅํ•œ ์ดํ›„๋กœ ์ „๊ฐ€์ƒํ™”(full virtualization) ๋ฐ ๋ฐ˜๊ฐ€์ƒํ™”(para virtualization)์˜ ์‹œ๋Œ€๊ฐ€ ์ €๋ฌผ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. Docker๋Š” LXC์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์„ ์ด์šฉํ•ด ๋งŒ๋“  ์ปจํ…Œ์ดํ„ฐ ๊ด€๋ฆฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค [https://en.wikipedia.org/wiki/Microservices] ์ „ํ™˜์€ ๋ฌผ๋ก  DevOps, ํ…Œ์ŠคํŒ… ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ๋งŽ์€ ์‚ฌ๋ž‘์„ ๋ฐ›๊ณ  ์žˆ์–ด ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ ๊ตฌํ˜„์ฒด์˜ ์‚ฌ์‹ค์ƒ(

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ํŒŒํ—ค์น˜๊ธฐ: 2. Python bytes
Hack The Virtual Memory

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ํŒŒํ—ค์น˜๊ธฐ: 2. Python bytes

์ด ๊ธ€์—์„œ ์šฐ๋ฆฌ๋Š” ์•ž์„œ ์•Œ์•„๋ดค๋˜ 1. C strings & /proc [https://tech.ssut.me/2017/08/04/hack-the-virtual-memory-c-strings-and-proc/]์™€ ๋น„์Šทํ•œ ์ผ์„ ํ•ด๋ณผ ๊ฒ๋‹ˆ๋‹ค, ํ•˜์ง€๋งŒ ์ด๋ฒˆ์—๋Š” ์‹คํ–‰์ค‘์ธ Python 3 ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋๋‚˜์ง€ ์•Š์„๊ฒ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Python 3 ๋‚ด๋ถ€๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ผ์žˆ๋Š” ์ง€๋„ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค. > ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—: ์ด ๊ธ€์€ Holberton school [https:

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ํŒŒํ—ค์น˜๊ธฐ: 1. C strings, /proc ์•Œ์•„๋ณด๊ธฐ
Hack The Virtual Memory

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ํŒŒํ—ค์น˜๊ธฐ: 1. C strings, /proc ์•Œ์•„๋ณด๊ธฐ

์ด ๊ธ€์€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•Œ์•„๋ณด๋Š” ๊ฐ„๋‹จํ•œ ์—ฐ์žฌ๊ธ€์˜ ์ฒซ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ์•ฝ๊ฐ„์˜ CS(computer science) ์ง€์‹์„ ์Šต๋“ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค, ํ•˜์ง€๋งŒ ์ข€ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ง์ด์ฃ . > ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—: ์ด ๊ธ€์€ Holberton school [https://blog.holbertonschool.com/]์—์„œ ์—ฐ์žฌ๋˜๊ณ  ์žˆ๋Š” Hack The Virtual Memory [https://blog.holbertonschool.com/hack-the-virtual-memory-c-strings-proc/]์˜ ๋ฒˆ์—ญ๋ณธ์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ