๐ป๊ฐ๋ฐ์์๊ฒ ๋์์ด ๋๋
LINE ๋ฉ์์ง ์๋ฒ๊ฐ ์ํด ํธ๋ํฝ์ ๋๋นํ๋ ๊ณผ์ - LINE ENGINEERING
- ๋ผ์ธ ๋ฉ์ ์ ์ ํน์ดํ ๋ฌธํ ์ค ํ๋๊ฐ ๋ฐ๋ก
"์ ๋ ๋์"
, ๋ผ์ธ ๊ฐ๋ฐ์๋ค์ ์ฑ ์ ์ฝ์ด๋ณด๋ ๋ค๋ค, 12์ 31์ผ์ ๋ชจ์ฌ์ ์ ๋ ๋์ ์ดํ ํด๊ทผ์ ํ๋ค๊ณ ํ๋๋ฐ, ์ฌ์ค ๊ฒฝํ ํด๋ณด๊ณ ์ถ์ ๋ฌธํ์ด๊ธฐ๋ ํ๋ค. ๊ทธ๋งํผ ๋ผ์ธ ๋ฉ์ ์ ํ์ ์ฃผ๋ ์ ๋ฌด์ธ๋ฐ, ์ด๋ฅผ ์ํด ๋๋น ํ๋ ๊ณผ์ ์ ๋ํด ๋ด๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณArmeria
๋ฅผ ์ ๊ทน ๋์ ํ๋ ๊ฒ์ ์ ์ ์์๊ณ ,Spring framework
์ ๊ฐ์ด ์ธ ์๋ ์๋ค๋ ์ ์ด ๋งค๋ ฅ์ ์ด๊ธด ํ๋ค. ๋ฌผ๋ก ,Armeria
๋ ๊ทธ๋ฅ ์์ฒด๋ก ์จ๋ ์์ ์ฑ์ด ์๋ ๊ฒ ๊ฐ๋ค. ์จ ๋ณด๊ณ ์ถ๊ธด ํ๋ค.
SIํ์ฌ์ ์ ์ฌํ๊ธฐ ์ ์ฝ์ผ๋ฉด ์ข์ ๊ธ - SI์ ๋จ์
- ์ฌ์ ํ ๋ฐ๋์ง ์์ ๋ฌธํ์ธ ๊ฒ ๊ฐ๋ค. ๋ด๊ฐ ๋ํ ์กธ์
์ ๋ถํฐ๋
"SI๋ ๊ฐ์ง ๋ง์๋ผ"
๋ ์ ๋ฐฐ๋ค์ ์กฐ์ธ์ ๋ค์๋ค. ์ผ๋จ ๊ฐ๋ ์๊ฐ ๊ฐ๋ฏธ ์ง์ฅ์ด๋ผ ๋น ์ ธ ๋์ค๊ธฐ ์ฝ์ง ์๋ค๊ณ ๋ง์ด๋ค. ๊ทธ๋ฐ๋ฐ, ์ด๋ฐ ๋ฌธํ๋ฅผ ๊ฐ์ง ๊ณณ์ ๋ด๊ฐ ๋ฐ์ ๋ค์ฌ ๋์๋ค๋ฉด, ๋๋ ์๋ง ๊ฐ๋ฐ์๋ฅผ ํฌ๊ธฐ ํ์ผ๋ฆฌ๋ผ...๐ญ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ,SI
์๋ ์กฐ๊ธ์ฉ ๋ณํ๋ ์ค๋ ์ค์ด๋ผ ๋ฏฟ๊ณ ์๋ค.
์ธ์์ ๋์ ์ฝ๋๋ ์๋ค.
- ์ด ๋ถ์ ๋ง์ฒ๋ผ, ๋์ ์ฝ๋๋ ์๋ค. ๋๊ตฐ๊ฐ๋ ์ดํดํ๊ธฐ ์ฌ์ด ์ฝ๋์ด๋ผ๋, ํ์์ ๊ทธ ์ฝ๋๊ฐ ์ดํดํ๊ธฐ ์ด๋ ค์ด ์ฝ๋ ์ผ ์๋ ์๋ค.
์ฆ, ๋๋ง์ ์ฝ๋๊ฐ ์ ๋ต์ ์๋๋ผ๋ ์๋ฆฌ์ด๋ฉฐ, ํด๋ฆฐ ์ฝ๋๋๋ผ๋, ํ์๋ค์ ์ดํด ์์ค์ด ๊ทธ ์์ค์ด ์๋๋ผ๋ฉด, ๋์ด ์ฌ๋ ค์ฃผ๊ฑฐ๋? ์๋๋ฉด ๋ด๊ฐ ์ ๋นํ ์์ค์ ์ฝ๋๋ฅผ ๋ง๋ค์ด ๋์๊ฐ๋๊ฒ ์ข๋ค๊ณ ์๊ฐ ํ๋ ํธ์ด๋ค.
๊ฒฐ๊ตญ, ํ์๋ค ๋ชจ๋๊ฐ ๊ฐ์ ์์ค์ ์ฝ๋ ์์ฐ์ ํด์ผ ํ๋ค. ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ๋ง๋๋๊ฒ ์ ๋ง ์ด๋ ต๋ค.
LINE ์ ์ SW ๊ฐ๋ฐ์ ์ฝ๋ฉ ํ ์คํธ, ์ด๋ ๊ฒ ๋ง๋ค์ด์ก์ต๋๋ค - LINE ENGINEERING
LINE
์์ ์ ๊ท ๊ฐ๋ฐ์๋ฅผ ์ฑ์ฉํ๊ธฐ ์ํด ๊ฐ๋ฐ์ ์ฝ๋ฉ ํ ์คํธ๋ฅผ ์๋ ๋ถํฐ ๊ฐํธํ๊ธฐ ์์ํ๋ค๊ณ ํ๋ค. ๋๋ ์ด๋ฐ ๋ณํ๊ฐ ์ ๋ง ์ข๋ค๊ณ ์๊ฐ ํ๋ค. ์๊ณ ๋ฆฌ์ฆ ๋ํ๋ก ๋ณ์ง ๋์ด ๋ฒ๋ฆฐ,SW ๊ฐ๋ฐ์ ์ฝ๋ฉ ํ ์คํธ๊ฐ ์ด๋ ๊ฒ ์ค์ง์ ์ธ ๋ฌธ์ ๋ก ๋ณํ
ํ๋ ๊ฒ์ ์ข๋ค๊ณ ์๊ฐ ํ๊ณ , ๋ค๋ฅธ ํ์ฌ๋ค๋ ์๊ณ ๋ฆฌ์ฆ ๋ํ์์ ๋ฒ์ด ๋ฌ์ผ๋ฉด ์ข๊ฒ ๋ค.
TDD
๋ ์ฝ์ง ์์ ์์ญ์ด๊ธด ํ๋ค. ์ต๊ด์ ์์ญ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๋๊ตฌ๋ ํ ์คํธ ์ฝ๋ ์ง๊ณ ์ถ์ด ํ๋ค. (๋ฌผ๋ก , ๊ทธ๋ ์ง ์์ ์ฌ๋๋ ์์ ๊ฒ์ด๋ค.) ์กฐ๊ธ์ฉ ํ๋ จ ํ๋ ๊ฒ์ด ์ข๋ค๊ณ ์๊ฐ ํ๋ ํธ์ด๊ณ ,TDD
๋ณด๋ค๋ ๋ถ๋ด๊ฐ์ ์ค์ผ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ทผํ๋ฉด ์ข๊ฒ ๋ค.๋ด ์๊ฐ์ ๊ตฌํ์ฒด๋ฅผ ๋จผ์ ์์ฑํด๋ ์ข๋ค. ๋ค๋ง, ํด๋น ๊ตฌํ์ฒด๋ฅผ ํ ์คํธ ํ ์ ์๋ ํ ์คํธ ์ฝ๋๋ฅผ ๋์ ๋ด ๋๋ฃ๊ฐ ๊ฐ์ด ์์ ์ฌ๋ฆฌ๋ ๊ณต๊ฐ์ ๋ณด๊ด ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
๐ปJava
Java ์์ธ์ฒ๋ฆฌ ( feat. Effective java )
- ๋งค๋ฒ ์๋ ๊ฒ ๊ฐ์ ๋๋์ด์ง๋ง, ๋ง์ ๋ด๊ฐ ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ ํ๊ณ ์๋๊ฑด๊ฐ? ์๋ฌธ์ด ๋ค์๋ค.
๋ค์ ์ข ๋ด์ผ ํ ์ฑ ์ Effective Java 3ํ์ธ๊ฐ...!
ํ ๋น์ ๋ด์ ๋ด์ ์ ๋ค๋ฆญ 1ํธ
Java Generics
์ ๋ํด ์ ๋ฆฌ๋ฅผ ์ ๋ง ์ ํด์ฃผ์ จ๋ค. ๋๋ ๋ดค๋ ๋ด์ฉ๋ค์ธ๋ฐ๋ ์๊ฐ์ด ์ง๋๋, ์ํ์ง๋ค. ๋ค์ ๋ณต์ต ์ค์ํ ๊ฒ ๊ฐ๋ค.
ํ ๋น์ ๋ด์ ๋ด์ ์ ๋ค๋ฆญ 2ํธ ๋๋ค์ ์ธํฐ์น์
๋๋ค์ ์ธํฐ์น์ ์ ๊ฐ๋
์ ์ ๋ฆฌ ํ ๊ธ์ธ๋ฐ, ์๊ฐ๋ณด๋ค ์ดํด๊ฐ ์ฝ์ง ์๋ค. ๊ณ์ ๋ด๋ ๋ด๋ Java๋ฅผ ์ ๋ ๊ฒ ์ฐ๋๊ฑฐ๊ตฌ๋ ์ถ๊ธฐ๋ ํ๋ค.
์กฐ๊ธ ๋ ๊ด์ฐฎ์ Rest Template 1๋ถ - Retryable
Retryable
์ ์ด์ฉํRest Template
์ ์๊ฐ ํ๋ ๊ธ์ด๋ค. ์ฝ์งํ ๋ฐฉ๋ฒ๋ค์ ๋ํด ์์ธํ๊ฒ ์๊ฐ ํ๊ณ ์๋ค.
์กฐ๊ธ ๋ ๊ด์ฐฎ์ Rest Template 2๋ถ - Circuit-breaker
Circuit-breaker
์ ๋ํด ์ค๋ช ํ๋ ๊ธ์ด๋ฉฐ, ์ค์ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ ๋จ๊ณ๋ณ๋ก ์ค๋ช ํ๊ณ ์์ด์ ๋ฐ๋ผ ํ๊ธฐ ์ฝ๋ค.
Learning Functional Programming with JavaScript - Anjana Vakil - JSUnconf
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ๊ธฐ๋ณธ
์ ์ ์ค๋ช ํด์ฃผ์๊ณ , ๋ฐํ์๊ฐ ์๊ณผ ๋ชจ๋ฆ์ ๋ํด ์ ํํ๊ฒ ์ ๊ตฌ๋ถ ํ์๋ ๋ถ๋ถ์ด ์ข์๊ณ , ์ข์ ๋ ํผ๋ฐ์ค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฐ ํด์ฃผ์ จ๋ค.
An introduction to functional programming
- ์์ ์ ํฌ๋ธ ์์์์ ๋์์ ๋ง์ด ๋ฐ์๋ค๊ณ ํ
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ์ค๋ช ๊ธ
์ด๋ค. ์กฐ๊ธ ๊ธธ์ง๋ง, ๋์์ด ๋ง์ด ๋๋ค.
- ๋ค์ด๋ฒ์์
FE ๋ด์ค ํ๋ ์ด์
์ ์งํํ๋๋ฐ, ์ด๋ฒ 4์์ ํด๋นํ๋ ๊ธ ๋ชจ์์ ๋๋ค. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ๊ธ์ด ์ข๊ณ , ๋ฒ์ญ๋ 5๋ฒ์งธ ๊ธ๊น์ง ๋ฒ์ญ์ด ๋์ด ์๋ค. ๊ทธ ์ธ์๋ ์ ์ตํ ๊ธ๋ค์ด ์๋ค.
๐ Tool
'๋งค์ผ ์จ๋ ์ข์' ๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋ ํ์ฅ ๊ธฐ๋ฅ 7๊ฐ์ง
VS Code plugin
์ถ์ฒ ๊ธ์ด๋ค.Data preview, jumpy
๊ฐ์ ํด๋ค์ ์ง์ง ์ ์ฉํด ๋ณด์ฌ์ ๋ณด์๋ง์ ์ค์น ํ๋ค.Jumpy
๋ ์ฌ์คvim
์ ์ ์ฐ๋ฉด ๋ฐ๋ก ์ ์ฉ์ด ๊ฐ๋ฅํ ๋ถ๋ถ์ธ๋ฐ, ์ฌ์ค ๊ทธ๋ ๊ฒvim
์ ํ๋ ์ ์ ๋ ์๋์ฌ์ ์ค์นํด๋ณด์๋ค.
immutable.js
๋ ์ตํ ๋ค์ด ๋ดค์ง๋ง,mori
๋ ์ฒ์ ๋ค์ด ๋ณด์๋ค.clojurescript
๊ธฐ๋ฐ์ผ๋ก ์์ฑ ๋์ด ์๊ณ ,JS
๋ก ๋ฐ๋ก ์ฌ์ฉ ํ๋ค๊ณ ํ๋๋ฐ, ๊ฐ์ธ ํ๋ก์ ํธ์์ ์จ๋ด์ผ๊ฒ ๋ค.
๋ฐ์ํ
'์น๋ ์ฐ๋ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ๋ฆฌ] ๊ทธ๋ฅ ์ ๋ฅ #์ํด๋ฆฌ๋ด์ค #73 (0) | 2020.04.12 |
---|---|
Apache Httpd ํ๋๋ก tomcat, node ์ด์ฉํ๊ธฐ? (0) | 2020.04.08 |
[์ ๋ฆฌ] ๊ทธ๋ฅ ์ ๋ฅ #์ํด๋ฆฌ๋ด์ค #71 (0) | 2020.03.29 |
[์ ๋ฆฌ] ๊ทธ๋ฅ ์ ๋ฅ #์ํด๋ฆฌ๋ด์ค #70 (0) | 2020.03.22 |
[์ ๋ฆฌ] ๊ทธ๋ฅ ์ ๋ฅ #์ํด๋ฆฌ๋ด์ค #69 (0) | 2020.03.15 |