๐ ์ฐ์ํํ ํฌ์บ ํ 3๊ธฐ ํ๊ธฐ

2020๋ 8์์ ๋ง๋ฌด๋ฆฌํ๊ณ 2021๋ ์ ํ๊ธฐ๋ฅผ ์ฐ๋ ๊ฒ์ด ๋๋ฌด ๋ฆ์ ๊ฐ์ด ์์ง๋ง ์ง๊ธ 4๊ธฐ ์ ๋ฐ์ด ์งํ ์ค์ธ ๋ง๋น์ ์ง๊ธ์ด๋ผ๋ ์ฌ๋ฆฌ์ง ์์ผ๋ฉด ํ์ ์ฌ๋ฆฌ์ง ์์ ๊ฒ ๊ฐ์ ์๊ฐ์ด ๋ค์ด ์ง๊ธ์ด๋ผ๋ ํ๊ธฐ๋ฅผ ๋ง๋ฌด๋ฆฌ ์ง์ด ์ฌ๋ ค ๋ณธ๋ค. ์ธํฐ๋ท์ ๊ณต๊ฐ๋ ๋๋ถ๋ถ์ ์ ๋ณด๋ ๊ฐ๋จํ๊ฒ๋ง ์ง๊ณ ๋์ด๊ฐ๊ณ ๋ด๊ฐ ์ง์ํ ๋ ๊ถ๊ธํ๋ ์ ์์ฃผ๋ก ์์ฑํด ๋ณด๊ฒ ๋ค.
์ฐ์ํํ ํฌ์บ ํ๋ ๋ฐฐ๋ฌ์๋ฏผ์กฑ์ ์ด์ํ๋ ํ ํฌ ์ ๋์ฝ ๊ธฐ์ ์ฐ์ํํ์ ๋ค์์ ์ฌ๋ฆ ๋์ ์ธํด์ผ๋ก ๊ทผ๋ฌดํ๋ฉฐ ์ค๋ฌด์ ๊ฐ๊น์ด ๊ฐ๋ฐ ๋ฐ ํ๋ก๊ทธ๋๋ฐ ๊ณต๋ถ๋ฅผ ํ๋ ํ๋ก๊ทธ๋๋จธ ์์ฑ ๊ณผ์ ์ด๋ค. ์ ๋ฐ ์ธ์์ 30๋ช ์ด๋ฉฐ ๊ฒฝ์๋ฅ ์ ๋๋ต 43๋ 1์ด๋ค.

์ ๋ฐ์ ์ถ์ ๊ธ์ง โ ์ผ๋ช ์ค์๋ฐ ๋ผ์ด์ง. ์ ๋ง์ด ์ข์ ์ ์ฐฉ์์ด๋ค.
๐ ์ ๋ฐ ๊ณผ์
์ง์์
์ง๋ฌธ ํ๋ ๋น 700์ ๋ถ๋์ด์๋ค.
- ๋ณธ์ธ์ด ์๊ฐํ๋ ๊ฐ๋ฐ์์ ๋๋ชฉ๊ณผ ์ฌ๊ธฐ์ ๋น์ถ์ด ๋ณด์์ ๋ ๋ณธ์ธ์ ์ด๋ค ์ ์ด ๊ฐ๋ฐ์๋ก ์ผํ๊ธฐ ์ ํฉํ๋ค๊ณ ์๊ฐํ์๋์?
- ์ฐ์ํํ ํฌ์บ ํ์ ์ฐธ์ฌํ๊ณ ์ถ์ ์ด์ ๋ฅผ ์์ ๋กญ๊ฒ ๊ธฐ์ ํ์ฌ ์ฃผ์ธ์.
- ๊ต๊ณผ ๊ณผ์ ์ด์ธ์ ๋๋ง์ ํ๋ก๊ทธ๋๋ฐ ํ์ต ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ์์ ํด์ฃผ์ธ์.
- ํ์ ์ ๊ณผ์ ์์ ์ด๋ ค์์ ๊ฒช์๋ ๊ฒฝํ๊ณผ ๊ทธ ์ด๋ ค์์ ๊ทน๋ณตํ๊ธฐ ์ํด ์ด๋ ํ ๋ ธ๋ ฅ์ ํ๋์ง ์์ ํด์ฃผ์ธ์.

1์ฐจ ์ฝ๋ฉ ํ ์คํธ
ํํ ๋ณผ ์ ์๋ ์ฝ๋ฉ ํ ์คํธ ๋ฌธ์ ๋ค์ด์๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํ์๋ ๊ฒ์ผ๋ก ๊ธฐ์ตํ๋ฉฐ ๋น์ ํ๋ก๊ทธ๋๋จธ์ค ์ธ๋จธ์ฝ๋ฉ๊ณผ ์ฐ์ํํ ํฌ์บ ํ ๋๋ฌธ์ ์ฝ๋ฉํ ์คํธ ์ฐ์ต์ ๋ง์ด ํ์๊ธฐ์ ๊ทธ๋ ๊ฒ ๋ถ๋ด์ค๋ฌ์ด ๋์ด๋๋ ์๋์๋ค. ์ด 4๋ฌธ์ ๋ก 150๋ถ์ด ์ฃผ์ด์ก๋ค.
2์ฐจ ์ฝ๋ฉ ํ ์คํธ
์ ๊ณต๋๋ VS Code ์น ํ๋ซํผ์์ ํน์ ๊ธฐ๋ฅ์ ์ํํ๋ ๊ด๋ฆฌ์ ํด์ ๊ฐ๋ฐํ๋ ํ๋ก์ ํธ์๋ค. ๊ธฐ๋ณธ์ ์ธ ๋ณด์ผ๋ฌ ํ๋ ์ดํธ์ ๋น๋ ์ค์ , CI/CD๋ ๋ฏธ๋ฆฌ ๊ตฌํํด ์ฃผ์ จ๊ธฐ์ README์ ์ค๋ช ๋ ๋๋ก ๊ธ๋ฐฉ ์คํํ ์ ์์์ผ๋ฉฐ ๊ทธ ์์ 3๊ฐ์ ํต์ฌ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ๊ธ์ง๋๊ณ ๋ฐ๋๋ผ JS๋ง์ผ๋ก ํด๊ฒฐํด์ผ ํ๋ค. ์๊ฐ์ 4์๊ฐ์ผ๋ก ๊ฝค ๊ธธ์๋๋ฐ ๋๋ ์๊ฐ์ด ๋ถ์กฑํ๋ค๊ณ ๋๊ผ๋ค. ์์ธํ ๋ฌธ์ ์ ๋ต์ ๋ํ ์ค๋ช ์ ๊ด๊ณ์๋๊ป์ ๊ณต์ ํ ์ ์๋ค๊ณ ๋ง์ํ์ ์ ์๋ตํ๋ค... ๐ญ
๋ฉด์
์ฝ๋ก๋19๋ก ์ธํด ์จ๋ผ์ธ์ผ๋ก 30๋ถ๊ฐ ์งํ๋์์ผ๋ฉฐ ๊ฐ๋ฐ์ ์ฑ์ฉ ๋ฉด์ ์ด ์๋๊ธฐ์ ๊ธฐ์ ์ ์ผ๋ก ๊น์ ๋ด์ฉ์ ๋ฌผ์ด๋ณด๊ธฐ๋ณด๋ค๋ ํ๋ก๊ทธ๋๋จธ๋ก์์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ ๊ฐ์ถ๊ณ ์๋์ง, ์ฐํ ์บ ์์ ๋ฐฐ์ธ ์ค๋น๊ฐ ๋์๋์ง, ์ข์ ์บ ํ ๋ฉค๋ฒ๋ก ํ๋ํ ์ ์์์ง์ ๋ํ ๋ถ๋ถ์ ์ฃผ๋ก ๋ฌผ์ด๋ณด์ ๋ค๋ ๋๋์ ๋ฐ์๋ค. ํนํ ๋์ ๊ฒฝ์ฐ ์ง์์์ ์ด ๊ธฐ์ ๋ธ๋ก๊ทธ๋ฅผ ์ธ๊ธํ๋๋ฐ, ๊ทธ์ค ๊ธ ํ๋์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ๋ฌผ์ด๋ณด์ จ๋ค.
๊ฒฝ์๋ฅ
๊ฒฝ์๋ฅ ์ ๋ํ ๋ถ๋ถ๋ ๊ถ๊ธํ์๋๋ฐ ๋์ค์ ์๊ฒ ๋ ๋ฐ๋ก๋ ๋ค์๊ณผ ๊ฐ์๋ค.
- ์ ์ฒด ์ง์์ 1300๋ช + (43๋ฐฐ์+)
- ์๋ฅ ๋ฐ 1์ฐจ ์ฝ๋ฉ ํ ์คํธ ํต๊ณผ์ 500๋ช + (17๋ฐฐ์+)
- 2์ฐจ ์ฝ๋ฉ ํ ์คํธ ํต๊ณผ์ 90๋ช (3๋ฐฐ์)
- ๋ฉด์ ํต๊ณผ ๋ฐ ์ต์ข ํฉ๊ฒฉ์ 30๋ช

