๋งค์ผ๋งค์ผ ์ธ์ฌ์ดํธ ์ป๊ธฐ
- Development References
- CS
- Frontend
- JavaScript
- TypeScript
- Rust
- Go
- Swift
- Python
- Kotlin
- HTML
- CSS
- Webpack
- GraphQL
- DevOps
- Git
- Regex
- Shell script
- DataBase
-
- ์ฌ์ฌํ ๋ ๋ง๋ค ์งง๊ฒ ์งง๊ฒ ํ๋ฒ์ฉ ๋ณด๋ฉด ์ฌ๋ฏธ์์๋ฏ
-
ํจ์ํ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋๊ณ ์ถ๋ค๊ณ ?
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ๋ฒ์ ๋ํ์ฌ ์์ธํ๊ฒ ์ค๋ช ํ๊ณ ์๊ณ ๋๋ต์ ์ธ ํจ์ํ ํ๋ก๊ทธ๋จ์ด ๋ฌด์์ธ๊ฐ์ ๋ํ ์ค๋ช ์ด ๋์ด์๋ค
-
- JAVA ๋ฅผ ๋ฐํ์ผ๋ก ๊ธ์ด ์จ์ ธ์์ผ๋, ์ ๋ฐ์ ์ธ ์น์ ๋ํ ์ค๋ช ์ด๋ผ์ ํ๋ฒ์ฉ ์๊ฐ๋ ๋ ์ฝ์ผ๋ฉด ์ข๋ค
-
SOLID ์์น
- SOLID ์์น
- ๊ฐ์ฒด์งํฅ 5๋ ์์น
- [๋ฒ์ญ] ๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ SOLID ์์น
- ์ฝ๊ฒ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช
- ๊ฐ์ฒด์งํฅ ๊ฐ๋ฐ 5๋ ์์น (SOLID)
- SOLID
- SOLID ์์น
-
[IT ๊ฐ๋ฐ์์ ์ผํ ๋ ํ์ํ ๋ชจ๋ ๊ฐ๋ฐ์ง์] A to Z ์๋ฃ ๋ชจ์์ง
-
My Top5 APIs For New Developers
- ๊ฐ์ง๊ณ ๋๋ฉด ์ฌ๋ฐ์ด ๋ณด์ด๋ API ๋ค์ด ์๋ค. ํฌ์ผ๋ชฌ, ํ์ธ, Countries ์ ๋ณด ๋ญ ๋ฒ์ญ ๊ฐ์๊ฒ๋ ์๋๋ฐ ํน์ดํ ๋ฒ์ญ๋ ์กด์ฌํ๋ค (์๋ค์ด, ์ํ์ด , ๊ทธ๋ฅดํฌ์ด ๋ฑ)
-
Lerna(๐)๋ก ๋ชจ๋ ธ๋ ํฌ ํด๋ณด๋ฌ๋?
- ๋ชจ๋ ธ๋ ํฌ์ ๊ถ๊ธํ์ ์ด ์์๋๋ฐ ๊ฐ๋ ์ค๋ช ์ผ๋ก๋ ์ถฉ๋ถํ๋ฏ. ํนํ Learna ๋ฅผ ์ฌ์ฉํ์ฌ ๋๋๋๋ฐ facebook/react, babel ๋ฅผ ์๋ก ๋ค์ด์ฃผ๋ฉด์ ๋๋ต์ ์ธ ๊ฐ๋ ์ ์๋ ค์ค
-
์นด์นด์ค ์ด๋๋ฏผ UI ์ปดํฌ๋ํธ๋ฅผ ๋ชจ๋ ธ๋ ํฌ๋ก ๊ฐ๋ฐํ์ฌ ์ป์ ๊ฒ๋ค
-
The Architecture of Open Source Applications
- ๊ฑด์ถ๊ฐ๋ค์ ์์ฒ๊ฐ์ ๊ฑด๋ฌผ์ ๋ณด๊ณ , ๊ฑฐ์ฅ๋ค์ด ๋ง๋ ๊ฑด๋ฌผ์ ๋ํ ๋นํ๋ค์ ์ฐ๊ตฌํ๋๋ฐ, ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ค์ ์ง์ ์์ฑํ ์ฝ๋๋ง ์ ์๊ณ , ์ญ์ฌ์ ์ผ๋ก ์๋ํ ํ๋ก๊ธ๋ค์ ์ฐ๊ตฌํ์ง ์๋๋ค๋ ๋ฌธ์ ์์์ด ์๋ค. ๋๋ ์ด์ ๋ํ์ฌ ๊ฑฐ์ 100ํ๋ก ๋์ํ๊ฒ ๋๊ณ ์ด ํ์ด์ง๋ ์ ๋ช ํ ์คํ ์์ค ํฐํ๋ฆฌ์ผ์ด์ ์ ์ ์ด๋ฐ ์ค๊ณ๋ฅผ ํ๋์ง ์ค๋ช ํ๊ณ ์๋ค.
-
- ์ข์ ํ ์ดํ๋ก์ ์์ด๋์ด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์๋ฏ
-
2018๋ , ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ธฐ์ ๋ค
- React maintainer ์ธ Dan Abramov ๊ฐ ์ด ๊ธ์ ๋ฒ์ญํ ๊ธ, ์ด์ ์ ํธ๋ ๋ํ ๊ฐ๋ฐ์ ๋ณด๋ค ํ๋์ ๋ํด์ ๊น๊ฒ ์๋ ๊ฐ๋ฐ์๊ฐ ๋ ์ค์ํ๋ค๋ ๊ธ์ ๋ณธ์ ์ด ์๋๋ฐ, ๋น์ทํ ๋งฅ๋ฝ ๋ํ ๋๋ ์๊ทผ ๊ฐ๋ฉด ์ฆํ๊ตฐ์ด ์๋๊ฒ ๊ฐ์๋ฐ ์๋ง์ฌ์ ์๋์ฌ๋ ์์ ๊ฐ์ ํ์ํ ๋ฏ
-
- ๋จ์ํ ๊ฒ์ํ, ์นด์ดํฐ๊ฐ ์๋ ์ฌ๋ฌ๊ฐ์ง ์คํ์ผ๋ก ์ค์ ์๋น์ค ์ ๋์ ์์ ๋ฅผ ๋ณด์ฌ์ฃผ๋ Repo. ์ด๋ค ํ๋ก์ ํธ๋ฅผ ์งํํ ๋์ ์ฐธ๊ณ ํ๋ฉด ์ข์๋ฏ, ๋๋ ๋ด๊ฐ ํด๋ณธ ํ๋ก์ ํธ ์คํ์ ์ฌ๋ ค๋ณผ ์๋...
-
- ์ด ์ ์ฅ์๋ ๊ณ ์ ์ ์ธ ์ธํฐ๋ทฐ ์ง๋ฌธ์ธ "๋น์ ์ ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ google.com์ ์น๊ณ ์ํฐ๋ฅผ ๋๋ฅด๋ฉด ์ด๋ค ์ผ์ด ์๊ธธ๊น์?"์ ๋ํด ๋ตํด๋ณด๊ณ ์ ํฉ๋๋ค.
-
More challenging projects every programmer should try
- ๊ฐ๋ฐ์๊ฐ ๋์ ์ ์ผ๋ก ํด๋ณผ ๋งํ ํ๋ก์ ํธ, ์ถํ์ text web browser ๋ฅผ ๋ง๋ค์ด๋ณด๋ฉด ์ฌ๋ฏธ์์๋ฏ
-
- ๊ธฐ์ ๊ธฐ์ ๋ธ๋ก๊ทธ ๋ชจ์๋ค, ํ๋ฃจ์ ํ๋์ ๋ ๋ณด๋ฉด ์ข์๋ฏ
-
RN Java -> Kotlin, Object C -> Swift
- RN ์ ํ๋ก์ ํธ ์ธํ ์ด Java, Object C๋ก ๋์ด์๋๋ฐ ์ด๋ฅผ Kotlin, Swift๋ก ๋ณํํ๋ ํฌ์คํ
-
๋ฐ์ดํฐ ๋ก๊ทธ ์ค๊ณ, ๋ฐ์ดํฐ ๋ก๊น , ์ด๋ฒคํธ ๋ก๊ทธ ์ค๊ณ, ๋ฐ์ดํฐ QA์ ๋ชจ๋ ๊ฒ
- ๋์ค์ ๋ฐ์ดํฐ ์ค๊ณํ๋ ์์ ์ด ์ค๊ฒ ๋๋ฉด ํ์ํ ๊ฒ ๊ฐ์
- ํ์ฌ๋ ๋ค๋ฅธ ํ์์ด ํ๋ ์ค
-
- DOM ์ด๋ฒคํธ๋ฅผ ๋ณด๊ธฐ ์ฝ๊ฒ ํํ
-
์ค์๊ฐ ์ปค๋ฎค๋์ผ์ด์ ํ๋ซํผ ์คํ์์ค
- ์ค์๊ฐ ์ปค๋ฎค๋์ผ์ด์ ์ด ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์ด์ฃผ๋ ์คํ์์ค ํ๋ซํผ, ๋ผ์ด๋ธ์ฑํ , ํ์ํตํ ๊ฐ์๊ฑฐ ๋ง๋ค๊ธฐ ์ซ ํ๋ค๊ฒ ๊ฐ์๋ฐ ์ด๊ฑฐ ์ด์ฉํ๋ฉด ๊ฐ๋จํ๊ฒ ๋ง๋ค ์ ์์๋ฏ.
- ์ด๋ฐ๊ฑฐ ๊ฐ๊ณ ํ ์ดํ๋ก์ ํธ ํ๋ํ๋ฉด ์ฌ๋ฏธ์์๋ฏ
-
Journey of a web page ๐ฃ๏ธ - How browsers work
- ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์น ์ฃผ์๋ฅผ ์ ๋ ฅํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ก ์ถ๋ ฅ๋๋ ์ฌ์ด์ ์ผ์ด๋๋ ์ผ๋ค์ ์ค๋ช ํด์ฃผ๋ ๊ธ
-
- ํํํ ๋ณด๋ฉด ์ข์ ๊ธฐ์ด์ ์ธ ๊ฒ๋ค
-
- ๐ Awesome lists about all kinds of interesting topics
- ๊ถ๊ธํ๊ฒ ์์ผ๋ฉด ์ฌ๊ธฐ์ ์ฐพ์๋ด๋ ๋ ๋ฏ
-
- URL ์ฐฝ์ ์ฃผ์๋ฅผ ํด๋ฆญํ์๋์ ์๊ธฐ๋ ์ผ...
-
ํด๋ฆฐ ์ฝ๋(Clean Code) ์์ฝ
- ์์ง ์ฝ์ด๋ณด์ง ๋ชปํ๊ณ ์ง์๋ ์๋ ์ฑ
- ์ฝ์ด๋ณด๊ณ ์์ฝ๋ณธ ๋น๊ตํด๋ณด๋ฉด ์ข์๋ฏ
- ๊นจ๋ํ ์ฝ๋๋?
- ์๋ฏธ ์๋ ์ด๋ฆ
- ํจ์
- ์ฃผ์
- ๊ฐ์ฒด์ ์๋ฃ๊ตฌ์กฐ
- '์๋ฐ๋ ๊ฐ์ฒด์งํฅ ์ธ์ด๋๊น ๋ฌด์กฐ๊ฑด ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ์ฝ๋ฉํด์ผ์ง!'๋ผ๋ ์๊ฐ์ ํ๋๋ฐ, ์ด ์ฑ ์์๋ ์ํฉ์ ๋ฐ๋ผ ์ ์ฐจ ์งํฅ์ ์ธ ๋ฐฉ๋ฒ์ ์ ํํ ์๋ ์๋ค๋ ๋ด์ฉ์ ๋ด๊ณ ์์๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ธ์ ๊น์ด์ ์์ ์ฝ๋๊น์ง ๋ฉ๋ชจ๋ฅผ ํด๋์๋ค. (์ธ์์ ์)
- ์ค๋ฅ ์ฒ๋ฆฌ
- ๋จ์ ํ ์คํธ
- ๋์์ฑ
-
Learn RegEx step by step, from zero to advanced.
- ์คํ ๋ฐ์ด ์คํ ์ผ๋ก RegEx ๋ฐฐ์ธ ์ ์๋๊ณณ
-
JWT: Ultimate How-To Guide With Best Practices In JavaScript
- JWT ํ ํฐ ๊ฐ์ด๋
- ํ๋ก ํธ/๋ฐฑ์๋ ํ ๋๋ ์ธ์ ์ ์ด์ฉํ๋ ๋ถ์ฐ ์๋ฒ๋ฅผ ํ ์์๋ JWT ํ ํฐ์ ์ด์ฉํ๋ฉด ์ข์
- access token ์ ์ํธํ ํ์ฌ ๋ง๋ฌ
- sub ์ ์ฌ์ฉ์ ์์ด๋๋ฅผ ์ ์ฅํ๊ณ ๋๋จธ์ง ํญ๋ชฉ์ ๋ฐ๋ก ์ฝ์ ์ ์์ผ๋ฏ๋ก ์ ์ฅํ์ง ์๋๊ฒ์ด ์ข์
- refresh token ์ ์ฌ์ฉํ๋๊ฒ์ ์ถ์ฒ
- access token ์ ์ดํ๋ฆฌ์ผ์ด์ ๋ฉ๋ชจ๋ฆฌ์ refresh token ์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ ์ธ์ ์คํ ๋ฆฌ์ง์ ์ ์ฅ
- access token ์ authorize header ์ ํฌํจํ์ฌ ์์ฒญ
- access token ๋ง๋ฃ์ refresh token ์ฌ์ฉํ์ฌ ์ฌ๋ฐ๊ธ
- access token ์ฌ๋ฐ๊ธ์ ๋น์ฐํ refresh token ๋ ์ฌ๋ฐ๊ธ
- ๋ก๊ทธ์์์ ๋ token invalidate
-
API Architecture โ Design Best Practices for REST APIs
- Learn basic of HTTP
- Do not return plain text
- Do not use verbs in uri
- Use plural nouns for resources (๋ณต์ํ ์ฌ์ฉ)
- Return the error details in the response body
- Pay special attention to HTTP status codes
- You should use HTTP status codes consistently
- GET: 200 OK
- PUT: 200 OK
- POST: 201 Created
- PATCH: 200 OK
- DELETE: 204 No Content
- Do not nest resources
- Handle trailing slashes gracefully
- Make use of the querystring for filtering and pagination
- Know the difference between 401 Unauthorized and 403 Forbidden
- Has the consumer not provided authentication credentials? Was their SSO Token invalid/timed out? ๐ 401 Unauthorized.
- Was the consumer correctly authenticated, but they donโt have the required permissions/proper clearance to access the resource? ๐ 403 Forbidden.
- Make good use of HTTP 202 Accepted
- Use a web framework specialized in REST APIs
-
ํ๋ก ํธ์๋์ THE TWELVE-FACTOR APP
- ์ต๊ทผ ๋ดค๋ ๊ธ ์ค์ ๊ทธ๋๋ง ๊ฐ๋ช ๊น์
- ์ฝ๋๋ฒ ์ด์ค
- ๋ฒ์ ๊ด๋ฆฌ๋๋ ํ๋์ ์ฝ๋๋ฒ ์ด์ค์ ๋ค์ํ ๋ฐฐํฌ
- ์๋น์ค ๊ฐ ์์กด์ฑ์ ๋ฎ์ถ๊ณ ๋ ๋ฆฝ๋ ์ปค๋ฎค๋์ผ์ด์ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๊ณ , ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด์ผํจ
- ๋ชจ๋ ธ๋ ํฌ ๋ฌธ์ ๊ฐ ์๋๋ผ ๋ฐฐํฌ์์ ๋ค๋ฅธ๋ฐ ์ข ์์ฑ์ด ์์ผ๋ฉด ์๋๋ค๋ ์ด์ผ๊ธฐ
- ์ข
์์ฑ
- ๋ช ์์ ์ผ๋ก ์ ์ธ๋๊ณ ๋ถ๋ฆฌ๋ ์ข ์์ฑ
- ์ข ์์ฑ์์ ๊ฐ์กฐํ๋๊ฒ์ ์ธ๋ถ ์์คํ ์ผ๋ก๋ถํฐ์ ๋ ๋ฆฝ
- FE์์๋ ์คํ์ ๊ด๋ จ๋ ์์กด์ฑ์
package.json
์ ์ ์ธํ๋ฉด ์์กด์ฑ ๊ด๋ฆฌํด(npm, yarn) ์ ํตํด ์์ฝ๊ฒ ์ค์นํ๊ณ ์คํํ ์ ์์ - ๋ ๋์ ๋ฒ์์ ์ข ์์ฑ์ ์ด์ผ๊ธฐํ๊ธดํจ node version ๊ฐ์ด
- ์ค์
- ํ๊ฒฝ(environment)์ ์ ์ฅ๋ ์ค์
- ๊ฐ๋ฐ, ์คํ ์ด์ง, ํ๋ก๋์ ๋ฑ์ ํ๊ฒฝ์ ๋ฐ๋ฅธ ๋ถ๋ฆฌ๊ฐ ํ์
- ์ด๋ฌํ ํ๊ฒฝ๋ณ์๋ฅผ ์ฝ๋ ๋ด๋ถ์ ๋์ง ์๊ณ ์ธ๋ถ๋ก ๋ถํฐ ์ฃผ์
๋ฐ์์ผ๋ก์จ
ํ๊ฒฝ์ผ๋ก ๋ถํฐ ๋ ๋ฆฝ
์ ์์ฑํจ
- ๋ฐฑ์๋ ์๋น์ค
- ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ฐ๊ฒฐ๋ ๋ฆฌ์์ค๋ก ์ทจ๊ธ
- ์ฌ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค๋ ์๋ํํฐ ์๋น์ค๋ฅผ ๋ณผ ์ ์์. ์๋ฅผ ๋ค์ด Sentry์์ ๋ก์ปฌ ๊ฐ๋ฐ์์ ๊ฐ๋ฐ ์ค์น๋ Sentry๋ฅผ ํ๋ก๋์ ๋ฐฐํฌ์์ ํด๋ผ์ฐ๋์ฉ Sentry๋ฅผ ์ด์ฉํ ์ ์์ด์ผํจ
- ๋น๋, ๋ฆด๋ฆฌ์ฆ, ์คํ
- ์ฒ ์ ํ๊ฒ ๋ถ๋ฆฌ๋ ๋น๋์ ์คํ ๋จ๊ณ
- ์ด ์์น์ ๋ง์กฑํด์ผ ๊ฐ๋ฐ๊ณผ ์ด์์ ๋ ๋ฆฝ์ด ์คํ ๋ ์ ์๋ค๊ณ ์๊ฐํจ
- ํ๋ก์ธ์ค
- ์ดํ๋ฆฌ์ผ์ด์ ํ๋ ํน์ ์ฌ๋ฌ๊ฐ์ ๋ฌด์ํ ํ๋ก์ธ์ค๋ก ์คํ
- ๋๋ถ๋ถ์ FE ํ๊ฒฝ์์๋ HTTP ์์ฒญ์ stateless ํ๊ณ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ์ ์ง์ผ์ง๊ณ ์์
- ํฌํธ ๋ฐ์ธ๋ฉ
- ํฌํธ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํด์ ์๋น์ค๋ฅผ ๊ณต๊ฐํจ
- ๋์์ฑ
- ํ๋ก์ธ์ค ์์น์ ์ง์ผฐ๋ค๋ฉด ๋์์ฑ ์์น๋ ๊ฐ๋จํ๊ฒ ์งํฌ ์ ์์.
- ํ๋ก์ธ์ค ์์น์ผ๋ก ๋ด๋ถ์ ์ํ๊ฐ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ์ํ์ผ๋ก ํ์ฅ(scale out) ์ด ๊ฐ๋ฅํจ
- ํ๊ธฐ ๊ฐ๋ฅ
- ๋น ๋ฅธ ์์๊ณผ ๊ทธ๋ ์ด์คํ ์ ง๋ค์ด์ ํตํด ์์ ์ฑ ๊ทน๋ํ
- ์ดํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ๋ฅผ ์์ ํ๊ฒ ํ ์ ์๋๊ฒ์ ๊ทธ๋ ์ด์คํ ์ ง๋ค์ด์ด๋ผ๊ณ ํจ
- ๊ฐ๋ฐ/ํ๋ก๋์
ํ๊ฒฝ ์ผ์น
- ๊ฐ๋ฐ, ์คํ ์ด์ง, ํ๋ก๋์ ํ๊ฒฝ์ ์ต๋ํ ๋น์ทํ๊ฒ ์ ์ง
- ๋ก๊ทธ
- ๋ก๊ทธ๋ฅผ ์ด๋ฒคํธ ์คํธ๋ฆผ์ผ๋ก ์ทจ๊ธ
- ์ด๋๋ฏผ ํ๋ก์ธ์ค
- admin/maintenance ์์ ์ ์ผํ์ฑ ํ๋ก์ธ์ค๋ก ์คํ
- ๋ฐฐํฌ ๊ด๋ จ ์คํฌ๋ฆฝํธ๋ฅผ ๋์ผ ์ฝ๋๋ฒ ์ด์ค์ ๋๊ธฐ
- ์ฌ๋ฌ ์ ํธ๋ฆฌ์ฑ ์คํฌ๋ฆฝํธ(codegen, git, eslint) ๋ฅผ ๊ฐ์ ์ฝ๋๋ฒ ์ด์ค์ ๋๊ธฐ
-
[๋ฒ์ญ] ์ฑ๊ธํ ์ถ์ํ์ ๊ดํ์ฌ - AHA Programming (Kent C. Dodds)
- '์ค๋ณต์ ์๋ชป๋ ์ถ์ํ๋ณด๋ค ๋น์ฉ์ด ๋ฎ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์๋ชป๋ ์ถ์ํ๋ณด๋ค๋ ์ค๋ณต์ ์ ํธํ์.'
- ์คํ๋ ค ์ฑ๊ธํ๊ฒ ์ถ์ํ ํ๊ธฐ ๋ณด๋ค ์ค๋ณต ์ฝ๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด ์๊ฐ ๋ณด๋ค ์ถ์ํ๊ฐ ์๋ ์๋ ์๊ณ ๋์ฑ ์ข์ ์ถ์ํ๊ฐ ๋์ฌ ์๋ ์๋ค.
-
- ๋ฌธ์ ์ ๊ทผ๋ณธ ์์ธ์ ์ฐพ์์..
- ํ๋ฉด ํ ์๋ก ์ด๊ฒ์ด ์ฐธ ์ค์ํ๊ฑฐ๋ผ๋ ์๊ฐ์ด ๋ ๋ค.
- ๋จ์ํ ํด๊ฒฐ ํ๊ธฐ ๋ณด๋จ ์ด ๋ฌธ์ ๊ฐ ์ ๋ฐ์ํ๋์ง ํ์ ํ๊ณ ์ ํํ ์์ธ ๊ท๋ช ์ด ๋๋ฉด, ๋์ ์ง์์ด ๋๊ณ ํ์ธต ๋ ๋ฐ์ ํ ์ ์๋๊ฒ ๊ฐ๋ค
- ์ฌ๊ธฐ์ ์ด์ผ๊ธฐํ๋ ๊ฒ์ฒ๋ผ ๊ทผ๋ณธ ์์ธ์ ์ฐพ์๊ฐ๋ฉด์ ์๋กญ๊ฒ ๋ฐฐ์ฐ๊ฒ ๋๊ฒ๋ค๋ ๋ง์์ง๊ฒ ๋๋ค
-
์ปดํจํฐ๊ณผํ ์ค์ค๋ก ํ์ตํ๊ธฐ
- ์ปดํจํฐ ๊ตฌ์กฐ๋ก ํ์ต์ ์ํ ๋ ํฌ. ๊ฐ๋์ฉ ํ๋ฒ์ฉ ๋ณด๋ฉด ์ข์๋ฏ. ์ญ์ ๊ธฐ๋ณธ์ด ํํํด์ผ ํ๋ค๋ ์๊ฐ
-
- ์ธ์ ๊ฐ๋ ๋ณด๊ฒ ์ง..... ์๊ณ ๋ฆฌ์ฆ
-
JavaScript๋ก ํธ๋ฆฌ, BFS, DFS ๊ตฌํํ๊ธฐ
- ๋๋น ์ฐ์ ํ์, ๊น์ด ์ฐ์ ํ์
-
- ์์ฃผ ์ฝ๊ฒ ์ค๋ช ์ ์ ํด๋์
- Application Layer: ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ชฉ์ ์ด ๋ฌ๋ผ์ ๊ฐ๊ฐ์ ๋ชฉ์ ์ ๋ง๊ฒ ํต์ ๊ท์ฝ ์ ๋ฆฌ (HTTP, SMTP)
- Presentation Layer: ์์ฉ ํ๋ก๊ทธ๋จ์ ํํ์ ํ์คํ
- Session Layer: ์ฌํ์! ํต์ ์ ์งํ๋ฐฉ๋ฒ๊ณผ ์ฐ๊ฒฐ์ ๋ด๋น
- Transport Layer: ๋ฐ์ดํฐ ์ ์ก ํ์์ ์ด์ ์ ๋ง์ถค - ๋ฐ์ดํฐ ์ ์ก์ ์ ๋ขฐ์ฑ ๋ณด์ฅ (TCP/UDP) - ์ฐ์ฒด๊ตญ ๊ฐ์ ์๋น์ค
- Network Layer: ์๋ก ๋ค๋ฅธ ๋คํธ์ํฌ ๊ฐ์ ํจ์จ์ ์ธ ํต์ ์ ์ํด์ IP, Subnet, Routing ๊ธฐ์ ์ด์ฉ
- DataLink Layer: ๊ณ ์ ์ฃผ์์ธ MAC ์ฃผ์๋ฅผ ์ด์ฉํด์ ์ ํํ ์ฃผ์๋ก์ ์ ์ก์ ์ฑ ์์ง๊ณ , ๋ฐ์ดํฐ ํ๋ฆ ์ ์ดํ๋ ์ ํธ์ฒด๊ณ ๊ฐ์ ์ญํ
- Physical Layer: ์ค์ ์ ์ก์ ์ํ ์ฅ์น๋ฅผ ์ด์ฉํด์ ์ ์ก
-
๋คํธ์ํฌ๋ ์ ์ด๋ ๊ฒ ์๊ธด๊ฑธ๊น?
- ๋คํธ์ํฌ ํต์ฌ ๊ฐ๋ ์ ์ฝ๊ฒ ์ค๋ช ํจ
-
npm package.json์์ ํธ๋(~) ๋์ ์บ๋ฟ(^) ์ฌ์ฉํ๊ธฐ
- ํธ๋๋ ๊ฐ๋จํ ๋งํ๋ฉด ํ์ฌ ์ง์ ํ ๋ฒ์ ์ ๋ง์ง๋ง ์๋ฆฌ ๋ด์ ๋ฒ์์์๋ง ์๋์ผ๋ก ์ ๋ฐ์ดํธํ๋ค.
- ์บ๋ฟ(^)์ Node.js ๋ชจ๋์ด ์ด SemVer์ ๊ท์ฝ์ ๋ฐ๋ฅธ๋ค๋ ๊ฒ์ ์ ๋ขฐํ๋ค๋ ๊ฐ์ ํ์์ ๋์ํ๋ค. ๊ทธ๋์ MINOR๋ PATCH๋ฒ์ ์ ํ์ํธํ์ฑ์ด ๋ณด์ฅ๋์ด์ผ ํ๋ฏ๋ก ์
๋ฐ์ดํธ๋ฅผ ํ๋ค.
- ์บ๋ฟ(^)์ ์ฌ์ฉํ ๋ 0.x.x์์๋ ๋ง์น ํธ๋์ฒ๋ผ ๋์ํด์ ์ง์ ํ ๋ฒ์ ์๋ฆฟ์ ๋ด์์๋ง ์ ๋ฐ์ดํธํ๋ค.
-
- A-Z ๋ก ์์ํ๋ ๋จ์ด๋ค๋ก Web development ๊ฐ๋ ์ ์ ๋ฆฌ
-
์ด์งํ๋ ค๋ ์น๊ตฌ์๊ฒ ๋ณด๋ด๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๋ฉด์ ์ง๋ฌธ
-
Microsoft Web Development for Beginners
- JS, CSS, HTML ๊ธฐ์ด ์์ ์ ๊ณต๊ฐํ๋ค. ๊ฐ ๊ฐ์ข๋ง๋ค ํด์ฆ์ ๊ณผ์ , ๋น๋์ค ๋ฑ์ด ํฌํจ๋์ด ์์ด ํ์ต์ ๋๋๋ค.
-
- Rome์ JavaScript ๋ฐ TypeScript ๊ฐ๋ฐ ์ ์ฌ์ฉํ๋ ํตํฉ ํด ์ฒด์ธ(CLI๋ VSCode ์ต์คํ ์ , ๋ฏธ๋์๋ ํ ์คํธ ๋ชฉ์ ์ผ๋ก API๋ฅผ ํตํด ์ฌ์ฉํ ์ ์๋)์ด๋ค. ๋ฒ๋ค๋ง, ์ปดํ์ผ, ๋ฌธ์ ์์ฑ, ํฌ๋งทํ , ๋ฆฐํ , ์์ถ(minification), ํ ์คํธ, ํ์ ๊ฒ์ฌ ๋ฑ์ ๋ชจ๋ ์์ ์ ํ๋์ CLI ์๋์์ ์ํํ ์ ์๋ โ์ฌ์ธ์โ ์๋ฃจ์ ์ ์งํฅํ๊ณ ์์ต๋๋ค.
-
- Deno๋ Node์ ๋น์ทํ ๋ฌธ์ ๋ฅผ ํธ๋ JavaScript, ๊ทธ๋ฆฌ๊ณ TypeScript๋ฅผ ์คํํ๊ธฐ ์ํ ์๋ก์ด Command-line Runtime์ ๋๋ค.
-
ํ๊ธ ์ด์ฑ ๊ฒ์๋ ์ง์ํ๋ ํผ์ง ๋ฌธ์์ด ๊ฒ์
- ๊ฐ๋จํ๊ฒ ์ ๊ทํํ์์ผ๋ก ํผ์ง ๋ฌธ์์ด ๊ฒ์์ ํ๊ฒ๋ ๋ง๋ค์ด์ค๋ค.
-
Create App - ํ๋ก ํธ์๋ ๋น๋ ์ค์ ์์ฑ๊ธฐ
- ์ฒ์ ์ฑ์ ๋น๋ ํ ๋ ํ์ํ ์์๋ค์ ์ถ๊ฐํด๋ณด๊ณ ํ ์คํธ ํด๋ณผ ์ ์๊ฒ ์
- ์ง๊ธ ๋ง๋ค๊ณ ์๋ react-format ๊ณผ ์์ฃผ ์ฐ๊ด์ด ์์ด ๋ณด์
-
- ESlint ์ Prttier ๋ฅผ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ ์ ๋ฆฌ๊ฐ ํ์คํ ํฌ์คํ ์ด๋ค!
-
- ESLint ์ค์ ์ ๊ดํ์ฌ...
-
ESLint + Prettier + React(CRA) + TypeScript + AirBnB ์ค์ ํ๊ธฐ
- ์ ๋ต์ด ๋ ์๋ eslint pretter typescript aribnb ์ค์
-
- ์ผ๋ฐ์ ์ธ data structure, ์๊ณ ๋ฆฌ์ฆ, ๊ธฐ๋ณธ ์น ๊ฐ๋ , HTML, CSS ๊ดํ์ฌ...
-
- Improve how you architect webapps
- Post
- 1์ฃผ์ผ์ ํ๋ฒ์ฉ ์ฝ์ผ๋ฉด ์ข์๋ฏ
-
Frontend Developer Resources 2022
- ์ ์ฉํ FE Resources
-
- ๋ฉด์ ๋ณด๊ธฐ ์ ์ ํ๋ฒ์ฉ ์๊ธฐํ๊ธฐ ์ข์๋ฏ
-
33 JavaScript Concepts Every Developer Should Know ๐ค๏ธ๐ฏ๏ธ
-
10 JavaScript Quiz Questions and Answers to Sharpen Your Skills
-
[JavaScript] ๋ฐฐ์ด์ ํน์ง (shift, unshift์ ํจ์จ์ฑ์ ๋ํ ์ ๊ณ )
-
Are We Ready to Replace Lodash?
- Lodash ํจ์๋ฅผ JS, RxJS ๋ก ๋ณ๊ฒฝ ํ ์๊ฐ ์๋๋ฐ ๊ทธ์ ๋ํ ๋ต๋ค์ ๋ช๊ฐ์ง ์ค๋ค. (๋ฑํ lodash ๊ฐ ํ์์๋ค๋...ํ์ง๋ง ์ฑ๋ฅ ์ธก์ ์ด ํ์ํด๋ณด์ด๊ธดํ๋ค) ๋์ค์ ํ๋ฒ ๋น๊ต ์ธก์ ํด๋ณด๊ณ ์ถ๋ค.
-
์์งค๋ก ๋ณด๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋์์๋ฆฌ
- Event Loop
- Hoisting
- Scope (Chain)
- the JavaScript Engine
- Prototypal Inheritance
- Generators and Iterators
- Promisese & Async/Await
-
- Javascript V8 ์์ง ๋์ ๋ฐฉ์ ๊ทธ๋ฆผ์ผ๋ก ๋ณด์ฌ์ค
- JavaScript Visualized Series' Articles ์ ๋น์ทํจ
-
Babel7๊ณผ corejs3 ์ค์ ์ผ๋ก ์ ์ญ ์ค์ผ ์๋ ํด๋ฆฌํ ์ฌ์ฉํ๊ธฐ
-
๋ชจ๋ JavaScript ํํ ๋ฆฌ์ผ ์ค ํด๋์ค ์์
- JavaScript ํด๋์ค์ ๋ํ ์ ๋ฆฌ
-
Test your JavaScript skills Series' Articles
- JS ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์๊ฐํ ๋ ๊ฐ๊ฐํ ํ๋ฉด ์ข์ ๋ฌธ์
-
JavaScript Event Loop And Call Stack Explained
- JS ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ค๋ช ๊ทธ ์ธ์๋ ๋๋ฒ์งธ ์๋ฆฌ์ฆ๋ก (JavaScript's Memory Management Explained) ์ด๊ฒ๋ ์๋ค.
-
JavaScript๋ก Shell Script ์์ฑํ๊ธฐ
- Shell Script๋ฅผ JavaScript๋ก ์์ฑ๊ฐ๋ฅํ๊ฒ๋ ๋ง๋๋ ํด
-
JavaScript๋ ์ ์ด๋ชจ์์ผ๊น? ์์ฝ
- ๋๋ ์ฝ์๋ ์ฑ ์ธ๋ฐ ์กฐ๊ธ ๋ํดํ๋ค ๋๊ผ๋ค. ์๊ฐ์ ์ ํ์ด ์ ์๋์ ๊ทธ๋ฌํ๋ฏ, ๋ฌดํผ ์์ฝํด์ฃผ์ด์ ์ฐธ ๊ฐ์ฌํจ.
-
Class์์ arrow function์ ์ฌ์ฉํ์ง ๋ง์์ผํ๋ ์ด์
- Class ์์ method ๋ก arrow function ์ ์ฌ์ฉํ๋ฉด ์์ข์ ์ด์ ๋ค (์ ๋ฆฌ๊ฐ ์๋์ด์๊ณ ํท๊ฐ๋ฆด๋๋ง๋ค ๋ค์ด์์ ๋ณด๋ฉด ์ฐธ ์ข๋ค)
-
์๋ฐ์คํฌ๋ฆฝํธ(JavaScript) ์์๊ณผ ํ๋กํ ํ์ ๊ฐ๋ ์ ๋ฆฌ
- ํท๊ฐ๋ฆฌ๋ ์์ ๋ฐ ํ๋กํ ํ์ ๊ฐ๋
- ์ถ๊ฐ๋ก ์์ํ ๋์ new Function() vs Object.create(Fucntion.prototype) ์ ์ฐจ์ด
-
Vanilla Javascript๋ก ์น ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
- ๋ค์๊ณผ ๊ฐ์ด ํ๋ ๋ชจ๋ ์น ํ๋ ์์ํฌ ๋์์ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋๋ ๊ธ
- ์ฝ์ด๋ณด๊ณ ์ง์ ๋ฐ๋ผํด๋ณด๋ฉด์ ํ์ฌ ๋ชจ๋ ์น ํ๋ ์์ํฌ ๋์์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ ธ์๋์ง ์ดํด ํ ์ ์์
- ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์น ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ
- ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ํ ๊ด๋ฆฌ ์์คํ ๋ง๋ค๊ธฐ
- ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ฐ์๋ ๋ง๋ค๊ธฐ
- ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก React UseState hook ๋ง๋ค๊ธฐ
-
[JavaScript] ํ๋กํ ํ์ (ProtoType) ์ดํดํ๊ธฐ
- JavaScript ํ๋กํ ํ์ ์ ๋ํ์ฌ ์ฝ๊ฒ ์ ์ค๋ช ํด๋์
-
JavaScript Decorators
-
- ๋๋ฉ์ธ ์ค์ฌ์ ์ปดํฌ๋ํธ -> Atomic Design -> Container/Presentational ๋ถ๋ฆฌ -> Custom hooks๋ฅผ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๊น์ง ์ปดํฌ๋ํธ๋ฅผ ๋๋ ๋ ๊ณ ๋ฏผํ๋ ๋ถ๋ถ์ด ๋ง์ด ๋ด๊ฒจ ์๋ค
-
useCallback๊ณผ React.Memo์ ํตํ ๋ ๋๋ง ์ต์ ํ
- useCallback์ ์ฌ์ฉํจ์ผ๋ก์ ๋ ๋๋ง ์ต์ ํ๊ฐ ์ด๋ป๊ฒ ์ผ์ด๋๋์ง ์ ์ค๋ช ๋์ด ์๋ค
-
๋ฆฌ์กํธ(React)๋ ์ ์ฐ๋ ๊ฑด๋ฐโ
- React ๊ฐ๋ ์ ๋ํ ๊ฐ๋จํ ์ ๋ฆฌ
-
- ์ ๋ฐ์ ์ธ React ์ค๋ช (?) ์ด๋ป๊ฒ React ๊ฐ ๋์ํ๋์ง ๋์์์ด์ ์ฌ๋ฏธ์์ด ๋ณด์ ๋ฆฌ์กํธ๋ฅผ ํตํด ํ๋ก์ ํธ๋ฅผ ์งํํ ๊ฒฝํ์ด ์๊ณ ๋์ ๋ฐฉ์์ ์ด๋ ดํ์ด ์ดํดํ๊ธฐ๋ ํ์ง๋ง ์ฌ์ ํ ๋ฆฌ์กํธ๊ฐ ๋ง๋ฒ์ฒ๋ผ ๋๊ปด์ง๊ณ ์์ฉ, ์๋ฌ ๋๋ฒ๊น ๋ฑ์ ์ด๋ ค์์ ๊ฒช๋ ์ฌ๋๋ค์ ์ํด ์์ฑํ์์ต๋๋ค.
-
Recoil - ๋ ๋ค๋ฅธ React ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ?
- ์ด๋ฒ๋ ๋ ๊ด์ฌ์๊ฒ ๋ณธ ๊ธฐ์ , ๋ด๊ฐ ์๊ฐํ ๋ฐ๋ฅผ ์ด๋ฃจ์ด์ค๊ฒ ๊ฐ๋ค. contextAPI ๋ ๋ญ๊ฐ ์ฑ๋ฅ์ ์ผ๋ก ์ก๊ธฐ ํ๋ ๊ฒ ๊ฐ๊ณ , redux, mobx ๋ ๋ญ๊ฐ ๋ณต์กํ๋ค. ํนํ redux, store, action ์ด๋ฅผ ์ดํดํ๋๋ฐ ์กฐ๊ธ ํ๋ค์๋๊ฒ ๊ฐ๋ค. recoil ๊ธฐ๋๊ฐ ๋๋ค. ์ถํ concurrent mode ์ญ์
-
Debug Why React (Re-)Renders a Component
- React render component ๋๋ฒ๊น ๋ฐฉ๋ฒ, ์ปดํฌ๋ํธ ๋ฆฌ๋ ๋๋ง ๋ ๋ ํ์ด๋ผ์ดํธ ํ๋ ๋ถ๋ถ์ ์๊ณ ์์๋๋ฐ, ์ค์ ๋ก DOM์ด ์ ๋ฐ์ดํธ ๋๋ ๋ถ๋ถ๋ ์ก์์ ์์๋ค.
-
Stop Using Atomic Design Pattern
- ์๋น๋ถ๋ถ ๋์ํ๋๊ธ
- ์ค์ ๋ก ์ํ ๋ฏน ๋์์ธ์ ์ ์ฉํ๋ค ๋ณด๋ฉด ์ด๊ฒ์ด ์์์ธ์ง ๋ถ์์ธ์ง ์ ๊ธฐ์ฒด์ธ์ง ์ ๋งคํ ๋๊ฐ ๋ง์
- ์ด๋ฐ๊ฒ๋ค์ ๋นก์ธ๊ฒ ์ง์ผ๋๊ฐ๊ธฐ ์ํด ์๊ฐ ์๋น๋ ์๋นํจ
- ์ ์ ํ๊ฒ ์ํฉ์ ๋ง๋ ์ปดํฌ๋ํธ๋ฅผ ์ํฉ์ ๋ง๊ฒ ๊ทธ๋ฃนํ ํ๋๊ฒ์ด ๋ ํจ์จ์ ์
- ํ์... ๊ทธ๋ฆฌ๊ณ ์ ๋ง ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ค์ด ์๊ธด ํ๊ฐ์ ๋ํ ์๋ฌธ๋ ๋ค๊ธดํจ
- ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๊ฐ ๋๋ ค๋ฉด ๋์์ธ์์คํ ์ด ์ ๋ง ์ ๋์ด ์์ด์ผํ ๊ฒ ๊ฐ์ (ํ ์ค ์ฒ๋ผ)
- ๋ณ๊ฒฝ์ ์ ์ฐํ๊ฒ ๋์ํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋๋ก ๋ ์ฃผ์ํด์ผ๊ฒ ๋ค.
-
๋ณ๊ฒฝ์ ์ ์ฐํ ์ปดํฌ๋ํธ
- ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ค๊ณ
- ๋ฐ์ดํฐ ์ค์ฌ์ผ๋ก ์ปดํฌ๋ํธ ๋ถ๋ฆฌํ๊ธฐ (์ฃผ์๋ชฉ๋ก, ์ฃผ์ ์์ดํ ์ผ๋ก ๋ถ๋ฆฌ)
- ์ญํ ์ค์ฌ์ผ๋ก ๋ถ๋ฆฌ (์ฃผ์ ์์ดํ ํด๋ฆญ์ handler ๋ฅผ ์ฃผ์ ์์ดํ ์ปดํฌ๋ํธ ๋ด๋ถ๋ก ์ฎ๊น)
- ์ผ๋ฐ์ ์ธ ์ธํฐํ์ด์ค ์ค๊ณ
- ์ธํฐํ์ด์ค๋ ์ฌ์ฉํ๋ ์ชฝ์ ์ํ๊ฒ์, ์ฌ์ฉํ๋ ์ชฝ์์ ์ธํฐํ์ด์ค๋ฅผ ๋ณด๊ณ ์ด๋ป๊ฒ ๋์ํ ์ง ์์ ๊ฐ๋ฅํด์ผํจ, ์ธ๋ถ์์ ์์กด์ฑ์ ๋ง๋ฌ
-
๋๋ฉ์ธ์ ๋ชจ๋ฅด๋ ์ปดํฌ๋ํธ (์ฃผ์ ์์ดํ ๋ณด๋ค๋ ํ๋ ์ค ์์ดํ ์ผ๋ก ์ด๋ฆ์ ์ง๋๊ฒ์ด ๋ ์ผ๋ฐ์ ์ธ ์ด๋ฆ)
-
์์ง๋ ์๋ ์ปดํฌ๋ํธ (๊ตฌํ์ ์บก์ํ ํ์ฌ ๋ด๋ถ์ ๋ณ๊ฒฝ์ด ์ธ๋ถ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ํจ)
- button, text props ๋ณด๋ค๋ ์์น๋ฅผ ์ ํ ์ ์๋ right, left props ๋ฅผ ๋ง๋ค์ด์ ์ธ๋ถ์์ ์์กด์์ ๋ง๋ค๊ณ ๋ด๋ถ ์์ง๋๋ฅผ ๋์
- ํ๋ ์ค ์์ดํ ๋ณด๋ค๋ ๋ฆฌ์คํธ ์์ดํ ์ผ๋ก ๊ตฌํํ๊ณ ์คํ์ผ์ ๋ฐ์ ์ ์๋๋ก ํ๋ค๊ฑฐ๋, ๋ฒํผ ์์น๋ฅผ ๋ช ๋ช ํ๋ right props๋ฅผ ๋ง๋ค์ด์ ์ธ๋ถ์์ ์์กด์ฑ์ ๋ง๋ฌ
-
React ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถํ๋ฉฐ ์๊ฒ๋ ๊ฒ๋ค
- Webpack loader ์ ์ฉ ์์
- ์ฐ -> ์ข
- ํ -> ์
- babel loader vs babelrc
- .babelrc ํ์ผ ๋ง๋ค์ด์ ํ๋๊ฒ์ด ๋ ํธํจ
- babel preset, plugin ์ ์ฉ ์์
- plugin -> preset
- plugin ์ ์์๋๋ก preset ์ webpack ํ๊ณ ๊ฐ์ ์์๋ก
- Tree shaking ์ ์ ํฉํ ์ธํ
- ํธ๋ฆฌ์์ดํน์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ ๋ถ์์ด ๊ฐ๋ฅํ ESM ํํ์ธ ๊ฒฝ์ฐ ๊ฐ๋ฅ
- ๋ฐ๋ผ์ ESM ์ผ๋ก ์์ฑ๋ ์ํ๋ฅผ,
webpack terser
๊ฐ ํธ๋ฆฌ์์ดํน ํ๊ณ minify ํ ๋๊น์ง ์ ์งํด์ผํจ tsconfig
์์module: ESNext
,@babel/preset-env
์modules: false
- ์ด๋ฌ๋ฉด ๋ฒ๋ค๋ง ๊ฒฐ๊ณผ๋ฌผ์ด ESM ์ผ๋ก ๋์ ๋ฌธ์ ๊ฐ ๋๋๊ฒ ์๋๊ฐ ์ถ์ง๋ง ์นํ์ด ์์์ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์ ์ฒ๋ฆฌํด์ค
- ์ ํ์ ์ฌ์ง (
babel
,tsc
,webpack
)- TypeScript : tsc vs @babel/preset-typescript
- babel/preset-typescript ๋ ํธ๋์คํ์ผ์ ๊ทธ๋ฅ type ํ์ผ ๋ฌด์, tsc ๋ type ํ์ผ ๊ธฐ๋ฐ์ผ๋ก ๋ค ํ์ธ
- ๋ฐ๋ผ์ ์๋๋ babel/preset-typescript ๊ฐ ๋ ๋น ๋ฆ
- JSX : tsconfig vs @babel/preset-react
- JSX ๋ณํ์ TypeScript ํธ๋์คํ์ผ ๋จ๊ณ์์ ํ๋๋, @babel/preset-react๋ฅผ ์ฌ์ฉํด์ ํ๋๋์ ์ฐจ์ด
- ES5 : ๊ทธ๋ฅ Babel
- ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋ babel์ ์ฐ์ง ์๊ณ tsc๋ง ์ฐ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์ ๊ฒ์ ๋๋ค.
@babel/preset-env
๋ฅผ ์ด์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ํธํ์ฑ ์ต์ ์ ์ค์ ํ๊ฑฐ๋, ํธ๋ฆฌ ์์ดํน์ ์ ํฉํ ์ค์ ์ ํ๋ ๋ฑ ์น ๊ฐ๋ฐ์ ํ์ํ ๋ค์ํ ์ต์ ์ ์ฌ์ฉํ ์ ์์ผ๋๊น์.
- TypeScript : tsc vs @babel/preset-typescript
- Webpack loader ์ ์ฉ ์์
-
- Next.js๋ฅผ ๊ฐ๋ฐํ Vercel์์ ๊ฐ๋ฐํ ๋๊ตฌ๋ก, ๊ฐ๋ฐํ Node.js ํจํค์ง๋ฅผ Node.js๊ฐ ์ค์น๋์ง ์์ ํ๊ฒฝ์์๋ ์คํ ๊ฐ๋ฅํ ํ์ผ๋ก ๋ง๋ค์ด ์ค๋ค.
-๋ชจ๋ ์์ง๋ง ๋ชจ๋ ๋ชจ๋ฅด๋ package.json
-
Package.json ์ ๋ํ ๊ฐ๊ฒฐํ ์ค๋ช
-
์ง๊ธ ๋ณด๋ ์กฐ๊ธ ์ค๋๋ ๊ธ์ด์ง๋ง ์์ฃผ ์ ์ ์ด ์ค๋ช ๋์ด์์ด์ ์ข์
-
์ด๋ฒคํธ ๋ฃจํ๊ฐ ๊ฐ Phase ๋ฅผ ๋๋ฉด์ ๊ฐ Phase ์ Queue ์ ์์ฌ์๋ ํจ์๋ฅผ ์คํํจ
-
๊ทธ๋ฐ๋ฐ nextTickQueue, microTaskQueue ์ ์คํํ ํจ์๊ฐ ์๋ ๊ฒฝ์ฐ ๋ค์ phase ๋ก ๋์ด๊ฐ์ง ์๊ณ ์์ ๋๋ ํ ํ์ธ ํ ์คํ
-
์ญ์ ์ดํด๊ฐ ์๋ ๋์๋ ๊ณต์๋ฌธ์๋ฅผ...
-
timers: ์ด ๋จ๊ณ๋ setTimeout()๊ณผ setInterval()๋ก ์ค์ผ์ค๋งํ ์ฝ๋ฐฑ์ ์คํํฉ๋๋ค.
-
pending callbacks: ๋ค์ ๋ฃจํ ๋ฐ๋ณต์ผ๋ก ์ฐ๊ธฐ๋ I/O ์ฝ๋ฐฑ๋ค์ ์คํํฉ๋๋ค.
-
idle, prepare: ๋ด๋ถ์ฉ์ผ๋ก๋ง ์ฌ์ฉํฉ๋๋ค.
-
poll: ์๋ก์ด I/O ์ด๋ฒคํธ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. I/O์ ์ฐ๊ด๋ ์ฝ๋ฐฑ(ํด๋ก์ฆ ์ฝ๋ฐฑ, ํ์ด๋จธ๋ก ์ค์ผ์ค๋ง๋ ์ฝ๋ฐฑ, setImmediate()๋ฅผ ์ ์ธํ ๊ฑฐ์ ๋ชจ๋ ์ฝ๋ฐฑ)์ ์คํํฉ๋๋ค. ์ ์ ํ ์๊ธฐ์ node๋ ์ฌ๊ธฐ์ ๋ธ๋ก ํฉ๋๋ค.
-
check: setImmediate() ์ฝ๋ฐฑ์ ์ฌ๊ธฐ์ ํธ์ถ๋ฉ๋๋ค.
-
close callbacks: ์ผ๋ถ close ์ฝ๋ฐฑ๋ค, ์๋ฅผ ๋ค์ด socket.on('close', ...).
-
How (and why) you should use TypeScript with Node and Express.
- Node, Express ์ Typescript ์ ์ฉ, Front ๋จ์์๋ ๋ง์ด๋ค TypeScript๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์ ํ๋๋ฐ ๋ฐฑ๋จ (Node) ์์๋ ๊ฑฐ์ ์์ด์ ์ ๋ฆฌํด๋ด
-
ํ์ ์คํฌ๋ฆฝํธ์ ํจ๊ป ์ปดํฌ๋ํธ๋ฅผ ๋จ๊ณ ๋ณ๋ก ์ถ์ํํด๋ณด์
- ํ์ ์คํฌ๋ฆฝํธ๋ก ์ถ์ํ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋๋๊ฒ์ด ์๋นํ ์ธ์์ ์
-
[TypeScript] ์ปดํ์ผ ์ต์ ์ดํด ๋ณด๊ธฐ (TSConfig Reference)
- tsconfig ์ต์ ์ดํด๋ณด๊ธฐ
-
ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ๊ฐ ๋ชจ๋ ํ์ ์ ์ธ์ ์ฐธ์กฐํ๋ ๊ณผ์
- ํ์ ์ ์ธ ์ฐธ์กฐํ๋ ๊ณผ์ ํ์ ์คํฌ๋ฆฝํธ์ ๋ํ์ฌ ์กฐ๊ธ ๋ ์ธ์ธํ๊ฒ ์์๊ฐ ์ ์๋ค.
-
- Rust ๊ณต์๋ฌธ์๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ ๋ด์ฉ์ ์ ์ ๋ฆฌํด๋์ ๋ธ๋ก๊ทธ ๊ธ
-
- Microsoft ์ ๊ณตํ rust ํ์ต ์๋ฃ
-
Roll your own JavaScript runtime
- Rust js module ๋ก JS runtime ๊ตฌํ
- Microsoft Go learn
- Microsft ์ ๊ณตํ go ํ์ต ์๋ฃ
- Swift converter
- Object C -> swift converter util
- Understanding all of Python, through its builtins
- builtin์ผ๋ก ํ์ด์ฌ์ ๋ชจ๋ ๊ฒ์ ์ดํดํ๊ธฐ
- builtin ๋ชจ๋์ ์๋ ๋ด์ฅ ๊ฐ์ฒด๋ค์ ํ๋์ฉ ์ค๋ช ํ๋ ๋ฐฉ์์ ํ์ด์ฌ์ ์ดํดํ๋๋ก ๊ตฌ์ฑํ๊ธ
- ๋์ค์ ํ์ด์ฌ ๊ณต๋ถํ ์ผ์ด ์๊ธฐ๋ฉด ๋ณด๋ฉด ์ข์๋ฏ
-
์ฝํ๋ฆฐ ์ฝ๋ฃจํด(coroutine) ๊ฐ๋ ์ตํ๊ธฐ
- ๋ญ๊ฐ ์ ์ผ ์ดํดํ๊ธฐ ์ฌ์ ์
-
DOM ์ฝ๊ฒ ์ดํดํ๊ธฐ!! ๊ณ ์ฒ์ค์นด์ด๋ ์๋๋๋ค
- ์ฝ๊ฒ, ์ฌ๋ฏธ์๊ฒ DOM์ ์ค๋ช ํ๊ณ ์๋ค.
-
React ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ฉด์ ๋ฐฐ์ฐ๋ ์นํฉ(Webpack) ๊ธฐ์ด
-
Webpack Academy #0: What is webpack and why use it?
- ์ฝ๊ฒ ์นํฉ์ ๋ํ ์ค๋ช ์ ์ํด ๋์
-
Knowre ๋ฐ๋ธ์ต์ค ์ปค๋ฆฌํ๋ผ
- ์๊ฐ๋ ๋ ํ๋์ฉ ๋ณด๋ฉด ์ข์ ์ฃผ์ ๋ค
-
- SaaS ๊ฐ๋ฐ์ ์ํ ๊ธฐ์ด ์ธํ๋ผ๋ฅผ ํ๋ฒ์ ์
์
ํด์ฃผ๋ ์คํ์์ค
- AWS ํ ํฐ๋ง ์ ๋ ฅํ๋ฉด ์ ์ฒด ์ค์ ์๋ ์งํ
- ์์ ์ฑ : ๋ฉํฐ AZ , AWS ELB + Nginx, Terraform
- ํ์ฅ์ฑ : ASG + EKS, S3 + CloudFront
- ๋ณด์ : AWS Secret Manager, Let's Encrypt ์๋ ์ธ์ฆ์ ๊ด๋ฆฌ, DB ์ํธํ, VPN ์ง์
์๋ ์ค์ ๋๋ ํ๊ฒฝ๋ค
- Infrastructure
- Staging, Production ํ๊ฒฝ๋ณ VPC (์๋ธ๋ท, ์ํ๋ฆฌํฐ ๊ทธ๋ฃน ์ค์ )
- ํ๊ฒฝ๋ณ EKSํด๋ฌ์คํฐ (Cert-manager, external-dns, nginx-ingress-controler ๋ฑ ์๋ ์ค์ )
- RDS (Postgres/MySQL)
- S3 ๋ฒํท ๋ฐ CloudFront distribution
- ๋ก๊น ๊ณผ ๋ฉํธ๋ฆญ : CloudWatch / Prometheus + Grafana / ElasticSearch + Kibana
- Wireguard ์ด์ฉํ VPN
- ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ฐ Identy / Access Proxy : Ory Kratos, Oathkeeper ๊ฐ๋ฐํ์ด ์ฝ๊ณ ์์ ํ๊ฒ ์ ๊ทผํ๊ธฐ ์ํ ๋๊ตฌ๋ค
- Telepresence ๋ฅผ ์ด์ฉํ ๋ก์ปฌ/ํด๋ผ์ฐ๋ ํ์ด๋ธ๋ฆฌ๋ ๊ฐ๋ฐ์ ํ๊ฒฝ
- Backend
- Golang ๋๋ Node.js ๋ก ๋ง๋ค์ด์ง ์์ ํ๋ก์ ํธ. ์๋ ์ ์ ๋ฐ Dockerํ ๋์ด K8s ํด๋ฌ์คํฐ์ ๋ฐฐํฌ ๊ฐ๋ฅ
- CircleCI / GitHub Actions ๋ฅผ ์ด์ฉํ CI Pipeline. PR ๋จธ์งํ๋ฉด ๋ฐ๋ก ๋ฐฐํฌ ์์
- CloudFront URL์ ์ด์ฉํ ํ์ผ ์ ๋ก๋/๋ค์ด๋ก๋ ์ง์
- SendGrid / AWS SES ๋ฅผ ์ด์ฉํ ์ด๋ฉ์ผ ์ง์
- ์๋ฆผ ์ง์ (์น,๋ชจ๋ฐ์ผ,SMS,์ด๋ฉ์ผ) - ๊ฐ๋ฐ์ค
- Kratos ์ Oathkeeper๋ฅผ ์ด์ฉํ ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ ์ง์ (์ง์ ๋ก๊ทธ์ธ/๊ฐ์ /์ธ์ฆ ๊ด๋ฆฌํ ํ์์์)
- Frontend
- React ์์ ํ๋ก์ ํธ. ์๋ ์ ์ ๋ฐ ๋ฐฐํฌ ๊ฐ๋ฅ
- CircleCI / GitHub Actions ๋ฅผ ์ด์ฉํ CI Pipeline. PR ๋จธ์งํ๋ฉด ๋ฐ๋ก ๋ฐฐํฌ ์์
- CloudFront URL์ ์ด์ฉํ ํ์ผ ์ ๋ก๋/๋ค์ด๋ก๋ ์ง์
- Kratos ์ Oathkeeper๋ฅผ ์ด์ฉํ ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ ์ง์ (์์ ๋ก๊ทธ์ธ/๊ฐ์ ํ๋ก์ฐ๋ฅผ ์คํ์ผ๋ง๋ง ํ๋ฉด ๋จ)
- Gastby ๋ฅผ ์ด์ฉํ Static Site ์์ ๋ก ์ฝ๊ฒ ๋๋ฉ ํ์ด์ง ์์ฑ ๊ฐ๋ฅ. CI ์ฐ๋ ์ง์
- SaaS ๊ฐ๋ฐ์ ์ํ ๊ธฐ์ด ์ธํ๋ผ๋ฅผ ํ๋ฒ์ ์
์
ํด์ฃผ๋ ์คํ์์ค
-
๋ฐ๋ธ์ต์ค์ ํ์ฅ ๋ชจ๋ธ โ ๊น์ต์ค(GitOps) ์ดํดํ๊ธฐ
- ๊ธฐ์กด์ ๋ฐ๋ธ์ต์ค์ ๋ํ์ฌ ์ ๋ชฐ๋๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด๊ณผ ๋ค๋ฅธ์ ์ด ๋ฌด์์ธ์ง ์ ํํ๊ฒ ํ์ ํ ์ ์์ง๋ง ๊น์ต์ค์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ์ ์ด์์ ๊ด๋ จ๋ ๋ชจ๋ ์์๋ฅผ ์ฝ๋ํ ํ์ฌ ๊น(Git)์์ ๊ด๋ฆฌ(Ops)ํ๋ ๊ฒ์ด ๊น์ต์ค์ ํต์ฌ
- ๊น์ต์ค์ ํต์ฌ ์์ด๋์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
-
- ๋ฐฐํฌ์ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ์ ์ ์ธํ ๊ธฐ์ ์(Declarative Descriptions) ํํ๋ก ์์ฑํ์ฌ Config Repository(ํน์ Environment Repository)์์ ๊ด๋ฆฌํ๋ค.
-
- Config Repository์ ์ ์ธํ ๊ธฐ์ ์์ ์ด์ ํ๊ฒฝ ๊ฐ ์ํ ์ฐจ์ด๊ฐ ์๋๋ก ์ ์ง์์ผ์ฃผ๋ ์๋ํ ์์คํ ์ ๊ตฌ์ฑํ๋ค.
-
-
AWS VPC
- [AWS] ๊ฐ์ฅ์ฝ๊ฒ VPC ๊ฐ๋ ์ก๊ธฐ
- AWS VPC ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ - VPC๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ์๋ฆฌ
- ์ธํ๋ผ ์ชฝ์ ๋ณด๊ฒ ๋๋ฉด์ AWS VPC ์ ๋ํ์ฌ ์์๋ณด๋์ค
- ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ฒฉ๋ฆฌ๋ ๊ณต๊ฐ์ ํ๋ก๋น์ ๋ํ์ฌ ๊ณ ๊ฐ์ด ์ ์ํ๋ ๊ฐ์ ๋คํธ์ํฌ์์ AWS ๋ฆฌ์์ค๋ฅผ ์์ํ ์ ์์ต๋๋ค.
- IP ์ฃผ์ ๋ฒ์ ์ ํ, ์๋ธ๋ท ์์ฑ, ๋ผ์ฐํ ํ ์ด๋ธ ๋ฐ ๋คํธ์ํฌ ๊ฒ์ดํธ์จ์ด ๊ตฌ์ฑ ๋ฑ ๊ฐ์ ๋คํธ์ํน ํ๊ฒฝ์ ์๋ฒฝํ๊ฒ ์ ์ด
- VPC, Subnet, Route Table, Internet Gateway, Network ACL ๋ฑ์ ์ค์ ๋ฐ ์ ๊ณต
- 2023๋
์ฟ ๋ฒ๋คํฐ์ค ํ์ค ์ํคํ
์ฒ
- ์ฟ ๋ฒ๋คํฐ์ค์์ ๋ง์ด ์ฌ์ฉ๋๋ ์ํคํ ์ฒ
- ์ค๋ฒ๋ทฐ ๊ฐ์ ๋๋
-
์ ๊ท์ ํฌ๊ธฐ์๋ฅผ ์ํ ๊ฐ์ฅ ์ฌ์ด ์ ๊ท์ โ ์
-
์ ๊ท์ ํฌ๊ธฐ์๋ฅผ ์ํ ๊ฐ์ฅ ์ฌ์ด ์ ๊ท์ โ ํ
-
Things You Should Know About Databases
- DataBase ์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ๋ค
-
[Database] ์ ๊ทํ(Normalization) ์ฝ๊ฒ ์ดํดํ๊ธฐ[MangKyu's Diary:ํฐ์คํ ๋ฆฌ]
-
- 1NF
- ํ ์ด๋ธ์ ์ปฌ๋ผ์ด ์์๊ฐ์ ๊ฐ๋๋ก ํ ์ด๋ธ์ ๋ถํด
- 2NF
- ๊ธฐ๋ณธํค์ ๋ถ๋ถ ์งํฉ์ด ๊ฒฐ์ ์๊ฐ ๋์ด์ ์๋๋ค๋ ๊ฒ์ ์๋ฏธ
- 3NF
- ์๋ณ์ ์ด์ธ์ ์์ฑ๊ฐ์ ์ข ์์ฑ์ด ์๊ธฐ๋ฉด ์๋๋ ๊ฒ
- BCNF
- ๋ชจ๋ ๊ฒฐ์ ์๊ฐ ํ๋ณดํค๊ฐ ๋๋๋ก ํ ์ด๋ธ์ ๋ถํด
- 1NF
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] Lock์ ๋ํด์ ์์๋ณด์ - ๊ธฐ๋ณธํธ
- READ UNCOMMITTED
- ํ ํธ๋์ญ์ ์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์ปค๋ฐ์ด๋ ๋กค๋ฐฑ๊ณผ ์๊ด ์์ด ๋ค๋ฅธ ํธ๋์ญ์ ์์ ์ฝ์ ์ ์๋ ๊ฒฉ๋ฆฌ ์์ค
- ๋ชจ๋ ๋ถ์ ํฉ ๋ฌธ์ ๋ฐ์
- READ COMMITTED
- COMMIT์ด ์๋ฃ๋ ๋ฐ์ดํฐ๋ง ์กฐํ ๊ฐ๋ฅํ ๊ฒฉ๋ฆฌ ์์ค
- ๋ํฐ ๋ฆฌ๋ ํด๊ฒฐ (undo ์์ญ์ ์ ๊ทผํ์ฌ ํด๊ฒฐ)
- REPEATABLE READ
- ํธ๋์ญ์ ์ด ์์๋๊ธฐ ์ ์ ์ปค๋ฐ๋ ๋ด์ฉ์ ๊ดํด์๋ง ์กฐํํ ์ ์๋ ๊ฒฉ๋ฆฌ ์์ค
- NON-REPEATABLE-READ ํด๊ฒฐ (transaction id ๋ฅผ ๋ฐ๊ธํ์ฌ ํด๊ฒฐ)
- InnoDB์์๋ PHANTOM READ ํด๊ฒฐ
- SERIALIZABLE
- ํ ํธ๋์ญ์ ์ ๋ค๋ฅธ ํธ๋์ญ์ ์ผ๋ก๋ถํฐ ์์ ํ ๋ถ๋ฆฌํ๋ ๊ฒฉ๋ฆฌ ์์ค
- ๋ชจ๋ ๋ถ์ ํฉ ๋ฌธ์ ํด๊ฒฐ
- ๋น์ ๊ณต์๋ฅผ ์ํ SQL
- ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๊ดํ์ฌ ๊ธฐ์ด์ ์ธ ํฌ์คํ
- ๋๋ ํ์ฌ์์ ์ด๊นจ๋๋จธ๋ก ๋ฐฐ์ ๊ณ ์ ๋๋ก ๋ณธ์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋ณด๋ฉด์ ๋์์ด ๋ง์ด ๋ ๊ฒ ๊ฐ๋ค.