๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“– Note

(43)
VSCODE * JDK SE ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฒ„์ „ ์‚ฌ์šฉ์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •! VSCODE์—์„œ Java๊ด€๋ จ ํ™•์žฅํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•˜๋ฉด Language Support for Java(TM) by Red Hat์„ ์„ค์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ์นœ๊ตฌ๊ฐ€ ๋ฒ„์ „ 0.65.0๋ถ€ํ„ฐ ์ตœ์†Œ JDK๋ฅผ 11๋กœ ๋ณ€๊ฒฝํ•ด๋ฒ„๋ ธ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿผ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์“ฐ๋Š” ์‚ฌ์šฉ์ž๋Š” VSCODE๋ฅผ ๋ชป ์“ฐ๋Š” ๊ฒƒ์ธ๊ฐ€!! ๊ทธ๋Ÿด๋ฆฌ๊ฐ€ ์—†๋‹ค. runtime ํ™˜๊ฒฝ ๋Œ€์‘์„ ์œ„ํ•ด setting.json์— java.configuration.runtimes์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. setting.json์— ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ ์ด๋‹ค! ์–ด๋–ป๊ฒŒ? ์•„๋ž˜์™€ ๊ฐ™์ด ๐Ÿ˜‰! ๊ฐ€. ์ขŒ์ธก ์ƒ๋‹จ File > Preference > Setting ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ Ctrl + , ๋กœ ์„ค์ •์ฐฝ์„ ์—ด์–ด์ค€๋‹ค. ๋‚˜. ๊ฒ€์ƒ‰์ฐฝ์— java home์„ ๊ฒ€์ƒ‰ ํ›„ java:Home ์–ด์ฉŒ๊ตฌ ๋ฐ”๋กœ ์•„๋ž˜ Edit..
VSCODE * Extensions. ํ•œ๊ตญ์–ด ์„ค์ • vscode UI๋ฅผ ํ•œ๊ธ€ํ™” ์‹œ์ผœ์ค€๋‹ค. ์„ค์น˜ ํ›„ locale์—์„œ ์„ค์ •๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค. ์˜์–ด๋กœ ์ตํžˆ์ž๋Š” ๋งˆ์Œ ๊ฐ€์ง์€ ์žˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ํ˜น์‹œ ๋ชจ๋ฅด๋‹ˆ ๋ฒˆ์—ญํ•ด์ฃผ์‹  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋ฅผ ๋“œ๋ฆฌ๋ฉฐ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ๋†“๋Š”๋‹ค ๐Ÿ™„!!
VSCODE * Template04. GitHub Theme ์„ค์น˜๋Š” ์•ˆ ํ–ˆ๋Š”๋ฐ ์™ ์ง€ ์ž๊พธ ๋ˆˆ์ด ๊ฐ€๋Š” ํ…Œ๋งˆ. ํ˜น์‹œ๋ผ๋„ ๋‚˜์ค‘์— ์ฐพ๊ณ  ์‹ถ์„์ง€ ๋ชจ๋ฅด๋‹ˆ๊นŒ ์ผ๋‹จ ๋ชจ์…”๋‘๊ธฐ๋กœ ํ•œ๋‹ค.
VSCODE * Template03. Horizon Theme ์„์–‘์ด ์ง€๋Š” ๋“ฏํ•œ ๋Š๋‚Œ์ด๋ฉด์„œ ํ•‘ํฌํ•‘ํฌํ•˜๋‹ค. ์•„์ฃผ ๊ฐ€๋” ์ด๋Ÿฐ ํ•‘ํฌํ•‘ํฌํ•œ ์ฐฝ์„ ์›ํ•  ๋•Œ๊ฐ€ ์žˆ์–ด์„œ ๋‹ค์šด ๋ฐ›์•˜๋‹ค. Dark ๋ชจ๋“œ๊ฐ€ ์žˆ๊ธด ํ•˜์ง€๋งŒ ์„์–‘๋Š๋‚Œ์ด ์ „ํ˜€ ์•ˆ ๋‚˜๊ธฐ๋„ ํ•˜๊ณ  ํ•‘ํฌ์ƒ‰ ๊ธฐ์šด๋„ ์—†์–ด Bright๋งŒ ์“ธ ๊ฒƒ ๊ฐ™๊ธด ํ•˜๋‹ค.
VSCODE * Template02. Ayu ์˜ˆ์˜๋‹ค..!! ๋ญ”๊ฐ€ ์•„๊ธฐ์ž๊ธฐํ•œ ๊ฒƒ ๊ฐ™์œผ๋ฉด์„œ๋„... ๊น”๋”ํ•œ! ๊ธ€์”จ๊ฐ€ ๊ฐ€๋กœ๋กœ ์ข€ ๋” ๋‚˜์™”์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žŒ์ด ์žˆ๊ธด ํ•˜์ง€๋งŒ.. ํฌ๊ฒŒ Light ๋ฒ„์ „๊ณผ Mirage, Dark 3๊ฐ€์ง€ ๋ฒ„์ „์ด ์žˆ๊ณ , ์ฝ”๋”ฉ์ฐฝ ๋ฉ”๋‰ด์ฐฝ์˜ ์ƒ‰์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฒ„์ „์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. Light ๋ฒ„์ „์ด ์ œ์ผ ์˜ˆ๋ป๋ณด์ธ๋‹ค.
VSCODE * Template01. Noctis ์˜ˆ์˜๊ณ  ์•„๊ธฐ์ž๊ธฐํ•ด ๋ณด์ด๋Š” ํ…œํ”Œ๋ฆฟ์ด๋‹ค. ์–ด๋‘์šด ์ƒ‰๋“ค ๋ณด๋‹ค๋Š” ๋ฐ์€ ์ƒ‰์— ์ ์šฉํ–ˆ์„ ๋•Œ ๋” ์˜ˆ๋ป๋ณด์ธ๋‹ค. ์•„๋ž˜ ์ ์šฉ ์ด๋ฏธ์ง€๋ฅผ ์ฒจ๋ถ€ํ•ด๋†“์•˜๋‹ค. ์ด๋ฏธ์ง€๋งŒ ๋ณด๊ณ  ์ƒ๊ฐํ–ˆ์„ ๋•Œ ์ฃผ์„๊ณผ ์ž๋ฃŒํ˜• ๊ทธ๋ฆฌ๊ณ  ๋ช‡๋ช‡ ์˜ˆ์•ฝ์–ด๋“ค์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜๋‚˜์‹ถ๋‹ค. ์˜ˆ์˜๊ธดํ•œ๋ฐ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ํ•  ๋•Œ๋Š” ๋‹ค๋ฅธ ํ…Œ๋งˆ๋กœ ๋ฐ”๊ฟ”์ฃผ์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค๐Ÿคฃ..
Notion * ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ๊ฐ€? ๊ธฐ๋ณธ์ ์œผ๋กœ Free ๋ฒ„์ „์€ ๋‹น์—ฐํžˆ ๋ชจ๋‘๊ฐ€ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹จ, 1000 Block์˜ ์ œํ•œ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์‹ค ์ƒ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋งŽ์ง€๋Š” ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๊ฐ€??? ํ˜„์žฌ(2020/03/10)๋กœ์จ๋Š” ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๋ฐ”๋กœ, Notion for Education ๊ต์œก ๊ณ„์ •(๋Œ€ํ•™๊ต, ๋Œ€ํ•™์›)์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ต์œก ๊ณ„์ •? .ac ๋˜๋Š” .edu ๋“ฑ ๊ต์œก ๊ด€๋ จ ๋„๋ฉ”์ธ์ด ํฌํ•จ๋œ ์ด๋ฉ”์ผ ๊ณ„์ •์„ ์ด์•ผ๊ธฐ ํ•œ๋‹ค! ๊ต์œก ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฉ”์ผ ์ธ์ฆ์„ ํ•˜๋ฉด Personal ์š”๊ธˆ์ œ๋ฅผ 0์›์— ๋ฌด์ œํ•œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค! ๊ตญ๋‚ด์—์„œ ํ•™์ƒ์ด ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฉ”์ผ ๋„๋ฉ”์ธ์€ ๊ต์œก ๊ธฐ๊ด€์ด ์‚ฌ์šฉํ•˜๋Š” ๋„๋ฉ”์ธ์ธ .ac.kr ์ด ์•„๋‹Œ ๊ฒฝ์šฐ๊ฐ€ ๋‹ค์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ต์œก ๊ธฐ๊ด€์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ ์›น ๋ฉ”์ผ์ด๋ผ๋ฉด ์‹œ๋„ํ•ด..
Monkey Patch (๋ฉํ‚ค ํŒจ์น˜) A monkey patch is a way for a program to extend or modify supporting system software locally (affecting only the running instance of the program). ํ”„๋กœ๊ทธ๋žจ์„ ํ™•์žฅํ•˜๊ฑฐ๋‚˜, ๋กœ์ปฌ ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ง€์›ํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค(์˜ค์ง ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค). ๐Ÿ‘‰ Monkeypatching the Standard Library ๋Ÿฐํƒ€์ž„์ƒ์—์„œ ํ•จ์ˆ˜, ๋ฉ”์„œ๋“œ, ์†์„ฑ์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ์ด์•ผ๊ธฐํ•œ๋‹ค. ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์—†๋Š” ์„œ๋“œํŒŒํ‹ฐ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ์ค‘ ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ํ™•์žฅ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ๋Ÿฐํƒ€์ž„ ์‹คํ–‰์ค‘ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ์˜ค๋ธŒ์ ํŠธ์— ์ ์šฉ๋œ๋‹ค. ๊ฐ€๋Šฅํ•œ ์–ธ์–ด๋กœ๋Š” Javascript, Python, PHP,..
SSL(TLS)์— ๋Œ€ํ•˜์—ฌ, ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๋Š” ๋Œ€์นญํ‚ค/๊ณต๊ฐœํ‚ค python genvet module์„ ์‚ดํŽด๋ณด๋‹ค๊ฐ€ SSL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ ํ˜€์žˆ๋Š” ๊ฒƒ์„ ๋ณด์•˜๋‹ค. ๋Œ€์ฒด SSL์ด ๋ฌด์—‡์ผ๊นŒ ์‹ถ์–ด์„œ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ผ๋‹จ SSL์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ์ „์— HTTP์™€ HTTPS์˜ ์ฐจ์ด์ ์„ ๋ณด์ž๋ฉด, HTTP๋Š” Hypertext Transfer Protocol๋กœ ํ†ต์‹  ๊ทœ์•ฝ์ค‘์— ํ•˜๋‚˜๋‹ค. HTTPS๋Š” HTTP์—์„œ S๊ฐ€ ์ถ”๊ฐ€๋œ ํ˜•ํƒœ๋กœ ๋ณด์•ˆ์ด ๊ฐ•ํ™” ๋œ HTTP์ธ๋ฐ, S๋Š” Over Secure Socket Layer์˜ ์•ฝ์ž์ด๋‹ค. ๊ฐ€๋” HTTPS์™€ SSL์„ ๊ฐ™์€ ๊ฒƒ ์ฒ˜๋Ÿผ ์–˜๊ธฐํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋Š”๋ฐ, ์—„๋ฐ€ํžˆ ๋งํ•ด์„œ ๋‹ค๋ฅธ ๊ฒƒ์ด๋‹ค. ์œ„์˜ ์‚ฌ์ง„์—์„œ ์ฒ˜๋Ÿผ, SSL์ด ์ ์šฉ๋  ์ˆ˜์žˆ๋Š” Application Layer๋“ค์€ HTTP, FTP, Telnet ๋“ฑ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ  ๊ทธ ์ค‘์—์„œ HTTP์— ์ ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜..
Pycharm * ์‚ฌ์šฉ์‹œ ๋ฐ‘์ค„, ๋ฌผ๊ฒฐ ํ‘œ์‹œ ๋‹ค๋ฅธ ์—๋””ํ„ฐ์—์„œ ์ฝ”๋”ฉํ•œ ๋‚ด์šฉ์„ Pycharm์œผ๋กœ ์˜ฎ๊ฒผ๋Š”๋ฐ ์ฝ”๋“œ ์ „์ฒด์— ๋ฌผ๊ฒฐ์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด ์•„๋‹Œ๊ฐ€.. ์•Œ์•„๋ณด๋‹ˆ Pycharm์—๋Š” PBP(Python Enhance Proposal)8์ด๋ผ๋Š” ์ฝ”๋”ฉ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ํ•ด๋‹น ๋ฐ‘์ค„์€ ์ด ๊ฐ€์ด๋“œ์— ๋งž์ด ์•Š๋‹ค๊ณ  ์•Œ๋ ค์ฃผ๋Š” ๋‚ด์šฉ์ด๋‹ค. ์ด ์ฝ”๋”ฉ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ํ•ด์ง€ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋”ฐ๋ผ์„œ ์ฝ”๋”ฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ํ•ด์ง€๋ฅผ ์›ํ•  ๊ฒฝ์šฐ ์•„๋ž˜ ์ฐธ์กฐ๋‚ด์šฉ์—์„œ ํ‚ค์ฝค๋ฐฑ์‹  ๊ฐœ๋ฐœ ์ด์•ผ๊ธฐ๋ฅผ Clickํ•˜๋ฉด ๋œ๋‹ค. PBP8 -- Style Guide for Python Code ๊ฐ€์ด๋“œ๋ฅผ ์•Œ์•„๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์šฐ์˜ PBP8์„ Clickํ•˜๋ฉฐ ๋œ๋‹ค. Thanks for ๐Ÿ™ˆ ํ‚ค์ฝค๋ฐฑ์‹  ๊ฐœ๋ฐœ ์ด์•ผ๊ธฐ
Codecov? ๋ญ๋‹ˆ ๋„ˆ.. ์ฝ”๋“œ.. ์ปค๋ฒ„๋ฆฌ์ง€...๋Š” ๋˜...OTL PyPI์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ด๋Ÿฐ ํ‘œ์‹œ๋ฅผ ๋ณด์•˜๋‹ค. ์ฝ”๋“œ๊ฐ€ ์™„์„ฑ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป์ธ๊ฐ€ ํ•˜๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋ฌด์ง€ํ•œ ๋‚˜๋Š”..๐Ÿ˜‚ Codecov๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ฐพ์•„๋ณด์•˜๊ณ  ์ € ์€ํ–‰๋‚˜๋ฌด ์žŽ ํ‘œ์‹œ๊ฐ€ ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์ธก์ •ํ•ด์ฃผ๋Š” ๋„๊ตฌ๋“ค ์ค‘ ํ•˜๋‚˜์ธ ๊ฒƒ์„ ์•Œ์•˜๋‹ค. PyPI์—์„œ ์ € ํ‘œ์‹œ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•˜๋Š”๋ฐ ์‚ฌ์ดํŠธ ์ด๋ฆ„๋„ Codecov์ด๋‹ค. ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€( Code Coverage )๋ž€? ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ฝ”๋“œ๋ฅผ ์ž˜ ์ปค๋ฒ„ํ•˜๊ณ  ์žˆ๋Š” ๊ฐ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ ์ค‘ ํ•˜๋‚˜, ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋…ผํ•  ๋•Œ ์–ผ๋งˆ๋‚˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋˜์—ˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ํ•œ๋‹ค. . . .๐Ÿ™„;; ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์†Œํ”„ํŠธ์›จ์–ด ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์„ ๋•Œ ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ์–ผ๋งˆ๋‚˜ ์‹คํ–‰๋˜์—ˆ๋ƒ๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ ์ด๋‹ค! = ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ํ…Œ์ŠคํŠธ๋œ ์ •๋„..
์ฝ”๋ฃจํ‹ด vs ์Šค๋ ˆ๋“œ Python network modules๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋‹ค ๋ณด๋‹ˆ, ๊ฐ ๊ฐ์˜ network module๋“ค์ด coroutine์„ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์—ˆ๋‹ค๋Š” ๋ฌธ์žฅ์„ ์ž์ฃผ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ๋”๋ถˆ์–ด Coroutine์ด Thread์™€ ๋น„์Šทํ•˜๊ฒŒ ์‹คํ–‰์ค„๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ๋™์ž‘์ด ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ๋„, ๊ทธ๋ž˜์„œ ๋‘ ๊ฐ€์ง€์˜ ์ฐจ์ด์ ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋‘ ๊ฐ€์ง€์˜ ์ฐจ์ด์ ์„ ์•Œ๊ธฐ์ „์— ์•Œ์•„๋‘ฌ์•ผํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋™์‹œ์„ฑ๊ณผ ๋ณ‘๋ ฌ์„ฑ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์žˆ๋‹ค. >> 2020/03/05 - [๐Ÿ“– Note] - ๋™์‹œ์„ฑ vs ๋ณ‘๋ ฌ์„ฑ ( Concurrency vs Parallelism ) At stackoverflow Coroutines are a form of sequential processing: only one is executing at any given time..