๐ซ ๊ต์ก ๊ณผ์
- OT ๊ธฐ๊ฐ (๊ธฐ๊ฐ 3์ผ)
- ๋ฏธ๋ ํ๋ก์ ํธ: Express, HTTP ์์ด ์น ์๋ฒ ๊ตฌํํ๊ธฐ.
- ๊ณต๋ถ ํค์๋: Node.js, JS OOP, ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ, ๋น๋๊ธฐ ์นดํ, HTTP ๋ช ์ธ, HTTP ๊ธฐ์ด.
- ์ฐ๋ฆฌ ํ GitHub
- ๋ด ๋ธ๋ก๊ทธ ๊ธ

OT๊ฐ ์ด๋ฃจ์ด์ง ์์์ง. ์ ์ค์ ์์นํด ์๋ค.
- ๋ก๊ทธ์ธ์ ๊ตฌํํ๋ ํ๋ก์ ํธ๋ฅผ ์ํํ๋ ๋ฐฐ๋ฏผ์ํ ํ๋ก์ ํธ (๊ธฐ๊ฐ 1์ฃผ)
- ์กฐ๊ฑด
- ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ง์ ํ์ฉํ๋ค.
- Passport ๋ฑ์ ์ธ์ฆ ์์คํ ์์ด ์ธ์ฆ์ ์ง์ ๊ตฌํํ๋ค.
- ์์ฉ DB๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ์ผ ์์คํ ์ผ๋ก DB๋ฅผ ์ง์ ๊ตฌํํ๋ค.
- ๊ณต๋ถ ํค์๋: HTML, CSS, CSS Layout, Express.
- ์ฐ๋ฆฌ ํ GitHub


์ฐ์ํํ ํฌ์บ ํ์ ๋ณธ๋ฌด๋๊ฐ ๋ ํฐ์ง. ๋ชฝ์ดํ ์ฑ์ญ 12์ด ๊ฑฐ๋ฆฌ์ ์์นํด ์๋ค.
- ์นธ๋ฐ ๋ณด๋๋ฅผ ์ง์ ๊ตฌํํ๋ ํธ๋ ๋ก ํ๋ก์ ํธ (๊ธฐ๊ฐ 2์ฃผ)
- ์กฐ๊ฑด
- ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ง์ ํ์ฉํ๋ค.
- Webpack์ ์ง์ ์ค์ ํด ํ์ฉํ๋ค.
- ๋๋๊ทธ & ๋๋กญ์ ๊ตฌํํด์ผ ํ์ง๋ง HTML Drag and Drop API ์์ด ์ด๋ฒคํธ ๋ฒ๋ธ๋ง, ์ด๋ฒคํธ ์บก์ฒ ๊ทธ๋ฆฌ๊ณ ์ด๋ฒคํธ ์์์ ํ์ฉํด ์ง์ ๊ตฌํํด์ผ ํ๋ค.
- ๊ณต๋ถ ํค์๋: Webpack, ES Module, DOM API, Templating, Fetch-Promise pattern, JS Event Delegation, DBMS, MySQL, SQL Syntax.
- ์ฐ๋ฆฌ ํ GitHub

ํฐ์ง 18์ธต ์นดํ์ ์นดํ์์ ๋ฐ๋ผ๋ณธ ์ฌ๋ฆผํฝ๊ณต์์ ๋ชจ์ต์ด๋ค.
- ๊ฐ๊ณ๋ถ ์ฑ์ ์ง์ ๊ตฌํํ๋ ๋ฑ ํฌ์๋ฌ๋ ํ๋ก์ ํธ (๊ธฐ๊ฐ 2์ฃผ)
- ์กฐ๊ฑด
- ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ง์ ํ์ฉํ๋ค.
- ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ์ History API๋ฅผ ํ์ฉํด ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ ๊ตฌํํ๋ค.
- CI/CD๋ฅผ ์์ฉ ์๋ฃจ์ ์์ด ์ง์ ๊ตฌํํ๋ค.
- OAuth๋ฅผ ๊ตฌํํ๋ค.
- SVG์ ์บ๋ฒ์ค ๋ฑ์ ํ์ฉํด ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฐ๋ค.
- ๊ณต๋ถ ํค์๋: Observer Pattern, ERD, OAuth, Passport, State Management, Immutability, Transactions, Shell Scripts, CI/CD, CSS Animations & Optimizations (requestAnimationFrame & requestIdleCallback), SVG, Canvas.
- ์ฐ๋ฆฌ ํ GitHub

์ข ์ข ํ์ด ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค. ์ง๊ธ ๋ณด์ด๋ ์ด ์ฝ๋๋...
- ๋ฐฐ๋ฌ์๋ฏผ์กฑ B๋งํธ๋ฅผ ์ง์ ๊ตฌํํ๋ B๋งํธ ํ๋ก์ ํธ (๊ธฐ๊ฐ 3์ฃผ)
- ์กฐ๊ฑด
- Vanilla React๋ฅผ ํ์ฉํ๋ค.
- AWS VPC๋ฅผ ํ์ฉํ๋ค.
- S3 ์ด๋ฏธ์ง ์ ์ฅ์๋ฅผ ํ์ฉํ๋ค.
- Elastic Search, Logstash, Kibana (ELK) ์กฐํฉ์ ํ์ฉํ๋ค.
- ๊ณต๋ถ ํค์๋: React Hooks, AWS VPC, React Router, React Context API, React useReducer, AWS IAM, AWS S3, React Test Codes (Jest, Enzyme, ...), Elastic Search, Logstash, Kibana, ELK.
- ์ฐ๋ฆฌ ํ GitHub

