MoovDa๋ ์ํ์ ๋ํ ํ๊ฐ์ ๋ฆฌ๋ทฐ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๋ ๊ณณ์
๋๋ค.
๋ค๋ฅธ ์ฌ์ฉ์๋ค์ ์๊ฒฌ์ ๋ฃ๊ณ , ์์ ๋ง์ ์ํ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด๋ณด์ธ์.
MoovDa์์๋ ์ํ ์ ๋ชฉ, ๊ฐ๋
, ๋ฐฐ์ฐ, ์ฅ๋ฅด ๋ฑ ๋ค์ํ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ์ํ๋
์ํ๋ฅผ ์ ํํ ๊ฒ์ํ ์ ์์ต๋๋ค.
์ด๋ฅผ ํตํด ๋น์ ์ด ๊ฐ์ฅ ๋ง์์ ๋๋ ์ํ์ ๋ฐ๊ฒฌํ ์ ์์ ๊ฑฐ์์!
๋ค์ํ ์ํ๋ค์ ์ดํด๋ณด๊ณ , ๋ค๋ฅธ ์ฌ์ฉ์๋ค๊ณผ ์๊ฒฌ์ ๊ณต์ ํ์ฌ ์ํ์ ๋ํ ์๋ก์ด ๊ด์ ์ ์ป์ด๋ณด์ธ์.
์ข์ํ๋ ์ํ, ์ถ์ฒํ๊ณ ์ถ์ ์ํ, ํน๋ณํ ๊ฐ๋์ ์ค ์ํ ๋ฑ ๋ค์ํ ์ฃผ์ ๋ก ์ด์ผ๊ธฐ๋ฅผ ๋๋๋ฉด์ ์ฆ๊ฑฐ์ด ์๊ฐ ๋ณด๋ด์๊ธฐ ๋ฐ๋๋๋ค.
- Main
- Login
- Movie Search
- Movie Detail
- Comment
- Comment Like
- To Watch
- Question
- Answer
- ์ ์๋น
์ ํ ์ ์์๊น?
์ฒ์ ๊ธฐํ๋ถํฐ ๊ฐ๋ฐ, ๋ฐฐํฌ๊น์ง ํ๋ ๊ฑด ์ฒ์์ด๋ผ ์ ํ๋ ๊ธฐ๊ฐ ์์ "๊ณผ์ฐ ์ ํ ์ ์์๊น?" ๋ผ๋ ๋๋ ค์์ ๊ฐ์ง๊ณ ์์ํ์ง๋ง, ์ ์ ์์ด ํ๋ก์ ํธ๋ฅผ ์งํํ๋๋ ๋๋ ค์์ด๋ผ๋ ๊ฐ์ ์ ์๊ณ ํ๋ก์ ํธ๋ฅผ ๋ง์น๊ฒ ๋์๋ค. ํํ๋๋ ๋ถ๋ถ์ด ์ ๋ง ๋ง์๋ค. ์ฒซ๋ฒ์งธ๋, ๊ธฐํ๋จ๊ณ์์ ์ด ์ ๋๋ฉด ๊ธฐํ ์ ํ๋ค!๋ผ๊ณ ์๊ฐํ์์ง๋ง, ์ ํ ๊ทธ๋ ์ง ์์๋ค. ๊ธฐํ์ ์์ด์ ์๊ฐ์ ํฌ์ํ ๋งํผ ๋ฆฌํด๊ฐ์ด ๋์จ๋ค๋ ๊ฑธ ํ๋ก์ ํธ ์ค๋ฐ์์ผ ๊นจ๋ซ๊ฒ ๋์๋ค. API ๋ช ์ธ์๋ผ๋ ์ง, ํ๋ฉด์ ์์, ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ถ๋ค๊ณผ ๋ ๋ง์ ๋ํ๋ฅผ ํ๊ณ ์งํํ์ผ๋ฉด ๊ฐ๋ฐ ์์ญ์์ ์๊ฐ์ ๋ ๋ง์ด ์ธ์ด๋ธ ํ ์ ์์์ ๊ฑฐ ๊ฐ๋ค๋ ์์ฌ์์ด ์ ๋ง ์ปธ๋ค. ๋๋ฒ์งธ๋, ํ์ฅ์ผ๋ก์ ์ญํ ์ด์๋ค. ํ์๋ก, ๋ฉํ ๋ง ์ ์ฒญ, ๊ณผ์ ์ ์ถ๊ฐ์ ๋ถ๋ถ์ ๋น์ฐํ ํ์ฅ์ด ๋งก์์ ํด์ผํ๋ค๊ณ ์๊ฐ์ ํ๊ณ ์ค์ฒํ์ง๋ง, ์ค๊ฐ ์ค๊ฐ ๋ฆ๊ฒ ๋ฉํ ๋ง์ ์ ์ฒญํ๋ค๋์ง, ๊ณผ์ ์ ์ถ์ ๋ค๋ฆ๊ฒ ์ ์ถ ํ๋ค๋์ง ์ด๋ฐ ๋ถ๋ถ์ ์์ด์ ๊ผผ๊ผผํ๊ฒ ํ์ง ๋ชปํด์ ํ์๋ถ๋ค๊ป ์ฃ์กํ๋ค. ๋ค์ ํ๋ก์ ํธ๋ฅผ ํ๊ฒ ๋๋ค๋ฉด ์ด๋ฒ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ํ๋ค๊ณ ์๊ฐํ๋ ๊ฑด ์ ์งํ๊ณ ํํ๋๋ ๋ถ๋ถ์ ์์ ํด์ ๋ ์ ํ ์์ ์ด ์๊ฒผ๋ค!
์ ์๋น Worklog๐
Position : Frontend
Stack : Typescript, ReactJS, NextJS, Redux Toolkit, Styled Components
Works :
- ๊ฒ์ ํ์ด์ง
- API response์ ๋ด๊ฒจ์ค๋ params๋ฅผ ํํฐ์ ๋ง๊ฒ ๋ณ๊ฒฝ
- ์ฅ๋ฅด์, ๊ตญ๊ฐ์, ์ฐ๋ น์, ๋ณ์ ์ ํํฐ ์ ์ฉ
- Pagination
- ์ํ ํฌ์คํฐ 5x2
- ๋ค์, ์ด์ ํ์ด์ง ๋ฒํผ
- ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ์ ๋ง๊ฒ ํ์ด์ง ๊ฐฏ์ ์ ์ฉ
- ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํโจ * ๊ฒ์์ฐฝ์ ์ํ, ๊ฐ๋ , ๋ฐฐ์ฐ๋ก ๊ฒ์ ๊ฐ๋ฅโจ
- API response์ ๋ด๊ฒจ์ค๋ params๋ฅผ ํํฐ์ ๋ง๊ฒ ๋ณ๊ฒฝ
- ๋ก๊ทธ์ธ ํ์ด์ง
- ๊ตฌ๊ธ ๋ก๊ทธ์ธ ๋ฒํผ
- Oauth2 ๊ตฌ๊ธ url๋ก ์ด๋
- ๋ก๊ทธ์ธ ์๋ฃ์ ๋ฉ์ธํ์ด์ง๋ก ์ด๋โจ
- ๊ตฌ๊ธ ๋ก๊ทธ์ธ ๋ฒํผ
- ํค๋, ํํฐ
- ๊ฐ ์์ด์ฝ์ ๋ง๊ฒ ํ์ด์ง ์ด๋
- ๋ก๊ณ ํด๋ฆญ ์ ๋ฉ์ธํ์ด์ง ์ด๋
- ๊ฒ์๋ฒํผ ํด๋ฆญ ์ ๊ฒ์ํ์ด์ง ์ด๋
- ๋ก๊ทธ์ธ ๋ฒํผ ํด๋ฆญ ์ ๋ก๊ทธ์ธ ํ์ด์ง ์ด๋
- ๋ก๊ทธ์ธ ์๋ฃ ์ ํค๋์ ๋ก๊ทธ์์ ์์ด์ฝ์ผ๋ก ๋ณ๊ฒฝ
- ๋ก๊ทธ์์ ์์ด์ฝ ํด๋ฆญ ์ ๋ก๊ทธ์ธ ์ ๋ณด ์ญ์ ํ ๋ก๊ทธ์ธ ์์ด์ฝ์ผ๋ก ๋ณ๊ฒฝ
- ํค๋์ ๋ก๊ทธ์ธ ์ ๋ณด ์ ์ฅ
- ํํฐ์ ํ์ ๊นํ ์ฃผ์ url ์ฐ๊ฒฐ
- ๊ฐ ์์ด์ฝ์ ๋ง๊ฒ ํ์ด์ง ์ด๋
- Deployment
- 1์ฐจ ๋ฐฐํฌ Vercel
- ๊นํ dev ๋ธ๋ฐ์น์ ์ฐ๊ฒฐ ํ ๋ฐฐํฌ
- 2์ฐจ ๋ฐฐํฌ AWS S3
- HTTPS ์ด์๋ก vercel์์ AWS S3๋ก ๋ณ๊ฒฝ
- 3์ฐจ ๋ฐฐํฌ Vercel
- Next.js ์ ์ ํ์ผ๋ก build ์ด์๋ก ์ธํด ๋ค์ Vercel๋ก ์์
- ๊นํ main ๋ธ๋ฐ์น์ ์๋๋ฐฐํฌ ์ฑ๊ณต
- 1์ฐจ ๋ฐฐํฌ Vercel
- ์ํ์ง
์์คํ ๊ฒฝํ ์์ฐ
ํ ๋ฌ ์ฑ ์๋๋ ๊ธฐ๊ฐ๋์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ ๋ง ๋ค์ํ ์ํฉ๋ค์ ๋ง์ฃผํ์ต๋๋ค. ์ผ์ ์ด ์งง์ ํ์ ๋ ์๊ฐ ์์ ํ๋ก์ ํธ ๊ธฐํ๊ณผ ๋์์ธ, ๊ฐ๋ฐ๊น์ง ์์ฑํ๋ ๊ฒ์ ๊ฒฐ์ฝ ์ฌ์ด ์ผ์ด ์๋์์ต๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด ํ์ ๊ฐ ์ํต์ ์ค์์ฑ์ ๋ค์ ํ ๋ฒ ๊นจ๋ฌ์์ต๋๋ค. ์ง์์ ์ธ ์ปค๋ฎค๋์ผ์ด์ ๊ณผ ํผ๋๋ฐฑ์ ํ๋ฉด์ ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๊ธฐ ์ํด ๋ ธ๋ ฅํ์ต๋๋ค. ๋ํ ํ์ ๋ชจ๋๊ฐ ํ ๋ด์ ์งํ ์ํฉ์ ํ์ ํด๊ฐ๋ฉฐ ๋ค ํจ๊ป ํ์ด์ค๋ฅผ ๋ง์ถ๋ ๊ฒ์ด ์ค์ํ ์ผ์์ ๋๊ผ์ต๋๋ค. ํ๋ก์ ํธ ์ค๊ฐ์ค๊ฐ ์ด๋ ค์๊ณผ ์ ๋ง๋ ์์์ง๋ง ๊ฒฐ๊ตญ ํด๊ฒฐํด๋ด๋ ๋ชจ์ต์ ๋ณด๋ฉด์ ์ด ๋ํ ์ ์๋ฏธํ ๊ฒฝํ์ผ๋ก ๋ฐ์๋ค์ผ ์ ์์์ต๋๋ค.
์ํ์ง Worklog๐
Position : Frontend
Stack : Typescript, ReactJS, NextJS, Redux Toolkit, Styled Components
Works :
-
ํ์ด์ง UI ๊ตฌ์ฑ ๋ฐ ํผ๊ทธ๋ง ์ด์ฉํด ํ๋กํ ํ์ ๊ตฌํ
- ๋ฉ์ธ ํ์ด์ง
- ์ง๋ฌธ ๋ฆฌ์คํธ ํ์ด์ง
- ์ง๋ฌธ ์์ธ ํ์ด์ง
-
MainPoster ์ปดํฌ๋ํธ
- props๋ฅผ ์ ๋ฌํ์ฌ ์กฐ๊ฑด๋ถ ๋ ๋๋ง
- default : ์ํ ํฌ์คํฐ + ์ ๋ชฉ
- ๋ณธ์ํ ์น์ ์์ ์ฌ์ฉ๋ ๋, ๋ณ์ ๋ ธ์ถ
- ๋ณผ์ํ ์น์ ์์ ์ฌ์ฉ๋ ๋, (๋ง์ดํ์ด์ง์ ์ญ์ ๋ฒํผ์ ๋๋ฅด๋ฉด) ์ญ์ ์์ด์ฝ ๋ ธ์ถ
- styled-components์ ThemeProvider ์ ์ฉ
- ์ปดํฌ๋ํธ์ ํฌ๊ธฐ๋ฅผ ์ ๋์ ์ผ๋ก ์กฐ์ ํ์ฌ ์ฌ๋ฌ ํ์ด์ง์์ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ํจ
- ๋ณผ์ํ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ
- props๋ฅผ ์ ๋ฌํ์ฌ ์กฐ๊ฑด๋ถ ๋ ๋๋ง
-
MainPage
- ์๋ ์ฌ์๋๋ ์บ๋ฌ์
์ฌ๋ผ์ด๋ ๊ตฌํ
- react-slick ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ (centermode ์ ์ฉ)
- ์ํ ํฌ์คํฐ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ
- ์๋ ์ฌ์๋๋ ์บ๋ฌ์
์ฌ๋ผ์ด๋ ๊ตฌํ
-
MyPage
- UI ๋์์ธ ์ฌ๊ตฌ์ฑ
- ๋ก๊ทธ์ธํ ๋ณธ์ธ์ ๋ง์ดํ์ด์ง์ธ ๊ฒฝ์ฐ์ ํ ์ฌ์ฉ์์ ํ๋กํ์ ํด๋ฆญํ์ฌ ๋ฐฉ๋ฌธํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌ๋ถํ์ฌ ์กฐ๊ฑด๋ถ ๋ ๋๋ง
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์ ๋ณธ์ธ์ ํ์ด์ง์ธ ๊ฒฝ์ฐ์๋ง ๋ณผ ์ํ์ ํธ์ง ๋ฒํผ์ ๋
ธ์ถ
-> ํด๋ฆญํ๋ฉด ๋ฉ์ธ ํฌ์คํฐ ์ปดํฌ๋ํธ์ ์ญ์ ์์ด์ฝ ๋ ธ์ถ - ๋ก๊ทธ์ธํ ์ฌ์ฉ์ ๋ณธ์ธ์ ํ์ด์ง์ธ ๊ฒฝ์ฐ์๋ง ๊ณ์ ๊ด๋ฆฌ ์์ญ ๋ ธ์ถ
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์ ๋ณธ์ธ์ ํ์ด์ง์ธ ๊ฒฝ์ฐ์๋ง ๋ณผ ์ํ์ ํธ์ง ๋ฒํผ์ ๋
ธ์ถ
- ๋ณผ ์ํ, ๋ณธ ์ํ ๋ฆฌ์คํธ
- react-slick ์ฌ์ฉํ์ฌ ์บ๋ฌ์ ์ฌ๋ผ์ด๋ ๊ตฌํ
- ์บ๋ฌ์ ๋๋๊ทธ ์ ํด๋ฆญ ์ด๋ฒคํธ(์ํ ์์ธํ์ด์ง๋ก ์ด๋) ์คํ๋๋ ๊ฒ ๋ฐฉ์ง
- ํ์ ์ ๋ณด ์กฐํ, ํ์ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ
-
MovieDetail Page
- ์ํ ์์ธ ์ ๋ณด ์กฐํ
- UI ๋์์ธ ์ฌ๊ตฌ์ฑ
- ์ฝ๋ฉํธ
- ๋ชจ๋ฌ ํ์
- ๋ณ์ ๊ตฌํ
- ์ฝ๋ฉํธ CRUD
- ์ฝ๋ฉํธ ์ถ๊ฐ ์ ๋ณธ ์ํ ๋ฆฌ์คํธ ์ถ๊ฐ
- ์ฝ๋ฉํธ ์ญ์ ์ ๋ณธ ์ํ ๋ฆฌ์คํธ ์ญ์
- ๋ฆฌ์คํธ ํ์ด์ง๋ค์ด์ ์ ์ฉ
- ์ฝ๋ฉํธ ์ข์์ ๊ตฌํ
- ์ข์์ ์์ด์ฝ ํด๋ฆญ ์ ๋ฆฌ๋ ๋๋ง ์ ๊น์ง๋ ํด๋ผ์ด์ธํธ ์ธก์์ UI ์์ ๋ฐ์(์ข์์ ์ ๋ณ๊ฒฝ, ์ข์์ ์ํ์ ๋ฐ๋ฅธ ์์ด์ฝ ์ ๋ณ๊ฒฝ)
- ๋ณผ ์ํ ๋ฆฌ์คํธ ์ถ๊ฐ, ๊ธฐ๋ฅ ๊ตฌํ
-
Footer
- footer UI ์์
- ๊ฐ์ํ
์ฑ์ฅ์ ๊ฒฝํ์์ ๋์จ๋ค
ํ๋ก์ ํธ๋ฅผ ๋ค ๋ง์น๊ณ ๋๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋ํด ์์ฌ์ด ๋ง์๋ ๋ค์ง๋ง, ๊ทธ ๊ณผ์ ์์ ๋ง์ ๊ฒ์ ๋ฐฐ์ ๊ณ ๋คํํ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌ๊น์ง ์๋ฃํด์ ๊ธฐ์ ๋ง์๋ ์์ต๋๋ค. ์ด๋ฒ ๊ฒฝํ์ ํตํด ๊ฐ์ฅ ํฌ๊ฒ ๊นจ๋ซ๊ฒ ๋ ๊ฒ์ ํํํ ๊ธฐํ์ด ํ๋ก์ ํธ์ ์์ฑ๋์ ์ง์ ๊ฒฐ์ ํ๋ค๋ ์ฌ์ค์ ๋๋ค. ์๋ฒฝํ ์๋ ์์ง๋ง ์ต๋ํ ๋ง์ ์๊ฐ ๊ณ ๋ฏผํ๋ฉด์ ํ๋ก์ ํธ์ ๋ชฉํ์ ๊ธฐ๋ฅ์ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฝํ๋ค๋ฉด, ๋์ค์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ค์ ์๋ฐฉํ๊ณ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ์ ์์์ ๊นจ๋ฌ์์ต๋๋ค. ๋ํ ํ์ ๊ฐ์ ์ํํ ์ํต์ด ์ค์ํ๋ค๋ ๊ฒ์ ๋๋ ์ ์์์ต๋๋ค. ์ค๊ฐ์ ๋ฐ์ํ ์์ ์ด์๋ค๋ ์๋ก์ ์๊ตฌ์ฌํญ๊ณผ ์งํ ์ํฉ์ ์ง์์ ์ผ๋ก ๊ณต์ ํ๋ฉฐ ์กฐ์จํ๋ ๊ฒฐ๊ณผ, ๋ฐฐํฌ์ ์ฑ๊ณตํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ ๋ด ํ์ ์ ํต์ฌ์ด ์ด๋ค ๊ฒ์ธ์ง๋ฅผ ๋ชธ์ ์ฒด๊ฐํ๊ฒ ๋์์ต๋๋ค. ์ด ์ธ์๋ ๊ฐ์ธ์ ์ผ๋ก ๊ณต์ ๋ฌธ์์ ํ์ฉ ๋ฐฉ๋ฒ๊ณผ ํจ์จ์ ์ธ ๊ฒ์ ๋ฐฉ๋ฒ ๋ฑ ๋ง์ ๊ฒ์ ๋ฐฐ์ ๋ ์๊ฐ์ด์์ต๋๋ค. ๋๊น์ง ์ด์ ์ ๊ฐ์ง๊ณ ํ๋ก์ ํธ์ ์ํด์ค ํ์๋ค ๋๋ถ์ ์ ๋ง๋ฌด๋ฆฌํ ์ ์์๊ณ ํ์ ์์ ์ค์ํ ๊ฒ ์ด๋ค ๊ฑด์ง ๋ง์ ์๊ฐ์ ํ๊ฒ ํด์ฃผ์๋ ํ ๋ฌ์ด์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ์ํ Worklog๐
Position : Frontend
Stack : Typescript, NextJs, ReactJs, Redux toolkit, Styled Component
Works :
-
ํ์ด์ง UI ๊ตฌ์ฑ ๋ฐ ํผ๊ทธ๋ง ์ฌ์ฉ์ ํตํ ํ๋กํ ํ์ ๊ตฌํ
- ์ํ ์์ธ ํ์ด์ง ์ด๊ธฐ ๋์์ธ
- ์ํ ์ฝ๋ฉํธ ๋ชจ๋ฌ
- ๊ฒ์ ํ์ด์ง ์ด๊ธฐ ๋์์ธโจ
-
CRA -> NEXT.JS ๋ง์ด๊ทธ๋ ์ด์ ๋ฐ ์ด๊ธฐ์ธํ
-
์ง๋ฌธ ๋ฆฌ์คํธ ํ์ด์ง
- UI ๋์์ธ ์์
- ์ง๋ฌธ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด ์ฌ๋ฌ ์ง๋ฌธ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ
- ์ง๋ฌธ ๋ฆฌ์คํธ ํ์ด์ง๋ค์ด์ (์ซ์ ๋ฒํผ) ์ ์ฉํด ํ ํ์ด์ง ๋น ์ง๋ฌธ ์ปดํฌ๋ํธ 10๊ฐ์ฉ ๋ ธ์ถ
- ์ถ์ฒ ๋ฐ๊ธฐ ๋ฒํผ ํด๋ฆญ์ ์ง๋ฌธ ์์ฑ ํ์ด์ง๋ก ์ด๋
-
์ง๋ฌธ ์์ฑ ํ์ด์ง
- UI ๋์์ธ ์ฌ๊ตฌ์ฑ
- ์ ํจ์ฑ ๊ฒ์ฌ
-
์ง๋ฌธ ์์ ํ์ด์ง
- UI ๋์์ธ ์ฌ๊ตฌ์ฑ
- ์ ํจ์ฑ ๊ฒ์ฌ
-
์ง๋ฌธ ์์ธ ํ์ด์ง
- UI ๋์์ธ ์ฌ๊ตฌ์ฑ
- ์ง๋ฌธ ์ปดํฌ๋ํธ
- ์์ /์ญ์ ๊ธฐ๋ฅ
- ์ฌ์ฉ์ ๋ณธ์ธ์๊ฒ๋ง ์์ /์ญ์ ๋ฒํผ ๋ ธ์ถ
- ๋ต๋ณ ์์ฑ ์ปดํฌ๋ํธ
- ์ํ ๊ฒ์ ๋ชจ๋ฌ์ฐฝ์์ ์ ํํ ์ํ ์ ๋ณด ํฌํจ
- ์ํ ์ ํํ๊ธฐ ํด๋ฆญ ์ ์ํ ๊ฒ์ ๋ชจ๋ฌ์ฐฝ ๋ ธ์ถ
- ๋ต๋ณ ์ปดํฌ๋ํธ
- ์์ /์ญ์ ๊ธฐ๋ฅ
- ์ฌ์ฉ์ ๋ณธ์ธ์๊ฒ๋ง ์์ /์ญ์ ๋ฒํผ ๋ ธ์ถ
- ๋ชฉ๋ก์ผ๋ก ์ด๋ํ๊ธฐ ๋ฒํผ ํด๋ฆญ์ ์ง๋ฌธ ๋ฆฌ์คํธ ํ์ด์ง๋ก ์ด๋
-
์ํ ๊ฒ์ ๋ชจ๋ฌ์ฐฝ
- UI ๋์์ธ ๊ตฌ์ฑ
- ์ํ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ
- ์ํ ์ ๋ชฉ, ๊ฐ๋ , ๋ฐฐ์ฐ ๊ฒ์ ๊ฐ๋ฅ
- ์ํ ๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง๋ค์ด์ (์ด์ , ๋ค์ ๋ฒํผ) ๊ธฐ๋ฅ ์ ์ฉ
- ๊น์ฐ์ฐ
์ง์ ํด๋ณด๋ ์๊ฒ ๋ค.
๊ธฐํ๋ถํฐ API ๋ช ์ธ์, ERD, ๊ฐ๋ฐ ๊ทธ๋ฆฌ๊ณ ๋ฐฐํฌ๊น์ง ๋ชจ๋ ๊ณผ์ ์ ์ฒ์๋ถํฐ ๋๊น์ง ํ๊ณผ ์ง์ ํ์ต๋๋ค. ์ด์ ์๋ ์ด๋ ์ ๋ ๊ฐ์ด๋๊ฐ ์์๊ฑฐ๋, ํ ์คํธ๋ก๋ง ๋ฐ์๋ค์ด๋ ๊ฒ๋ค์ ์ง์ ํด๋ณด๋ "์ ์ด๋ ๊ฒ ํ๋ ๊ฒ์ด ์ด๋์ ์ค์ํ๊ตฌ๋!" ๋ฅผ ๋ชธ์ ๊นจ๋ฌ์์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด ๊ธฐ๋ฅ ๊ตฌํ ์ฆ, ์ฝ๋๋ง ์ฃผ๊ตฌ์ฅ์ฐฝ ์์ฑํ ์ค ์์์ต๋๋ค. ํ์ค์ ๊ทธ๋ ์ง ์์์ต๋๋ค. ์ด๊ธฐ์ ๊ธฐํ ๋จ๊ณ์์ ์ ์ถฉ๋ถํ ์๊ฐ์ ํฌ์ํด์ผ ํ๋์ง, ํ๋ก์ ํธ ์ฒ์๋ถํฐ ๋๊น์ง ๋ฌธ์ํ๊ฐ ์ ์ค์ํ์ง ๊นจ๋ฌ์์ต๋๋ค. ๊ฐ๋ฐ์์ ๋ํด ์๊ธฐํ ๋ ์ํต์ด๋ผ๋ ํค์๋๊ฐ ๋น ์ง์ง ์๋๋ฐ, ์ด์ ์๋ ํฌ๊ฒ ์๋ฟ์ง ์์์ผ๋, ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ํ๋ก ํธ์๋ ํ์๋ค๊ณผ ๋ฐฑ์๋ ํ์๋ค ๋ชจ๋ ์ํตํ ์ผ์ด ์ ๋ง ๋ง์๊ณ ์๊ฒฌ ์ฐจ์ด๋ ์ข ์ข ์์ด์ ์๋ก ์ํตํ๋ฉฐ ํด๊ฒฐํ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์์ฌ์ด ์ ์ด ์๋ค๋ฉด, ์ฝ๋ ๋ฆฌ๋ทฐ์ ๋๋ค. ๋ด๊ฐ ์ํ๋ ๊ธฐ๋ฅ์ ๋์ํ๋๋ฐ ์ด ์ฝ๋๊ฐ ์ข์ ์ฝ๋์ธ์ง์ ๋ํ ๊ณ ๋ฏผ์ด ํญ์ ์์๊ณ ๋ง๋ ํ ๋ฌผ์ด๋ณผ ์ฌ๋์ด๋ ์ฌ์ ๊ฐ ์์์ต๋๋ค. ์ด ๋ถ๋ถ์ ์์ด์ ๊ณต๋ถ๊ฐ ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค. ์งง๋ค๋ฉด ์งง๊ณ , ๊ธธ๋ค๋ฉด ๊ธด ๊ธฐ๊ฐ ๋์ ์ข์ ํ์๋ค๊ณผ ํจ๊ป ํ๋ก์ ํธ๋ฅผ ์งํํ์ฌ ์ ๋ง ๋ง์ ๊ฒ์ ๋ฐฐ์ ์ต๋๋ค.
๊น์ฐ์ฐ Worklog๐
Position : Backend
Stack : Spring Boot, Spring Data JPA, EC2, RDS, MySQL, Querydsl
Works :
-
Movie
- OPEN API ์ด์ฉํ์ฌ ์ํ ๋ฐ์ดํฐ ์ ์ฅ <Go To Notion | Thread์ ๋ํ ์ดํด์ ๋ฌธ์ ํด๊ฒฐ>
- ์ํ ์์ธ ํ์ด์ง ๊ตฌํ
- ์ฅ๋ฅด, ๋๋ผ, ์ฐ๋ น, ๋ณ์ ํํฐ๋ฅผ ์ด์ฉํ ์ํ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ(Querydsl)
- ๋ฉ์ธ ํ์ด์ง ๊ตฌํ, GET ์์ฒญ ์ ๋๋ค์ผ๋ก ์ํ 10๊ฐ ์๋ต
-
Comment
- ์ฝ๋ฉํธ์ ๋ณ์ ๊ธฐ๋ฅ ๊ตฌํ
- ์ฝ๋ฉํธ ์ข์์ ๊ธฐ๋ฅ ๊ตฌํ
-
Watch
- ๋ณด๊ณ ์ถ์ ์ํ ๊ธฐ๋ฅ ๊ตฌํ
- ์ฝ๋ฉํธ ์์ฑ ์ ๋ณธ ์ํ์ ์ถ๊ฐ
- ๋ง์ด ํ์ด์ง ๋ณผ ์ํ, ๋ณธ ์ํ ๋ฆฌ์คํธ
-
Deployment
- ์๋ฒ ๋ฐฐํฌ(AWS EC2(Ubuntu), RDS(MySQL))
- Load Balancer๋ฅผ ์ด์ฉํ์ฌ HTTPS ์ ์ฉ
- Load Balancer๋ฅผ ์ด์ฉํ์ฌ Scale-Out ์ ์ฉ <Go To Notion | Scale-Out๊ณผ Load Balancer>
-
Documentation
- Git Wiki ์์ฑ <Go To Wiki | Record>
- README ์์ฑ
- Scale-Out๊ณผ Load Balancer <Go To Notion | Record>
- Thread์ ๋ํ ์ดํด์ ๋ฌธ์ ํด๊ฒฐ <Go To Notion | Record>
- Stream API์ for๋ฌธ <Go To Notion | Record>
- Index์ DB Replication <Go To Notion | Record>
- ์ ๋ฏผ์ฐ
ํ์ ์ ์ค์์ฑ
์ด์์ค๋ฉด์ ์ด๋ ๊ฒ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ์ ๋๋ก ํ์ ์ ํ๋ค๊ณ ๋๋ ๊ฒ์ ์ฒ์์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ์ ๋๋ ํ๋ก์ ํธ๋ฅผ ์งํํ์์ง๋ง ๊ทธ ๋๋ github๋ฅผ ์ด์ฉํ์ง ์์ ๊ฐ๋ฐ์๋ก ํ์ ์ ํ๋ค๋ ๋๋์ด ๋ง์ด ์์์ต๋๋ค. ํ์ง๋ง ์ฝ๋์คํ ์ด์ธ ์์ ์ฌ๋ฌ ๊ธฐ์ ๊ณผ ์คํ์ ๋ฐฐ์ฐ๊ณ , ์ข์ ํ์๋ถ๋ค์ ๋ง๋ ์ข์ ํ์ ๊ฒฝํ์ด ๋์์ต๋๋ค. ์์ฌ์ด ์ ์ ์ ๊ฐ ๋ค๋ฅธ ํ์๋ค์ ๋นํด ๋ถ์กฑํจ์ด ๋ง์์ ํ์๋ถ๋ค๊ณผ ๋ฉํ ๋ถ์๊ฒ ์ด๊ฒ ์ ๊ฒ ๋ง์ด ๋ฌผ์ด๋ณด๊ณ ๊ตฌ๊ธ๋งํ๋ฉฐ ์์ ์ ํด์ ์ ๊ฐ ๋ง๋ ๊ธฐ๋ฅ์ด ๋ง์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋๋ session์ธ์ฆ๋ ์ดํด๋ ๋ฒ๊ฑฐ์ ๋ ์ ๊ฐ oauth์ jwt ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์ด๋์ ๋ ์์ฑํ๋ค๋ ๊ฒ์ ๋ง์ด ๋ณด๋์ ๋๋ผ๋ฉฐ ๋ค์์ ๋ ์ด๋ฐ ๊ธฐํ๊ฐ ์ฐพ์์จ๋ค๋ฉด ๋ ์ ์ฝ๋ฉํ ์์ ์ด ์๊ฒผ์ต๋๋ค.
์ ๋ฏผ์ฐ Worklog๐
Position : Backend
Stack : Java, Spring Boot, Spring Data JPA, mySQL, Spring Security
Works :
-
Member CRUD
- ๋ก๊ทธ์ธ ํ DB์ ๋ฉค๋ฒ ์ ๋ณด ์ ์ฅ
- ๋ง์ดํ์ด์ง์์ ํ์ ํํด ๊ฐ๋ฅ
-
JWT ํ ํฐ
- JWT ACCESS TOKEN ๋ฐํ
- JWT REFRESH TOKEN ๋ฐํ
-
๊ตฌ๊ธ OAuth 2.0
- OAuth 2.0 ๋ก๊ทธ์ธ ์ JWT ํ ํฐ์ ๊ตฌ๊ธ memberId์ ์ด๋ฆ ์ ์ฅ
- ๋ก๊ทธ์ธ ์ฑ๊ณต ์ URI์ JWT ํ ํฐ์ ๋ฃ์ ํ ๋ฉ์ธ ํํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธ
- ๋ก๊ทธ์์ ๊ธฐ๋ฅ ๊ตฌํ
- ๊น๋ฏผ์ฑ
๋จ์ ๊ฒ์ ๋ด ๊ฒ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ๋ ๋ฅ๋ ฅ์ด๋ค.
์ด๋ฒ ๋ฉ์ธ ํ๋ก์ ํธ๋ฅผ 2์ฃผ ์ ๋ ์งํํ๋ฉด์ ์ ๋ง ๋ง์ ๊ฒ์ ๋ฐฐ์ฐ๊ณ ๋๊ผ์ต๋๋ค. ์ ํฌ๊ฐ ์ด๋ฐ์ ์ค๊ณํ๊ณ ๊ธฐํํ๋๋ก ๋งค๋๋ฝ๊ฒ ์งํ๋์ง๋ ์์์ง๋ง ํ ์ฌ๋์ด ์์ ํ๋๊ฒ์ด ์๋ ์ฌ๋ฌ ์ฌ๋์ด ๋ชจ์ฌ ํ์ ์ ํ๋ ๊ณผ์ ์ด๊ธฐ ๋๋ฌธ์ ๋ถ๊ฐํผํ ์ผ์ด๋ผ ์๊ฐํฉ๋๋ค. ์คํ๋ ค ๊ทธ ๊ณผ์ ์์ ํด๋ผ์ด์ธํธ์ ์ํํ๊ฒ ์ํตํ๋ ๋ฐฉ๋ฒ์ ์์ฐ์ค๋ฝ๊ฒ ๋ฐฐ์ธ ์ ์์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ๋ก๊ทธ๋๋จธ๋ก์ ์ํต์ ์์ด์๋ ์ ๋ ์ค์ํ ๋ฅ๋ ฅ์ด๋ผ๊ณ ์๊ณ ์๊ณ ์ด๋ฒ ํ๋ก์ ํธ์์ ๊ทธ ๋ฅ๋ ฅ์ ํฅ์์ํค๋ ์ข์ ๋ฐ๊ฑฐ๋ฆ์ด ๋ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ง๋ฌธ๊ณผ ๋ต๋ณ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์ ํ์ด์ง๋ค์ด์ ๊ธฐ๋ฅ์ ๊ตฌํํจ์ ์์ด์ ์ด๋ ค์์ ๋๋ผ๊ณ ์์๋๋ฐ ํ์ด์ง๋ค์ด์ ์์๋ฅผ ์ฐพ์ ๋ณด๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ ํผ๋ฐ์ค ์ฝ๋ ๋ค์ ๋ณด๋ฉด์ "์ด ์ฌ๋์ ์ด๋ฐ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด์ ํ์ด์ง๋ค์ด์ ์ ๊ตฌํํ๊ตฌ๋." , "์ด ์ฌ๋์ ์ ์ฌ๋๊ณผ ๋น์ทํ๋ฐ ๋ญ๊ฐ ๋ ์ฝ๋๊ฐ ๊น๋ํ๊ณ ๊ฐ์์ฑ์ด ์๋ค" ๋ฑ์ ๋๊ผ์ต๋๋ค. ๊ทธ๋ฐ์์ผ๋ก ๋น๊ตํ๋ฉด์ ์ ํฌ ํ๋ก์ ํธ์ ๋ฐฉํฅ๊ณผ ๋ง๋ ์ฝ๋๋ฅผ ๊ตฌํํ๊ณ ํ๋ก์ ํธ๋ฅผ ์์ฑ์์ผฐ์ต๋๋ค. ๋จ์ ๊ธฐ๋ฅ ๊ตฌํ ๋ชฉ์ ์ด ์๋ ์ฐ๋ฆฌ ํ๋ก์ ํธ์ ๋ฐฉํฅ์ด๋ ํจ์จ์ฑ ๋ฑ์ ๋ง๋ ์ฝ๋๋ค์ ๊ตฌํํ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ๋ฉ์ธ ํ๋ก์ ํธ ์ฒซ ์์ ๋๋ "๋ด๊ฐ ๊ตฌํ์ ์ํ ์ ์์๊น.." ๋ผ๋ ๋ถ์ํจ์ด๋ ๊ฑฑ์ ์ด ์์ฐ์ง๋ง, Sprint3 ํ๊ณ ๋ฅผ ์์ฑํ๊ณ ์๋ ์ง๊ธ์ ๋ด๊ฐ ๋ชฐ๋๋ ์๋ก์ด ์ฝ๋๋ค์ ์ ํ ์ ์๋ค๋ ๋๊ทผ๊ฑฐ๋ฆผ๊ณผ ๊ธฐ๋๋ก ํ๋ก์ ํธ๋ฅผ ๋ง์ดํ ์ ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ๊ณ๊ธฐ๋ก ์ฝ๋ฉ์ ๋ํ ๋๋ ค์์ ์์ ๊ณ ์์ ๊ฐ ์๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๊น๋ฏผ์ฑ Worklog๐
Position : Backend
Stack : Java, mySQL, AWS, Spring Boot JPA
Works :
-
์ง๋ฌธ CRUD ๊ธฐ๋ฅ ๊ตฌํ
- ์ง๋ฌธ ์ ์ฒด ์กฐํ (๊ฒ์ํ ๋ฆฌ์คํธ)
- ๋ต๋ณ ์์ ์กฐํ ์ ๊ธฐ๋ฅ ๊ตฌํ
- ์์ฑ ์ต์ ์์ผ๋ก ์ ๋ ฌ
- ํ์ด์ง๋ค์ด์ ๊ธฐ๋ฅ ๊ตฌํ
- ์ง๋ฌธ ์์ธ ์กฐํ
- ์ง๋ฌธ์ ๋ํ ๋ต๋ณ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ๊ธฐ๋ฅ ๊ตฌํ
- ๋ต๋ณ ์ ๋ณด ํ์ด์ง๋ค์ด์ ๊ธฐ๋ฅ ๊ตฌํ
- ๋ต๋ณ ์์ฑ ์ต์ ์์ผ๋ก ์ ๋ ฌ
- ์ง๋ฌธ ์์ฑ
- ์ง๋ฌธ ์์ฑ ์ ํจ์ฑ ๊ฒ์ฌ
- ์ง๋ฌธ ์์ / ์ญ์
- AccessToken ๋น๊ตํด์ ์ง๋ฌธ์ ์์ฑํ ์ ์ ์ธ์ง ํ์ธํ๋ ๊ธฐ๋ฅ ๊ตฌํ
- ์ง๋ฌธ ์์ ์ ํจ์ฑ ๊ฒ์ฌ
- ์์ธ ์ฝ๋ ์์ฑ
- ์ง๋ฌธ ์ ์ฒด ์กฐํ (๊ฒ์ํ ๋ฆฌ์คํธ)
-
๋ต๋ณ CRUD ๊ธฐ๋ฅ ๊ตฌํ
- ๋ต๋ณ ์์ฑ
- ๋ต๋ณ ์์ฑ ์ ํจ์ฑ ๊ฒ์ฌ
- ๋ต๋ณ ์์ / ์ญ์
- AccessToken ๋น๊ตํด์ ๋ต๋ณ์ ์์ฑํ ์ ์ ์ธ์ง ํ์ธํ๋ ๊ธฐ๋ฅ ๊ตฌํ
- ๋ต๋ณ ์์ ์ ํจ์ฑ ๊ฒ์ฌ
- ์์ธ ์ฝ๋ ์์ฑ
- ๋ต๋ณ ์์ฑ