์ฌ์ฉ ๊ธฐ์
ElasticSearch PostgreSQL Prisma GraphQL Express.js React Next.js TypeScript Material UI
VPC ๊ตฌ์ฑ, VPN ์ค์ (2021.6)
์ธ๋ถ์์์ DB ์ ๊ทผ์ ์ฐจ๋จํ๊ธฐ ์ํ VPC ๊ตฌ์ฑ. ๋ด๋ถ ๊ฐ๋ฐ์๋ค์ด ์ ์ํ ์ ์๋๋ก VPN ์ค์
โข
๊ฐ์ ๋ฆฌ์ ์ ํผ๋ธ๋ฆญ ์๋ธ๋ท์ ์๋ฒ EC2 ์ธ์คํด์ค ์คํ, DB๋ ํ๋ผ์ด๋น ์๋ธ๋ท์ ์ฐ๊ฒฐ.
โข
ํผ๋ธ๋ฆญ ์๋ธ๋ท์ ๋ชจ๋ ์ธํฐ๋ท ํธ๋ํฝ์ ํ์ฉํ๊ณ , ํ๋ผ์ด๋น ์๋ธ๋ท์ ๊ฐ์ VPC ๋ด์ ํผ๋ธ๋ฆญ ์๋ธ๋ท์์์ ํธ๋ํฝ๋ง ํ์ฉํ์ฌ VPC ์ธ๋ถ์์์ DB ์ ๊ทผ ์ฐจ๋จ
โข
๋ก์ปฌ ๊ฐ๋ฐ, CI ๋ฑ VPC ์ธ๋ถ์ ํน์ ์ปดํจํฐ์์ DB์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ๋ฅผ ์ํด VPN ํด๋ผ์ด์ธํธ ์๋ํฌ์ธํธ ์ค์
โข
easy-rsa๋ก ์ํธ์ธ์ฆ ํค ๋ฐ๊ธํ์ฌ ACM์์ ์ธ์ฆ์ ๊ด๋ฆฌํ๊ณ AWS VPN Client ํ๋ก๊ทธ๋จ์ผ๋ก ๋ก์ปฌ์์ ์ฐ๊ฒฐํ ์ ์๋๋ก ํจ
์บ์, ์์ ํ์ด์ง UI ๊ฐ์ ๋ฐ ์ค์น ์ ๋ ์ด๋ฒคํธ ๊ฐ๋ฐ (2021.6~6.28)
ํ์ฅํ๋ก๊ทธ๋จ ์ค์น ์ ๋๋ฅผ ์ํ ์นด๋, ๋ชจ๋ฌ ๋ฐ ์บ์ ๋ฆฌ์๋ ์ด๋ฒคํธ ๊ฐ๋ฐ
โข
์์ ํ์ด์ง: '์ปคํผ/์๋ฃ' ์ํ์ด ๋ฐ๋ก ๋ฐ ์ ์๊ฒ ๋ณ๊ฒฝ
โข
์บ์: ์บ์๊ฐ ๋์ ์ ๋๋๋ก ์นด๋์ ๊ณจ๋ ์ปฌ๋ฌ ํ
๋๋ฆฌ ์ถ๊ฐ
์ด๋ฏธ์ง
โข
์ค์น ์ ๋: ์ค์น ์ ๋๋ฅผ ์ํ ์ค์น ์นด๋ ๋ฐ ๋ชจ๋ฌ ๊ฐ๋ฐ / ์ด๋ฒคํธ ๊ฐ๋ฐ
โฆ
์ค๋ ํ๋ฃจ ์๋ณด๊ธฐ ๋ฑ ๊ธฐ๋ฅ ๊ตฌํ ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ํด localForage ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ indexedDB์ ๋ฐ์ดํฐ ์ ์ฅ
โฆ
ํ์ฅํ๋ก๊ทธ๋จ ์ต์ด ์ค์น ์ ์ ์๊ฒ ์บ์๋ฅผ ๋ฆฌ์๋ํ๋ ์ด๋ฒคํธ ๊ธฐ๋ฅ ๊ฐ๋ฐ
์ฝํ ์ธ ๋ณ๋ชฉ ํ์ ํด๊ฒฐ์ ์ํ ๋ฆฌ๋ทฐ ์๋ํ, ๋ฐ์ดํฐ ์คํ๋์ค ์ผ์ผ ์งํ ์๋ฆผ(2021.3~4.9)
๋ฆฌ๋ทฐ ๋ณ๋ชฉ ๋ฌธ์ ํด๊ฒฐ, ์ฝํ
์ธ ๋ฐํ ์๋ฅผ ์ผ์ ํ๊ฒ ์ ์งํ๊ธฐ ์ํด ๋ฆฌ๋ทฐ ์๋ํ ๋์
โข
์๋ผ์คํฑ์์น๋ก ์ฝํ
์ธ ํ๊น
์๋ํ, ๋จธ์ ๋ฌ๋์ผ๋ก ๋ฆฌ๋ทฐ์ด๊ฐ ์๋์ผ๋ก ํ๊น
์ ์ฝํ
์ธ ์ ๋ง๋ ํ๊ทธ ์ถ์ฒ
โฆ
์๋ผ์คํฑ์์น๋ก ๋์์ด, ์ฌ์ ์ ํตํด ํด๋น ํ๊ทธ์ ๋ง๋ ํฌ์คํธ๋ฅผ ๊ฒ์ํด ํ๊น
. cli ์ปค๋งจ๋๋ก ๋ง๋ค์ด lightsail์ ๋ฐฐํฌ. crontab์ผ๋ก ๋งค์ผ ์คํ๋๋๋ก ์ค์ผ์ค๋งํด ํฌ๋กค๋ง๋ ์ฝํ
์ธ ๋ฅผ ์ผ๊ด ํ๊น
โฆ
OneVsRestClassifier๋ฅผ ์ฌ์ฉํ ์ ํ ๋ถ๋ฅ ๋ชจ๋ธ๋ก Multi-Label-Classification ์์
ํ, fastapi๋ก ๋น๋ํ์ฌ lightsail์ ๋ฐฐํฌ
โข
๊ตฌ๊ธ ๋ฐ์ดํฐ ์คํ๋์ค๋ก DB์ ์ฐ๋ํด ๋ฆฌ๋ทฐ ๋๊ธฐ ์ ๋ฐ ๋ฐํ ์๋ฅผ ๋ณด๊ณ ์๋ก ์์ฑํด ๋งค์ผ ์ฌ๋์ผ๋ก ์๋ฆผ
โข
๋ฆฌ๋ทฐ๋๊ธฐ ์ฝํ
์ธ ๊ฐ 2,847๊ฐ์์ 1๊ฐ๋ก ๊ฐ์
โข
๊ฐ๋ฐ ์ฝํ
์ธ ๋ ๋งค์ผ 20๊ฐ์ฉ ๋ฐํ๋๋๋ก ์ค์ผ์ค๋ง
ํ๋ก์ ํธ ํ๊ฒฝ, ์์ฐ์ฑ ๊ฐ์ (2021.2)
Github ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ฐ ํด๋ผ์ด์ธํธ ์ต์ ํ ์งํ
โข
ํด๋ผ์ด์ธํธ์์ ํน์ ์ปดํฌ๋ํธ ์ฝ๋๊ฐ ๋๋ฌด ์ปค์ ๊ฐ๋
์ฑ์ด ๋จ์ด์ง๊ณ ์์ ์ด ์ฝ์ง ์์ ์ปดํฌ๋ํธ ๋ถ๋ฆฌ
โข
ํ์ฅํ๋ก๊ทธ๋จ์ ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ๊ฐ๋ณ๊ฒ ์ ์งํ๊ธฐ ์ํด ๋ฒ๋ค์ฌ์ด์ฆ ์ต์ ํ ์งํ
โฆ
next-budle-analyzer๋ก ๋ฒ๋ค ์ฌ์ด์ฆ ๋ถ์ํ์ฌ ํฌ๊ธฐ๊ฐ ํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ฒด
โฆ
์ฝ๋ ์คํ๋ฆฌํ
์ผ๋ก ๋ฒ๋ค ์ฌ์ด์ฆ๊ฐ ํฐ ์์ ํ์ด์ง ๊ฐ์
โฆ
๋ผ์ดํธํ์ฐ์ค ํผํฌ๋จผ์ค ์ ์ ์์น, shop ํ์ด์ง ๋ฒ๋ค ์ฌ์ด์ฆ 156ํผ์ผํธ ๊ฐ์
โฆ
์ดํ, size-limit ์ก์
์ผ๋ก ๋ฒ๋ค ์ฌ์ด์ฆ ์ฒดํฌ ๋ฐ ์ ํ
โข
sentry ํ๋ก์ ํธ์ ๊นํ ์ก์
์ํฌํ๋ก์ฐ๋ฅผ ์ฐธ๊ณ ํด, ๊นํ action/cache ์ฌ์ฉํ์ฌ ์ก์
์คํ ์๊ฐ ๊ฐ์
โข
ํ์๊ณผ ์์ํ์ฌ gitmoji, PR template ๋ฑ์ ํ์ฉํด git commit, merge ์ ๋ต, PR ๋ถ๋ถ ๊ฐ์
๊ด๋ จ ํฌ์คํธ
์บ์ ์ ๋ฆฝ, ์ฟ ํฐ ๊ตฌ๋งค/์กฐํ/์ทจ์/์ฌ์ ์ก API, ํด๋ผ์ด์ธํธ, ์ด๋๋ฏผ ๊ฐ๋ฐ(2020.12 ~ 2021.1)
์ ํด ์
์ฒด์ธ KTMHows์ ๋ช
์ธ์๋ฅผ ์ฐธ๊ณ ํด ์ฟ ํฐ ๊ตฌ๋งค,์กฐํ,์ทจ์,์ฌ์ ์ก API ๊ฐ๋ฐ
โข
์ฟ ํฐ ๋ฆฌ์คํธ, ์์ธ ์กฐํ ๋ฐ ์ทจ์, ์ฌ์ ์ก ๊ด๋ฆฌ ์ด๋๋ฏผ ๊ฐ๋ฐ
โข
์ฟ ํฐ ๋ฆฌ์คํธ, ์์ธ ํ์ด์ง ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ
โข
ํ์ฅํ๋ก๊ทธ๋จ ๋ฉ์ธ ํผ๋์์ ๋๋ค์ผ๋ก ์บ์๊ฐ ๋จ๋๋ก ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ
โข
์บ์ ์ ๋ฆฝ ์ด๋ทฐ์ง ๋ฐฉ์ง
โฆ
์ ๋ฆฝ ์ ๋ฆฌ์บก์ฐจ(v3) ์ฒดํฌํด ๋ด ํ์ฉํ ์ด๋ทฐ์ง ๋ฐฉ์ง
โฆ
์๋ฒ์ sentry ์ถ๊ฐํ์ฌ ์บ์ ์ ๋ฆฝ ์ด๋ทฐ์ง, ์ฟ ํฐ ์ ์ก ์คํจ ๋ฑ ๋ชจ๋ํฐ๋ง
์ฌ๋ด ๋ด์ค๋ ํฐ ์ฌ๋๋ด '์ํํ์์ฆ' ๊ฐ๋ฐ(2020.11 ~ 2020.12)
์ฌ๋ด ์ง์๋ค์ ์ฝํ
์ธ ๊ฒ์๋ฅผ ์ฅ๋ คํ๊ธฐ ์ํด ๊ฐ์ธ DM์ผ๋ก ์ผ์ ์๊ฐ์ ํฌ์คํธ๋ฅผ ๋ณด๋ด์ฃผ๋ ์ฌ๋๋ด ๊ฐ๋ฐ.
โข
Slack Review Bot API ๊ฐ๋ฐ. ์ด๋๋ฏผ์์ ์ฌ๋๋ด์ ๊ฐ์
ํ ์ ์๋๋ก Slack OAuth ๊ฐ๋ฐ
โข
๋ฆฌ๋ทฐ์ด์ ์ ํธ ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ง์ ํด ๊ฐ๋ฐ์์๊ฒ๋ ๊ฐ๋ฐ ์ฝํ
์ธ , ๊ทธ ์ธ์ ๋ฆฌ๋ทฐ์ด์๊ฒ๋ ํธ๋ ๋ ์ฝํ
์ธ ์ ์ก
โข
์ฝ๋ ๋น๋๋ก ํฌ๋ก ์ค์ผ์ค๋ฌ๋ฅผ ์ค์ ํด ๊ฐ์
๋ ๋ฆฌ๋ทฐ์ด์๊ฒ ๋งค์ผ ํฌ์คํธ 3๊ฐ์ฉ ์ ์ก. ์ ์ก ์คํจ ์ ์ฑ๋์ ์๋ฆผ
ํด๋ผ์ด์ธํธ ๋คํฌ๋ชจ๋ ๊ฐ๋ฐ(2020.10 ~ 2020.11)
์๋ฒ์ฌ์ด๋ ๋ ๋๋ง์์๋ ํ๋ฉด ๊น๋ฐ์ ์์ด ๋ ๋๋งํ ์ ์๋๋ก ๋คํฌ๋ชจ๋ ๊ฐ๋ฐ
โข
์คํฌ๋ฆฝํธ๊ฐ ์คํ๋ ๋๊น์ง HTML ๋ ๋๋ง์ด ์๋๋ ์ ์ ํ์ฉ, ์ปฌ๋ฌ๋ชจ๋ ์ค์ ํ๋ ์ธ๋ผ์ธ ์คํฌ๋ฆฝํธ ์ฃผ์
โข
๋คํฌ๋ชจ๋, ๋ผ์ดํธ๋ชจ๋ ์คํ์ผ์๋ css variable์ ์ฌ์ฉํด ์ปฌ๋ฌ๋ชจ๋ ๋ณ์๊ฐ ๋ฐ๋๋ฉด ๋ฐ๋ก ํ๋ฉด์ ์ ์ฉ
์ฝํ ์ธ ์๊ธ์ ์ํ Scraper ๊ฐ๋ฐ(2020.10)
โข
ํด์ปคํค์์ ์ฌ์ฉํ๋ og-scraper ๋ฐ cheerio, ์๋น์ค API ๋ฑ์ผ๋ก ๋๋ฉ์ธ ๋ณ ์คํฌ๋ ์ดํผ ๊ฐ๋ฐ
โข
๋ฉ์์งํ ๋ฐฉ์์ผ๋ก DB์ ํด๋ง, ํฌ๋กค๋ง๋ ๋งํฌ๊ฐ DB์ ์์ด๋ฉด ํด๋น ๋งํฌ์ ํ์ด์ง๋ฅผ ์คํฌ๋ ์ดํ
โข
cli ์คํ์ด ๊ฐ๋ฅํ๋๋ก commander ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก scrape ์ปค๋งจ๋ ๊ฐ๋ฐ
โข
AWS์ lightsail ์ธ์คํด์ค์ pm2๋ก ์คํํ์ฌ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์์ ์คํฌ๋ ์ดํํ ์ ์๋๋ก ๊ฐ๋ฐ
โข
์ผ๋ณ ํ๊ท 70๊ฐ์ ์ฝํ
์ธ ํฌ๋กค๋ง
์ํ ํด๋ผ์ด์ธํธ ํ๋ก์ ํธ ํ๊ฒฝ ๊ตฌ์ถ + ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ ๊ฐ๋ฐ(2020.8 ~ 2020.9)
โข
next.js, material-ui, emotion, apollo client๋ก ํด๋ผ์ด์ธํธ ํ๊ฒฝ ๊ตฌ์ถ
โข
release-it์ ์ฌ์ฉํ ๊นํ ์ก์
์ผ๋ก Lighthouse CI, Chrome Extension ๋ฐฐํฌ ์๋ํ
โข
์ฌ์ด๋๋ฐ, ํค๋ ์ปดํฌ๋ํธ, ๋ก๊ทธ์ธ ์นด๋, ๊ด์ฌํ๊ทธ ์ค์ ๋ค์ด์ผ๋ก๊ทธ, ์คํ๋ผ์ธ ํ์ด์ง ๊ฐ๋ฐ
โข
๊ด์ฌํ๊ทธ ์ค์ ๋ค์ด์ผ๋ก๊ทธ์์ ์ง์
๋ณ ์ถ์ฒ ํ๊ทธ ์ค์ ํ ์ ์๋๋ก API, Client, Admin ๊ฐ๋ฐ