โจ ์ข์๋ ์ ๋ค
์ฐ์ ๋งค๋ฌ 150๋ง์ ์ ๋์ ํ๋๋น์ ํ๋ ์ฅ๋น(๋งฅ๋ถ ํ๋ก ๐ป ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ํฐ ๐ฅ)๊ฐ ์ง๊ธ๋์๋ค.

2019๋ ํ MacBook Pro 16์ธ์น i9 ๊ณ ๊ธํ์ด ๋ชจ๋์๊ฒ ๋์ฌ๋์๋ค. ๋จ์ 16GB, SSD๋ 1TB, GPU๋ Radeon 5500M 4GB. 2020๋ ์บ ํ ๋น์ ๊ธฐ์ค CTO ์์ด ์ฃผ๋ฌธ ๊ฐ๋ฅํ ์ต๊ณ ์ฌ์ ๋งฅ๋ถ ํ๋ก์๋ค. ๋ชจ๋ํฐ๋ 2์ธ๋น 1๊ฐ์ฉ ์ด 15๊ฐ๊ฐ ์ง๊ธ๋์๋ค. ๋ชจ๋ํฐ๋ ThinkVision QHD ๋ชจ๋ํฐ. ๋ชจ๋ํฐ๊ฐ ๋ถ์กฑํ ์ค ์์๋๋ฐ ์ฌ์ ๋ก์ ๋ค.
๐จโ๐ป ๋๋์ฒด (์ด๋ณด์์๊ฒ) ์ข์ ์ฝ๋๊ฐ ๋ญ๋ฐ?
// ์ฐ์ธก ์ฌ์ด๋๋ฐ ํ๋ ๋ด์ญ ๋ก๋
async function addActivityLogToActivityLogList() {
let activityLogList = document.getElementById('activity-log-list')
activityLogList.classList.add('activityLog')
activityLogList.innerHTML = ''
let userList = await api.User().getAllUsers()
userList.reverse()
console.log('ํ์ฌ ์ฌ์ฉ์๋ [', userList.length, ']๋ช
์
๋๋ค.')
userList.forEach((user) => {
let activityLog = document.createElement('li')
activityLog.classList.add('activityLog')
let date = new Date(moment(user.created_at).format('YYYY-MM-DD HH:mm:ss'))
activityLog.innerText = user.userId + '๋ ' + date + '์ ๊ฐ์
ํ์ต๋๋ค.'
activityLogList.appendChild(activityLog)
})
}
์ด ์ฝ๋์ ์๋ณธ์ ์ฌ๊ธฐ์ ์๋ค.
์ด โ ์ด๊ฑด ๋ฆฌ๋ทฐํ ์ ์๋ ์ํ๊ฐ ์๋๋ฐ. ๋๊ฐ ์ด๊ฑฐ ์ผ์ด์? ์๊ธฐ ์ข ๋ค์ด๋ด ์๋ค.
2๋ฒ์งธ ํ๋ก์ ํธ๊ฐ ๋๋ 7์ 25์ผ ๊ธ์์ผ ์คํ ์ฝ๋ ๋ฆฌ๋ทฐ ์๊ฐ์ ์ ๋น๋ฝ๊ธฐ์ ๊ฑธ๋ ค ํ๋ฉด์ ๋ํ๋ ๋ด ์ฝ๋์ ๋ํ ํผ๋๋ฐฑ์ด๋ค. ๋น์๋ก์ ๊ทน์ฌํ ์๊ฐ์ ์๋ฐ์ ์ ๊ทน๋ณตํด๋๊ฐ๊ณ ๊ฝค ์ ๋์ํ๋ ํ์ด์ง๋ฅผ ๋ง๋ค์๋ค๊ณ ์๊ฐํ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฐ ์ง์ค์ ์ธ ํ๊ฐ๋ฅผ ๋ค์ผ๋ ์ ์ ์ ์ธ ์ถฉ๊ฒฉ์ด ๊ฐ์์ง ์์๋ค. ๊ธ๋ก๋ ์ ๋ํ๋์ง ์์๋๋ฐ ๋ฌด์ธ๊ฐ ์ ๋ง ์ผ์ด๋ถ๋ ๋ถ์๊ธฐ์๋ค.
๊ทธ๋ ์ง์ ๊ฐ๋ ๊ธฐ์ฐจ ์์์๋ ์๋ง์ ์๊ฐ์ด ๋ค์๋ค. ์ ์ ๋ง์์ ๊ฐ๋ผ์ํ๊ณ ์๊ฐํด ๋ณด๋ ๊ทธ๋๊ทธ๋~ ์ฐ๋ฆฌ ๋ชจ๋ ์ํ๊ณ ์๊ณ ํ์ด~๋ผ๊ณ ๋๊ธฐ๋ ์บ ํ์๋ค๋ฉด ์คํ๋ ค ์ข์ ์บ ํ๊ฐ ์๋์์ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. ๋ฌธ์ ์ง๋ ํ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ์์ด์ผ ์ข์ ๋ฌธ์ ์ง์ด๋ผ๊ณ ํ๋ ๊ฒ์ฒ๋ผ. ๊ทธ๋์ ๋จ์ ํ ๋ฌ ๋์ ๋ด๊ฐ ๋๋ฆ ์ ํ ์ ์๋ ๊ฒ์ ์ต๋ํ ํ์ฉํ๊ณ , ๋ฐฐ์ธ ์ ์๋ ๋ด์ฉ์ ์ต๋ํ ํก์ํ๊ธฐ๋ก ๋ค์งํ๋ ๊ธฐ์ต์ด ๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ๊ณต๋ถ์ ๊ด์ฌ์ด ์๋ ์ฃผ๋์ด๋ผ๋ฉด "ํด๋ฆฐ ์ฝ๋, ์ข์ ํจํด"๊ณผ ๊ฐ์ ์ด์ผ๊ธฐ๋ฅผ ์ข ์ข ๋ฃ๋๋ค. ๋ค๋ง ๋ฌธ์ ๋ ์ด๋ณด์์ ์ ์ฅ์์๋ ์ด๋ฐ ์ด์ผ๊ธฐ๋ฅผ ๊ธฐ๊ณ์ ์ผ๋ก ๋๋ฌด ๋ง์ด ๋ฃ๋ค๋ณด๋ ๋ฌด์์ ์ค ์ธ์ฐ๋ฏ์ด ๋ฐ๋ณตํ๋ ์ด์ผ๊ธฐ์ผ ๋ฟ, ๋๋์ฒด ์ด๋ ์ ๋๊ฐ ์ข์ ๊ฒ์ธ์ง์ ๋ํ ์ฌ์ค์ ์ธ ๊ฐ๊ฐ์ด ์๋ค๋ ๊ฒ์ด๋ค. ๋ค์ ๋์๊ฐ ์์ ์ฝ๋๋ฅผ ๋ณธ๋ค๋ฉด,
- ์ฝ๋๊ฐ 2๊ฐ์ง ์์ ์ ๋์์ ํ๊ณ ์๋ค. โ ์ ๋ณด๋ฅผ ๋ฐ์์ค๊ณ โก ์ ๋ณด๋ฅผ ํ์ํ๊ณ ์๋ค. ์ด๋ด ๊ฒฝ์ฐ ์ฝ๋์ ์์กด์ฑ์ด ๋์์ง๋ค. ์์กด์ฑ์ด ๋์์ง๋ฉด ์ถํ์ ์ผ๋ถ ์ฝ๋๋ฅผ ๊ต์ฒดํด์ผ ํ ๋ ๋์์ ์ ์งํํ๊ฒ ๋ ์ ์๋ค.
- ์ ๋ฐ์ ์ผ๋ก ํด๋น ํ์ผ์ ๋ก์ง๊ณผ ๋ทฐ๊ฐ ์์ฌ์์ผ๋ฉฐ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค.
์กฐ์ธ์ ๋ฐํ์ผ๋ก 3๋ฒ์งธ ํ๋ก์ ํธ๋ถํฐ๋ ์ด๋ฐ ๊ฐ๋ฐ ํจํด์ ๋ง์ ์ ๊ฒฝ์ ์ผ๋ค. 3๋ฒ์งธ ํ๋ก์ ํธ ์ค ์ผ๋ถ๋ถ์ ๋ฝ์ ๋ฏธ๋ ํ๋ก์ ํธ๋ฅผ ํ ์ ์ด ์๋๋ฐ ์๋ง ๋ฌด์จ ๋๋์ธ์ง ์ง์ํ ์ ์์ ๊ฒ ๊ฐ๋ค.
๐ท ๋๋ ํฌ๋ฃจ๊ฑฐ ์ฐ๋งค์ฅ
์ฝ๊ฐ ํด๋ฆฌ์ ฐ์ด๊ธฐ๋ ํ์ง๋ง, ์ฐ๋งคํจ์ ๋ด์ฐ๋ฆฌ๋ฅผ ์ง์ ๊ฒฝํํ ์ ์์๋ค. ๋ฌผ๋ก ๋ด๊ฐ ๋ชจ๋ ๊ฒ์ ์จ์ ํ ์๊ณ ์๋ค๋ ์๊ฐ์ ํ ์ ์์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ด๋ฐ ์ ๋ฐ ํ๋ก์ ํธ๋ฅผ ํด๋ณธ ๊ฒฝํ์ด ์์ผ๋ "๋ฌผ๋ก ๋ ธ๋ ฅํด์ผ๊ฒ ์ง๋ง, **์ด๋ ์ ๋๋ ์์ํ๊ฒ ๋ฐ๋ผ๊ฐ ์๋ ์์ง ์์๊น?"**๋ผ๊ณ ๊ฐํ ์๊ฐํ์๋ค.

๋น์ฐํ๊ฒ๋ ์ฐ์ํํ ํฌ์บ ํ๋ ์์ฒญ ์ด๋ ค์ ๋ค. ์๋ ์ปค๋ฆฌํ๋ผ์ ๋ชฉํ๋ ๊ฐ ํ๋ก์ ํธ๋ง๋ค ์ ์ฝ ์กฐ๊ฑด์ ๊ฑด ๋ค ๊ทธ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก ์ธํ ์์ฌ์์ ๋ค์ ํ๋ก์ ํธ์์ ํด๊ฒฐํ๋ ๊ฒ์ด์๋ค. ์๋ฅผ ๋ค์ด Passport๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ธ์ฆ์ ๊ตฌํํด๋ณธ ๋ค ๊ทธ๋ค์ ํ๋ก์ ํธ์์ Passport๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ ๊ฐ์ฆ์ ํด์ํ๋ ๊ฒ์ด๋ค. ํ์ง๋ง ๋ฐ๋๋ก ์ด์ผ๊ธฐํ๋ฉด ์ด ๊ณผ์ ์ด 1~2์ฃผ๋ง๋ค ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ์ด์ ๊ธฐ์ ์ ๊ฒจ์ฐ ํ์ ํ์ ๋์ฏค ๋ค์ ๊ธฐ์ ๋ก ๊ณง๋ฐ๋ก ๋์ด๊ฐ์ ๊ฐํ๋ฅธ ๋ฌ๋ ์ปค๋ธ๋ฅผ ๋ค์ ๊ฒฝํํด์ผ ํ๋ค๋ ์๋ฏธ๊ธฐ๋ ํ๋ค.
์ฐ์ํํ ํฌ์บ ํ์์ ๋๋ ํฌ๋ฃจ๊ฑฐ์ ์ฐ๋งค์ฅ์ ๊ฒฝํํ ๊ฒ ๊ฐ๋ค. ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์์ ์์ฌ๋ก ๋ค๋ฃฐ ์ ๋๋ ์๋์๊ธฐ์ ์ ๋ง ์ด์ฌํ ๋ฐ๋ผ๊ฐ์ผ ํ๋ค.
๐ ์ธํฐ๋ท ์๋์ ์๋ ๊ฒ์ด๋?
๋ ๊ฒ์์ด ์กด์ฌํ๋ ์๋์ ์๋ ๊ฒ์ด๋ ๋๋์ฒด ๋ฌด์์ธ๊ฐ์ ๋ํ ๊ณ ๋ฏผ๋ ๋ง์ด ํ๊ฒ ๋์๋ค. ์ด ๋ถ๋ถ์ ๋ํด ํ๋ก๊ทธ๋๋ฐ์ ํ์ ํ๋ค๋ฉด ์ฝ๊ฐ์ ๋ต์ ์ฐพ์ ๊ฒ ๊ฐ๋ค. GSPH๋ผ๋ ๊ฐ๋ ์ธ๋ฐ, Googling Session Per Hour์ ์ฝ์์ด๋ค. Googling Session์ด๋ 5๋ถ ์ด์์ ๊น์ ๊ฒ์ ์์ ์ ์๋ฏธํ๋ค. ์๋ฅผ ๋ค์ด ์๋ฐ์คํฌ๋ฆฝํธ ์์ฑ ํจ์ ์ด๋ฆ์ด ๊ธฐ์ต์ด ๋์ง ์์ ๊ฒ์์ 2๋ถ ๋ง์ ๋ง์ณค๋ค๋ฉด Googling Session์ ํด๋นํ์ง ์์ง๋ง OAuth๊ฐ ์ ์๊ฐ๋์ง ์์ 10๋ถ๊ฐ ๋ํ๋จผํธ๋ฅผ ๋ด์ผ ํ๋ค๋ฉด Googling Session์ ํด๋นํ๋ค.

์ด๋ ์์ ์ ํ ๋ 1์๊ฐ์ Googling Session์ด (๋๋ต) 3ํ ์ดํ๋ผ๋ฉด ๊ทธ ๊ฐ๋ ์ ์๋ค๊ณ ํ ์ ์๋ ๊ฒ ๊ฐ๋ค. ์ฆ ์์ ์ ํ ๋ ์ค๊ฐ์ค๊ฐ ์งง์ ๊ฒ์์ ํ๋ ๊ฒ์ ๊ทธ ๊ฐ๋ ์ ๋ชจ๋ฅธ๋ค๋ ๋ป์ผ๋ก ์ง๊ฒฐ๋์ง ์๋๋ค. ํ์ง๋ง ์์ ์ ๋ชจ๋ ๋ํ ์ผ์ ์ผ์ผ์ด ๋ค ์ฐพ์๋ด์ผ ํ๋ค๋ฉด ์์ง์ ๊ณต๋ถ๊ฐ ๋ ํ์ํ๋ค๋ ๋ป์ด๋ค.
๐พ ๋ผ์ด๋ธ๋ฌ๋ฆฌ โ ์ธ๊ณ ๊ธฐ์
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ๊ณ์ธ์ ๊ธฐ์ ์ฒ๋ผ ๋ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๋ค. ๋ฌผ๋ก ์ ์๋ ค์ง ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ฒ์ฆ๋ ํจ์จ์ ์ธ ์ฝ๋๋ค์ ์งํฉ์ด์ง๋ง, ๋ค๊ฐ๊ฐ ์ ์๋ ์์ผ๋ฆฌ์ธ ํ ํฌ๋๋ก์ง๋ผ๊ณ ์๊ฐํด๋ฒ๋ฆฌ๊ณ ๋ชจ๋ ๊ณ ๋ฏผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ํ๋ ์ ๊ทผ ๋ฐฉ์์ ์กฐ๊ธ ์ํํ ์ ์๋ค.

ํนํ ์น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๊ธฐ๋ฐ ๊ธฐ์ ์ ์ฐ๋ฆฌ๋ ์ธ ์ ์๋ Plain JavaScript์ด๋ค. ๋ฌด์์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ๋ ๊ฒ์ด ์๋๋ผ ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง, ์ ์ฌ์ ์ธ ์ํ ์์๋ ๋ฌด์์ด ์๋์ง๋ฅผ ์๊ณ ์จ์ผ ํ๋ค๋ ์ ์ด ์บ ํ ๋ด๋ด ์ง์์ ์ผ๋ก ๊ฐ์กฐ๋์๋ค. ์ฆ ๋ถ๋์ดํ ๊ฒฝ์ฐ ๋น์ทํ ํํ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌํ ๊ฐ๋ฅํ ์ ๋๋ก ์ธ์ฌํ๊ฒ ๊ณต๋ถํด์ผ ํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋กํ ์ค๐ฝ ๊ธฐ์ ์ด ์๋๋ผ ํ ๋๐งโ๐ง ๊ธฐ์ ์ด๋ค.
์ผ๋ก๋ก 2016๋
์ผ์ด๋ left-pad ์ฌ๊ฑด์ด ์๋ค. left-pad๋ผ๋ 11์ค์ง๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ npm์์ ์ญ์ ๋์๊ณ ์ด๋ก ์ธํด ์์กด ๊ด๊ณ๊ฐ ๋๋ฏธ๋
ธ์ฒ๋ผ ๋ฌด๋์ง๋ฉฐ babel์ด๋ผ๋ ํธ๋์ค ํ์ผ๋ฌ๊ฐ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํด์ง ๊ฒ์ด๋ค. ์๊ฐํด๋ณด๋ฉด ์ด ์ฌ๊ฑด๋ ๊ธ๋ฐฉ ์์ฑํ ๊ฐ๋จํ ์ฝ๋์ ๊ณผํ๊ฒ ์์กดํ๋ ๋ฐ๋์ ๋ฐ์ํ ๋ฌธ์ ์๋๊ฐ?
์ทจ๋ฏธ ๊ฐ๋ฐ์์ ์ ์ฅ์ด๋ผ๋ฉด "์ฅ? babel ๊ทธ๊ฑฐ ์์ญ๋ง ๋ช ์ด ์ฌ์ฉํ๋ ์ ๋ง ๋ฏฟ์์งํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์, ๊ทธ๊ฑฐ ์ ๊ฒฝ ์ธ ์๊ฐ์ ๋ด ์ฝ๋ ์์ ์ฑ์ด๋ ์ ๊ฒฝ ์จ์ผ์ง"๋ผ๊ณ ์๊ฐํ ์ ์๊ฒ ์ง๋ง 30๋ถ๋ง ์๋น์ค๊ฐ ๋ค์ด๋์ด๋ ์์ฒญ๋ ๊ธ์ ์ ์ธ ์์ค์ ๊ฒช๋ ๊ธฐ์ ์ ์ ์ฅ์์๋ ์ด๋ฐ ๊ณ ๋ฏผ์ ํ์์ ์ด๋ผ๋ ๋ป์ด๋ค. ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ์ ์๋ ์ธ๊ณ์ธ์ ๊ธฐ์ ๋ ์๋๊ณ , ์ฐ๋ฆฌ๊ฐ ๊ธฐ์ฐ์ ๋ฅผ ์ง๋ผ ๋์๋ ์๋๊ณ , ๋ง์ฐฌ๊ฐ์ง๋ก ์ธ์ ๋ ์ง ์์๋ ์ ์๋ ์๋น์ค๋ผ๋ ์ ์ ์ผ๋์ ๋์ด์ผ ํ๋ค.
๐ฅณ ์ฌ๋ฏธ์์๋ ์ผ๋ค
๐งฉ ๋ฐฐ๋ฏผ ์ด๋ฏธ์ง ์๋ฒ ํฌ๋กค๋งํ๊ธฐ
๋ง์ง๋ง B๋งํธ ์๋น์ค๋ฅผ ์ ์ํ ๋ ๋ฐฐ๋ฏผ์ B๋งํธ ์๋ฃ๊ฐ ์์ฒญ๋๊ฒ ๋ง์ด ํ์ํ ์ผ์ด ์์๋ค. ์ฌ์ง ์นธ์ ๋ฃ์ ์ฌ์ง์ด ์์ด์ผ ์ฑ ๋๋์ด ๋ ํ ๋ ๋ง์ด๋ค. ์์ ์ ๊ฒฝํ์ ์ด๋ ค ๋ฐฐ๋ฏผ ์๋ฒ์ ์๋ ์ด๋ฏธ์ง ๋ฆฌ์์ค๋ฅผ (๊ด๊ณ์ ๋์ ํ๋ฝ์ ๋ฐ๊ณ ) ๊ธ์๋ค.

์๋ฐํ๊ฒ ๋งํ๋ฉด ์ด๋ฏธ์ง๋ค์ CDN ์คํ์น์ ์กด์ฌํ๋ ํํ์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ๋ฏผ ์๋ฒ ํดํน์ ์๋๋ค. ๋ฌธ์ ๋ ์ด ์๋ ํฌ์ธํธ๋ค๊ณผ ๋ค์ ์ด๋ฏธ์ง ์ฃผ์๊ฐ์ด ์ ์ ์๊ฒ ์จ๊ฒจ์ ธ ์๋ค๋ ๊ฒ์ด๋ค.
http://CDN๋๋ฉ์ธ.baemin.com/๋ฌด์จ/๋ฌด์จ/1abcde23-์์ฃผ๊ธด-์ํ๋ด๋ฉ๋ฆญ-์ฃผ์.jpg
์ต์ข ์ด๋ฏธ์ง CDN URI๋ ๋์ถฉ ์ด๋ ๊ฒ ์๊ฒผ๊ณ ์ ์ํ๋ฉด ์ด๋ฏธ์ง๊ฐ ๋์จ๋ค.
๋จ์ํ๊ฒ B๋งํธ ์น๋ทฐ๋ฅผ ๋์์ CSS ์ ๋ ํฐ๋ฅผ ์ฐ๋ ์์ ์์ค์ ํฌ๋กค๋ง๋ ์๋์๊ณ ์ฐํ ์บ ์ด๋ผ๊ณ ๋ฆฌ์์ค ์๋ฒ ๋ด๋ถ ์๋ฃ๋ฅผ ๊ณต์ ๋ฐ์ ๊ฒ๋ ์๋์ด์ ๊ฝค๋ ๋ ธ๋ ฅ์ด ๋ค์ด๊ฐ๋ค. ๊ฐ๋จํ๊ฒ๋ง ๊ณต์ ํ์๋ฉด iOS ๋ฐฐ๋ฏผ ์ฑ ํต์ ์ ๊ฐ์ฒญํด์ ์๋ ํฌ์ธํธ์ ์ด๋ฏธ์ง ์ฃผ์๋ฅผ ์์๋๊ณ ์ฝ๊ฐ์ CTF๋ฅผ ํตํด์ ์ด๋ฏธ์ง ์ฃผ์ ๋ฆฌ์คํธ๋ฅผ ์์๋ผ ์ ์์๋ค. ํด๋น ์ด๋ฏธ์ง ์๋ฒ์ ์๋ ์ด๋ฏธ์ง์ ์์ด์ฝ, ํจ๊ณผ์ ๋ฑ์ 1,000๊ฑด ์ ๋ ๊ธ์ด์ ๋ค๋ฅธ ์ฐํ ์บ ์บ ํ์ ๋ถ๋ค์ด ์ธ ์ ์๋๋ก ํ๋ผ์ด๋น ์ ์ฅ์์ ๊ณต์ ํ๋ค.

๐ข ์์ฉ๋์ด ๊ธฐ์ ์ผ์ฌ
์ฐ๋ฆฌ๋๋ผ ๊ธฐ์ ๋ค์ ๋นํ์ธ๋์คํ ๋ฆฌ๋ฅผ ์ค๊ฐ์ค๊ฐ ๋ค์ ์ ์์๋ค. ๋ชจ ๊ฒ์ ๊ธฐ์ ์์๋ ์์ดํ ์ด ์์ญ๋ง ๊ฐ์ฉ ์์ฐ๋๊ธฐ์ RDB๋ฅผ ์ ์ฐ์ง ์๊ณ ๋ฐ์ด๋๋ฆฌ ๋คํ๋ฅผ ์ฌ์ฉํ๋ค๋ ์ด์ผ๊ธฐ, ๋๊ตฐ๊ฐ ๊ฒ์ DB ํ๋๋ฅผ ์กฐ์ํด ๋ช์ต ์์ง๋ฆฌ ์์ดํ ์ ๋ณต์ ํ ์ฌ๊ฑด์ด ๋ฐ์ํด ์ดํ๋ถํฐ DB ์ ๊ทผ ๊ถํ ๊ด๋ฆฌ๊ฐ ๋งค์ฐ ์ฒ ์ ํด์ก๋ค๋ ์ด์ผ๊ธฐ, ๋ชจ ์๋ฐ ์ ์ฒด์์ ๊ฐ๋ฐ์๋ค์ด ๋ชจ๋ ํ์๋ค์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์ด๋ํ ์ ์์ด์ ํ๋์ ๊ฐ๋ฐ์๋ค์ด ๋ง์๋๋ก ์ฐ์์ธ ํ์ ์ ๋ณด๋ฅผ ์ด๋ํ์๋ค๋ ์ด์ผ๊ธฐ, ๋ชจ ๊ฒ์ ์ ์ฒด ์์ฅ์ด "๊ฒฝ์ ์ ์ฒด๋ณด๋ค 1์ด ๋น ๋ฅด๊ฒ ๋ง๋ค์ด"๋ผ๊ณ ์ง์ํ์๋ค๋ ์ด์ผ๊ธฐ... ๊ธฐ์ ์ํ๊ณ์ ๊ด์ฌ์ด ๋ง์ ๋์๊ฒ๋ ์ ๋ง ์ฌ๋ฏธ์๋ ์ด์ผ๊ธฐ์๋ค.

โก๏ธ ์๋์ง x ์๋์ง = ์๋์ง3
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ต๊ณ ์ ์ฅ์ ์ ๋ค๋ฅธ ์ฐ์ํํ ํฌ์บ ํ์ ๋ถ๋ค์ ๋ง๋ ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์ต๊ณ ์ ๋ณต์ง๋ ํ๋ฅญํ ๋๋ฃ๋ค์ด๋ผ๋ ๋ง์ด ๋ฌด์จ ๋๋์ธ์ง ์ด์ง ์ดํดํ ๊ฒ ๊ฐ์๋ค. ๊ฐ์ฅ ๋ํ์ ์ผ๋ก jhaemin๋์ ์ด์ผ๊ธฐํด๋ณด๊ณ ์ถ๋ค.
์ฐํ ์บ ์ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ์์ํ ๋ ๋์์ธ ์์ ๋ฐ ๊ธฐํ์๋ฅผ ์ค๋ค. ๋ค๋ง ๊ทธ ๋ด์ฉ์ ๊ถ๊ณ ์ฌํญ์ผ ๋ฟ์ด๊ณ ์ค์ ๊ตฌํ์ ์์ ๋กญ๊ฒ ํ ์ ์๋ค. ์ฆ, ๋์์ธ์ ๊ณ ์ณ์ ์ฌ์ฉ์ฑ๊ณผ ์ฌ๋ฏธ์ฑ์ ๊ฐ์ ํ๋ ๊ฒ์ ์์ ํ ์บ ํ์๋ค์ ๋ชซ์ด๋ค. ์ฒ์์๋ ์ด ๋์์ธ์ด ์๋ฌด์ ์ผ๋ก ๋ฐ๋ผ์ผ ํ๋ ๋์์ธ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ๊ทธ๋ ์ง ์์๋ค. ๊ฒฐ๊ตญ ์ข์ ๋๋ฃ๋ ์ผ์ ์ฐพ์์ ํ๋ ์ฌ๋์ด๋ผ๋ ๊ฒ์ ๋์ง์ ์์ํ๊ธฐ๋ผ๋ ํ๋ฏ ๋ชจ๋ ๊ฒ์ ์์ ๋กญ๊ฒ ์ด๋ ค์์๋ค. ๋์์ธ์ ๊ฐ์ ํ๋ , ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ , ์๋๋ฉด ๋ฐ๋๋ก ๋ฌด์ธ๊ฐ๋ฅผ ์ญ์ ํ๋ , ํฐ ํ์ด ์ฃผ์ด์ง๊ณ ํฐ ์ฑ ์๊ฐ์ ์ง๋ ๊ฒ์ด์๋ค.
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ๋์์ธ ์ ์ , ์ด ๋ถ๋ถ์ ์์ด์๋ ๊ฐ์ด ์บ ํ์์ด์๋ jhaemin๋๊ป ์ ๋ง ๋ง์ ์ํฅ์ ๋ฐ์๋ค. ์์ ๋ง์ ํ๊ณ ํ ๋์์ธ ์ฒด๊ณ๋ก ์ฌ์ฉ์ฑ ์ข์ ์น์ฑ์ ๋๋ฑ ๋ง๋์๋ ๊ฒ์ ๋ณด๋ฉฐ ๋ง์ด ๋ฐฐ์ฐ๊ฒ ๋์๋ค. ๋ด๊ฐ ์ ๋ง ์ถฉ๊ฒฉ์ ๋ฐ์๋ ์ฌ์ดํธ 2๊ฐ๋ฅผ ์ง์ ๋ณธ๋ค๋ฉด ๋ฌด์จ ๋ง์ธ์ง ์๊ฒ ๋ ๊ฒ์ด๋ค.
์ํฅ์ ๋ง์ด ๋ฐ์ ๋๋ 3๋ฒ์งธ ๋ฑ ํฌ์๋ฌ๋ ํ๋ก์ ํธ๋ถํฐ ๋์์ธ์ ๊ฐ์ ํด๋ณด์๋ค. ์ด๋ ๊ฒ ๋์์ธ์ ์จ์ ํ ์์ ํ๋ค โ


๋ด๊ฐ ๋๋ผ๊ธฐ์ ๋ด ๋์์ธ์ ์ฅ์ ์ โ ํ๋ฉด ์์๋ฅผ 3์ด๋ก ๋๋์ด ๋ฐฐ์นํด์ ์์ด๋ ์คํฌ๋ฆฐ์ ์ฅ์ ์ ์ ๊ทน ํ์ฉํ๋ค๋ ์ ๊ณผ โก ์ฐ์ธก์ ํ๋ ๋ด์ญ ์ฐฝ์ด ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ ์์ ๋กญ๊ฒ ๋ฌ๋ ฅ, ํต๊ณ, ๊ฒฐ์ ์๋จ ๊ด๋ฆฌ๋ก ์ด๋ํด๋ ์ฐ์ธก์ฐฝ์ ๋ด์ฉ์ด ์ ์ง๋๋ค๋ ์ ์ด๋ค. ์ฌ๋์ด๋ ๋น์ทํ ๋๋?
์ด ์ธ์๋ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ ์ฌ React๋ฅผ ๋ง๋ค์ด๋ฒ๋ฆฌ์ naamoonoo๋, ์ฃผ๋ง๋์ Elastic Search๋ฅผ ์์ฑํด์ค์ pigrabbit๋, React๋ฅผ ์จ ์ฌ๋ฏ ํธ์ํ๊ฒ ๋ค๋ฃจ์๋ dnacu๋, JS๋ง์ผ๋ก SPA ๊ตฌ์กฐ์ ์ฑ๊ธํค ํจํด์ ๋๋ฑ ๊ตฌํํ์ younho9๋, ๋ฐ์ดํฐ ์ ๊ทผ ์ ๋ต์ ์ฒด๊ณ์ ์ผ๋ก ๊ตฌํํ์ 0407chan๋, ๋ฐค์ ๋์์ธ ๊ตฌ์กฐ๋ฅผ ์น ๋๋ด์ Jenny ๋ ๋ฑ... ์ฌ๊ธฐ์ ๋ค ์ ์ง ๋ชปํ ์ ๋๋ก ์ ๋ง ๋ฐฐ์ธ ๊ฒ์ด ๋์ณ๋ฌ๋ค.
๐ฌ ๊ธฐํ ๋ฐ ๊ฒฐ๋ก
- Git๊ณผ GitHub์ผ๋ก ์ฌํ๋ ํ์
์ ์ฒ์ ํด๋ดค๋ค. 1์ธ ๊ฐ๋ฐ์ ํ ๋๋ git์
branchcheckout๊ธฐ๋ฅ์ ์ ๋๋ก ํ์ฉํ ์ผ์ด ๋ง์ง ์๋ค. Git ํ์ ์ ์์ด์๋ GSPH < 3์ผ๋ก ์ ๋ง ์ ๋ฐฐ์ด ๊ฒ ๊ฐ๋ค. - ์ค๊ฐ ์ค๊ฐ ๊ฐ์๋ค์ด ์ ๋ง ์ข์๋ค. ๋งค์ฃผ ์์์ผ๋ง๋ค ์๋ ๊ฐ์๋ค์์ ๋ฐฐ๋ฏผ ์๋น์ค์ ๊ฐ๋ฐ๊ณผ ์ด์์ ๋ํ ํฅ๋ฏธ๋ก์ด ์ ๋ค์ด ๋ณด์๋ค. ํนํ ๊น๋ฏผํ ๊ฐ๋ฐ์๋์ ๊ฐ์๊ฐ ์ ๋ง ์ธ์์ ์ด์๋ค.
- ํ์ฌ ์ํ์ ๊ฐ์ ๊ฒฝํํด๋ณผ ์ ์์ด์ ์ ๋ง ์ข์๋ค. 21์ด์ ํ์ฌ ์ํ์ ๊ฒฝํํด๋ณผ ์ ์๋ค๋!
- ์น์ ํ๊ฒ ์๋ ค์ฃผ๋ ํ ๋๋๋ค์ด ์ดํด์ฌ์ด ์ ๋ง ๊น์๋ค. ๋๋ฅผ ๋ฐฐ๋ คํด์ค๋ค๋ ๊ฒ์ด ๋๊ปด์ก์๋ค. ์ค๊ฐ ์ค๊ฐ ๋ ํฌ๋ฆฌ๋ ์ด์ ํ๋๋ ๋ง์๋๋ฐ, ์ฝ๋ก๋19 ๋๋ฌธ์ ๋ ํฌ๋ฆฌ๋ ์ด์ ํ๋์ด ์ถ์๋ ๊ฒ์ด ์์ฌ์ ๋ค.
- ์ ๋ง ์์คํ ๊ฒฝํ์ด์๊ณ ์๋ก์ด ๊ฐ๋ฅด์นจ์ ๋ง์ด ์ป์๋ค. ๋ด๊ฐ ๊ธฐ๋ณธ๊ธฐ๊ฐ ์กฐ๊ธ ๋ ์ถ์คํ๋ค๋ฉด ํจ์ฌ ๋ ๊น์ ๋ด์ฉ๊น์ง ๊ณต๋ถํ ์ ์์์ํ ๋ฐ, ๊ทธ๋ฌ์ง ๋ชปํด ์์ฌ์์ด ์ฝ๊ฐ ๋จ๋๋ค. ์์ผ๋ก์ ์ฌ์ ์ ์์ด ์ ๋ง ์ข์ ์์ฐ์ด ๋ ๊ฒ ๊ฐ๋ค.
- ๋ฌผ๋ก , ๋ด๊ฐ ๊ณง์ฅ ์๋ฒฝํ ์๋ ์์ ๊ฒ์ด๋ค. ๋๋ ์์ฆ ์ด์๊ณผ ํ์ค์ ๊ดด๋ฆฌ๋ฅผ ์กฐ๊ธ์ฉ ๋๋ผ๊ณ ์๋ค. ๊ทธ๋๋ ์ฐ๋ฆฌ์ ์ด์ํฅ์ ๋์นจ๋ฐ์ ๋ง์ถ๊ณ ๊ฑธ์ด๋๊ฐ๋ค๋ฉด ์ธ์ ๊ฐ๋ ๋๋ฌํ์ง ์์๊น โ ํ๋ ์ผ๋ง์ ๋ฏฟ์์ด ์์ ๋ฟ์ด๋ค ๐งญ
๐ ๋ ๋ง์ ์๋ฃ๋ค
-
์ฐ์ํํ์ ๋ค ๊ณต์ ์๋ฃ
-
7์์ ๊ธฐ๋ก๋ค
- (์ฐ์ํํ ํฌ์บ ํ 3๊ธฐ) ์บ ํ์ ๋ฐํ์ ์ ๋๋ฉฐ
- 2020 ์ฐ์ํ ํ ํฌ์บ ํ(3๊ธฐ) 7์ ํ๊ธฐ
- 2๋ฒ์งธ ํ์ดํ๋ก๊ทธ๋๋ฐ ์ข ๋ฃ ๋ฐ ํ๊ณ ๐
- ๊ธฐ๋ณธ์ ์ค์ํ๋ค.
- ๋๋ ์ฐ-๊ฐ๋ฐ์์ธ๊ฐ (์ฐ์ํํ ํฌ์บ ํ 3๊ธฐ 4์ฃผ์ฐจ ํ๊ณ )
- ๋น์ ์ด ์ฐ์ํํ ํฌ์บ ํ์ ๋์ ํด์ผ ํ๋ 3๊ฐ์ง ์ด์
- ๋๋ฒ์งธ ํ๋ก์ ํธ - Todo List ๊ฐ๋ฐ๊ธฐ
- ์ฐ์ํ ํ ํฌ ์บ ํ๋ก ์ฑ์ฅํ๊ธฐ
- ์ฐ์ํํ ํฌ์บ ํ์ ์ค๊ธฐ๊น์ง ๊ทธ๋ฆฌ๊ณ ์ง๋ 4์ฃผ์ ํ๊ณ
- ์ข์ ๋๋ฃ๋ ๋ฌด์์ธ๊ฐ?
- ์ฃผ๋์ด ๊ฐ๋ฐ์๊ฐ ๋๋ '๋์๊ฒ ์์ด ๋ถ์กฑํ, ๊ทธ๋์ ๊ฐ์ถฐ์ผ ํ ' ํ์ ๋ฅ๋ ฅ
-
8์์ ๊ธฐ๋ก๋ค
- (์ฐ์ํํ ํฌ์บ ํ 3๊ธฐ) ์บ ํ๋ฅผ ๋ง์น๋ฉฐ
- Frontend Designer
- ๋๋ ๋น๋ก์ ์ฑ์ฅํ์ต๋๋ค. (์ฐ์ํํ ํฌ์บ ํ 3๊ธฐ)
- ๋์ฐฉ์ง๋ ํ๋์ง๋ง, ๊ฐ๋ ๊ธธ์ ํ๋๊ฐ ์๋๋ค.
- ๋ง์์ ์๋ฆฌ (์ฐํ ์บ 3๊ธฐ๋ฅผ ๋ง์น๋ฉฐ)
- ์ฐํ ์บ ๋งค์ผ์ ์งง์ ๊ธฐ๋ก
- ์น์ ๊ณผ ๋ถ์น์ ์ฌ์ด - ์ฐ์ํ ํ ํฌ ์บ ํ ์ ์ฒด ํ๊ณ
-
๊ธฐ์ ๊ด๋ จ
- ์ฐ์ํ ํ ํฌ์บ ํ 3๊ธฐ ์คํฐ๋ ๋ธ๋ก๊ทธ
- CI ๋ถ์ด๊ธฐ ์ํด GitHub Organization์ ๊ถํ ์์ฒญํ๊ธฐ
- Context API, LifeCycle API, Component Docs, Component, Design Pattern, Redux
- Getting started to import...
- Git ๋จ์ถํค ํ๋ํ
- Github Actions + CodeDeploy + EC2 ์๋๋ฐฐํฌํ๊ธฐ
- Image Lazy Loading
- Iterm ํธ์ถ
- React ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ - ์๋ฌด๋ ์๋ ค์ฃผ์ง ์์์ ํผ์์ ์ฝ์งํ๋ค.
- TIL_20200715
- TIL_20200802(Postman๊ณผ ์ด๋ณํ๊ธฐ)
- TIL_20200816
- TIL_20200817
- TIL_20200824
- VS Code์์ ์์ฐ์ฑ์ ํฅ์ํด๋ณด์
- VSCode์์ alias IntelliSense ์ ์ฉ์ํค๊ธฐ
- VanilaJS๋ก ๋ฌ๋ ฅ ๊ตฌํํ๊ธฐ.
- Webpack์ผ๋ก boilerplate ๋ง๋ค๊ธฐ - 1 (webpack, babel ์ค์ ํ๊ธฐ)
- semantic versioning
- cookie parser
- express.json() vs express.urlencoded()
- heroku mysql ์ฐ๋ํด์ webpack + express ํ๋ก์ ํธ ๋ฐฐํฌํด๋ณด๊ธฐ (heroku mysql์ฐ๋ํธ)
- mouse event๋ง์ผ๋ก ํฌ๋๋ฆฌ์คํธ(todo list) ๋ง๋ค๊ธฐ (feat. ์ด๋ฒคํธ ์์)
- mouse ์ด๋ฒคํธ๋ก drag and drop ๊ตฌํํ๊ธฐ
- woowahan-ORM A very light promise-based Node.js ORM for MySQL
- ๊ธฐ์ ๋ฉด์ ๋๋น
- ๊ธฐ์ ๋ฌธ์ : GraphQL
- ๋๋๊ทธ ์ค ๋๋กญ ์ ๋๋ฉ์ด์
- ๋ฆฌ์กํธ ๋ฐ๋ผํ๋ ค๋ค ๋ฐ์ง๊ฐ๋์ด ์ฐข์ด์ง ์ด์ผ๊ธฐ
- ๋ฆฌ์กํธ๋ ์ด๋ป๊ฒ ์๋ํ ๊น - Diffing
- ๋ง์ฐ์ค ์ด๋ฒคํธ๋ฅผ ์ด์ฉํ Drag & Drop ๊ตฌํ๊ธฐ
- ๋ฐฐ๋ฏผ์ํ ์นดํ ๊ณ ๋ฆฌ ๋ฉ๋ด ์ด์คํ ๊ฐ์ (?) ํ๊ธฐ
- ์๋ , Passport
- ์คํ ๋ฐ์ด๋ ์ด๋ป๊ฒ ๋ ์์์๊น?
- ์ปค์คํ ์๋ฆฌ๋จผํธ(Custom Elements)
- ์ฟ ํก ์นดํ ๊ณ ๋ฆฌ ๋ฉ๋ด ์ด์คํ ๊ฐ์ (?) ํ๊ธฐ
- ํ๋ก์ ํธ ๊นํ๋ธ ํ์ด์ง์ ๋ฐฐํฌํ๊ธฐ
- ํ๋ก ํธ์๋ ๊ฐ๋ฐํ๊ฒฝ ์ค์ ํ๊ธฐ
-
์ด๋ฏธ์ง ์์ค
- ๋๋ ํฌ๋ฃจ๊ฑฐ ํจ๊ณผ
- ๋ฏธ๋๋ค (์ํธ์ฝค)
- MBC ๋ฌดํ๋์
- StarCraft II: Legacy of the Void Opening Cinematic
