Life Manager๋ ์๊ธฐ๊ณ๋ฐ์ ์ํด ์์ ์ด ์์ฃผ ๋ณด๊ณ ์ถ์ ๋์์ ๋งํฌ๋ฅผ ์ ์ฅํด ํ๋ ์ด๋ฆฌ์คํธ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ,
ํ๋ ์ด ํ ์ ์๋ url ๋งํฌ ์ ์ฅ์ ์๋น์ค์ ๋๋ค.
์ด๋ฒ ํ๋ก์ ํธ๋ TypeScript์ GraphQL, next.js์ ๊ณต๋ถํ๋ฉด์, ๊ฐ๋จํ ํ๋ก์ ํธ๋ฅผ ํ๋ ๋ง๋ค์ด ๋ณด์์ผ๊ฒ ๋ค ๋ค์ง์ ํ๋ฉฐ ์์ํ๊ฒ ๋ ์์
์
๋๋ค.
์ฌ์ฉ์๊ฐ ํ์๊ฐ์
์ํ๊ณ ๋ก๊ทธ์ธ์ ํ๋ฉด youtube ๋ฑ์์ ์์ ์๊ฒ ๋์์ด ๋๋ ๋์์ ๋ฑ์ ๋งํฌ๋ฅผ iframe url์ ์
๋ ฅํด ์์ฑํ๋ฉด,
streams ํ์ด์ง์์ ์์ ์ด ๋ฑ๋กํ ๋์์์ ๋ค์ ํ์ธํด๋ณผ ์ ์์ต๋๋ค.
์๋ ๋งํฌ์์ ํ๋ก์ ํธ ๋ฐ๋ชจ ํ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๐ฏ ์ฌ์ดํธ :https://life-manager.herokuapp.com/
- 2021.07 ~ 2021.08
-
Front End
- React, Next.js, Styled-components, Typescript
-
Back End
- Apollo, GraphQL, MongoDB
- JWT ํ ํฐ๊ณผ SessionStorage๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธ/๋ก๊ทธ์์ ๊ตฌํ
- TypeScript๋ฅผ ์ ์ฉํจ์ผ๋ก์จ ์ฝ๋ ๊ฐ๋ ์ฑ ๋ฐ ์์ ์ฑ ํฅ์
- GraphQL์ ์ฌ์ฉํ์ฌ ๋์์ stream CRUD ๊ตฌํ
- Material-UI๋ฅผ ์ฌ์ฉํ ๊ทธ๋ฆฌ๋ ๊ตฌํ
- nextjs์ useRouter๊ธฐ๋ฅ์ ํตํด ํค๋ ์คํ์ผ์ ๋์ ์ผ๋ก ๊ตฌํ
- Next ๊ธฐ๋ฐ์ SSR ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ
- keyframe์ ํ์ฉํ ์คํฌ๋กค ์ ๋๋ฉ์ด์ ๊ตฌํ
- ๋๋ฉํ์ด์ง scrollDown, scrollUp ๊ตฌํ
- Styled-component์ผ๋ก ์น ๋์์ธ ๊ตฌ์ฑ
- ๋ฏธ๋์ด์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ ๋ฐ์ํ์น ๊ตฌํ
- ํ์๊ฐ์ /๋ก๊ทธ์ธ/๋ก๊ทธ์์
- ๋์์ stream CRUD
- ๋๋ฉํ์ด์ง scrollDown, scrollUp
- ๋ฐ์ํ ์น
Life_Manager.mp4
๋ฐ์คํฌํ, ์์ดํจ๋, ๋ชจ๋ฐ์ผ ๊ฐ ํ๋ฉด์ ๋ง์ถฐ์ ๋ฐ์ํ ์น์ ๊ตฌํํ์์ต๋๋ค.
์ด๋ฒ Life Manager ํ๋ก์ ํธ์์๋ GraphQL, Next.js๋ก ์งํํจ์ผ๋ก์จ ๋ค์ํ ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฒฝํํด๋ณผ ์ ์์์ต๋๋ค.
Node.js์ Javascript, react๋ง์ผ๋ก ์น์ ๊ตฌํ ํ ๋์๋ ๋ค๋ฅด๊ฒ
์ด๋ฒ ํ๋ก์ ํธ์์๋ Next.js์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ๋์
ํ ์๋ก ์ ์ฝ์ฌํญ์ด๋ ํ๊ฒฝ์ค์ ์ด ๋ง์์ ธ ํ๋ค์์ง๋ง,
๋์ค์ ๊ท๋ชจ๊ฐ ํฐ ํ๋ก์ ํธ๋ฅผ ์งํํ ๊ฒฝ์ฐ ๋ก์ง์ด ํต์ผ๋์ด ํจ์จ์ ์ด๊ฒ ๋ค๊ณ ๋๋ ์ ์์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ Next.js์ ๋์
ํ๋ ๊ณผ์ ์์ ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง์ ์ ์ฒด์ ์ธ ํ๋ฆ์ ์ฝ์ ์ ์์์ผ๋ฉฐ,
TypeScript๋ฅผ ์ ์ฉํจ์ผ๋ก์จ ์ฝ๋๋ฅผ ์ฝ๊ธฐ ์ฝ๊ฒ ๋์์ฃผ๊ณ , ๋ฐ์ดํฐ์ ํ์
์ ๋ช
์ํด์ฃผ์ด ์์ ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ๋๋ก ํ๋ ๊ฐ๋ฐ๊ฒฝํ์ ์ป์ ์ ์์๊ณ
์์ผ๋ก๋ static ์ธ์ด์ธ TypeScript๋ฅผ ๋ ๊ณต๋ถํ์ฌ OOP์ ์ต์ํด์ ธ์ผ๊ฒ ๋ค๋ ์๊ฐ์ ๊ฐ๊ฒ๋์์ต๋๋ค.