๋
ธ๋๋ฐฉ์์ ๋
ธ๋๋ถ๋ฅด๋ ์๊ฐ๋ณด๋ค ๋
ธ๋๋ฅผ ๊ณ ๋ฅด๋ ์๊ฐ์ด ๋ ๋ง์ง ์์ผ์
จ๋์?
๋ค๋ฅธ์ฌ๋์ด ๋
ธ๋๋ฅผ ๋ถ๋ฅผ๋ ํธ๋ํฐ๋ง ๋ง์ง๋ฉฐ ์ด๋ค ๋
ธ๋๋ฅผ ๋ถ๋ฅผ์ง ๊ณ ๋ฏผํ์ง ์์ผ์
จ๋์?
๊ฒฐ๊ตญ ์ ํ๋ ๋
ธ๋๊ฐ ์ด์ ๋ถ๋ฅธ ๊ทธ ๋
ธ๋๊ฐ ์๋์๋์?
์ด์ ๋ ธ๋๋ฅผ ๊ฒ์ํ๊ณ ๋๋ง์ ๋ฆฌ์คํธ์ ์ ์ฅํด๋ณด์ธ์!
ํ๋ก์ ํธ ๋ฉค๋ฒ๋ฅผ ์๊ฐํด ๋๋ฆฝ๋๋ค!
ํ์ | ์ญํ |
---|---|
๋ฐฑ๊ดํธ | ๐ Frontend |
๊น์ ์ | ๐ Frontend |
์ํ๋ฆผ | ๐ Fullstack |
์ด์์ | ๐ Backend |
์ด์์ (๋ฐฑ์๋) /
๋ด ์ธ์ ์ฒซ๋ฒ์งธ ํ๋ก์ ํธ.
์์์ ๊ฐ๋ํ์ง๋ง ๊ธฐํ์ ํ๋ฉฐ ์ ์ ์ปค์ง๋ work flow ์ ๋ถ๋ด์ค๋ฌ์ ์ต๋๋ค.
์ ํฌ๋ ํ๋ก ํธ์ ๋ฐฑ์๋ ์ญํ ๋ง ์ ํด๋๊ณ ๊ฐ์ ํ
์คํฌ์นด๋์์ ํ๋์ฉ ๊ณจ๋ผ์ ๊ตฌํํ๋๋ฐ, ์ด๊ฒ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ถ๋ฌ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ๊ณ ์ถ์ ๋ถ๋ถ์ ๊ณ ๋ฅด๊ธฐ ๋๋ฌธ์ ํฅ๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์ฆ๊ฒ๊ฒ ์ฝ๋ฉ์ ํ ์ ์์๊ธฐ ๋๋ฌธ์
๋๋ค.
ํ๋ฃจ 2๋ฒ ํ์์์ ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํตํด ๋ ์ข์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์๊ณ , ์ํํ ์ํต์ผ๋ก ํ๋ก์ ํธ์ ์์ฑ๋๊ฐ ๋์์ก์ต๋๋ค.
์ด๋ฒ ์ผ์ ๊ณ๊ธฐ๋ก ํ์
ํ๋ฉฐ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋๋ ค์์ด ์ฌ๋ผ์ง๊ฒ ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ ํ์๋ค๊ณผ ํจ๊ป ํ ์ ์์ด์ ๋๋ฌด ์ข์์ต๋๋ค.
์ด ๊ฒฝํ์ด ์ ๊ฐ๋ฐ์์ธ์์ ๋จ๋จํ ๊ธฐ๋ฐ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด์์ ์ Worklog ๐
- ๋ฉ์ธ์๋ฒ ๊ตฌ์ถ
- ์ธ์ ์ค์
- express๋ฅผ ํตํด HTTPS ๊ตฌ์ถ
- ํ์๊ฐ์
, ๋ก๊ทธ์ธ, ๋ก๊ทธ์์ (์ธ์
๊ธฐ๋ฐ ์ธ์ฆ)
- ๋ผ์ฐํ ๋ฐ ๋ก์ง ๊ตฌํ
- ํ์์ ๋ณด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๊ต ํ ์ถ๊ฐ
- Oauth 2.0 Github ๋ก๊ทธ์ธ
- ๋ผ์ฐํ ๋ฐ ๋ก์ง ๊ตฌํ
- ๊นํ๋ธ์์ ํ ํฐ๊ตํ ํ ์ ์ ์ ๋ณด ํด๋ผ์ด์ธํธ๋ก ์ ์ก
- ๊ฐ์ ํ์๊ฐ์ ๊ตฌํ
- ์ ์ ์ ๋ณด
- ๋ผ์ฐํ ๋ฐ ๋ก์ง ๊ตฌํ
- ์ธ์ ํ์ธ ํ ์์ฒญ๋ฐ์ ์ ๋ณด ํด๋ผ์ด์ธํธ์ ์ ์ก
- ๋ฉ์ธ์๋ฒ ์ต์ข
์ ๊ฒ
- API ๋ฌธ์์ ๋น๊ต
- ํจ์จ์ ์ธ ๋ก์ง์ผ๋ก ๋ฆฌํฉํ ๋ง
- Songs
- ๋ ธ๋๋ชฉ๋ก UI ๊ตฌํ ๋ฐ css
- Search
- UI ์์ (๋น์จ ์กฐ์ )
- ๊ฒ์คํธ ๋ก๊ทธ์ธ ๊ตฌํ
- UI ๋ฐ ์๋ฒ์ ์์ฒญ
- Songlist
- ๋ ธ๋๋ชฉ๋ก css ์ ์ฉ
- ๋ก๊ทธ์ธ, ํ์๊ฐ์
- ๋ก๊ณ ๋ฐ css
- Home
- ๋ก๋ฉํ๋ฉด ๊ตฌํ
- ๊ฐ๋ฐ์ ์ ๋ณด ์ถ๊ฐ
- Header
- UI ์์ (๋น์จ)
๊น์ ์ (ํ๋ก ํธ์๋) /
Advanced HA๋ฅผ ์น๋ฃจ๋ฉด์ sprint๋ค์ ์ฐ๊ด์ฑ์ ๋ํด ์กฐ๊ธ ์๊ฒ๋์๊ณ , ์ด๋ฒ First Project๋ฅผ ํ๋ฉด์ ์ ๋ง ๋ง์ด ๋๊ผ๋ค.ํ
์คํธ ์ผ์ด์ค์ ๋ชฉ์
๋ฐ์ดํฐ๊ฐ ์๋ ์ํฉ์์ ๋ก์ง์ ๊ตฌํํ๊ณ , ์ ์๋ํ๋์ง ํ์ธํ๋ ์์
์ด ์ฒ์์ ๊ฐ์ ์ก๊ธฐ ํ๋ค์๊ณ ์ด์ํ๋๋ฐ ๋ฐ๋ณต๋๋ ์์
์ ํตํด ์ต์ํด์ง๋ฉด์ ์ค๋ ฅ์ด ์ฑ์ฅํ๋ค๊ณ ์๊ฐํ๋ค. ๋ ๋ฒ ์ด์ค๊ฐ ์๋ ์ํ์์ ํ๋ก ํธ์๋๋ฅผ ๊ตฌํํ๋๊ฒ ๊ต์ฅํ ํ ์ผ์ด ๋ง๊ตฌ๋ ๋ผ๋๊ฒ์ ๋๊ผ๊ณ CSR์ ํ๊ณ์ ๊ฐ์ ์ ์ ๋๋ผ๊ฒ๋ ์๊ฐ๋ ์์๋ค. ๊ทธ๋ฆฌ๊ณ Github๋ฅผ ํตํ ํ์
์ ์ค์์ฑ๊ณผ ํ์๋ค์ ์กฐํ๋ก์์ด ์ ์ฒด์ ์ธ ์๋์ง๋ฅผ ๋ผ ์ ์๋ค๋ ๊ฒ์ ์ค์ ๋ก ๋๊ผ์ผ๋ฉฐ, ์ฅ์ ์ด ๋๋ ทํ ํ์๋ค๊ณผ ํจ๊ปํ์ฌ ์์ผ์ ํญ์ด ๋์ด์ก๋ค๋๊ฒ ์ฒด๊ฐ์ด ๋ ๋ป๊น์ ์ธ์ ์ฒซ ํ๋ก์ ํธ์๋ค. ํจ๊ปํ ๋ชจ๋์๊ฒ ๊ฐ์ฌํ๋ค.
๊น์ ์์ Worklog ๐
- Signup Page
- axios ์ฌ์ฉํ์ฌ ์๋ฒ์ input value์ ๋ฐ๋ฅธ ํ์๊ฐ์ ์์ฒญ
- ํ์๊ฐ์ ์์ฒญํ ์๋ฒ ์๋ต์ ๋ฐ๋ผ Login์ํ ๋ณ๊ฒฝ
- history API ์ด์ฉํ์ฌ routing
- css: ๊ธฐ๋ณธ UI๊ตฌํ
- Header Component
- input๊ฐ์ ์ ๋ ฅ๋ฐ์ ํด๋นํ๋ ๋ผ์ฐํธ๋ก scrap์๋ฒ์ get ๊ฒ์ ์์ฒญ
- ๋ก๊ทธ์์ ๋ฒํผ ํด๋ฆญ์ ์๋ฒ์ POST์์ฒญ ๋ฐ state ๋ณ๊ฒฝ
- ๋ง์ดํ์ด์ง, ๋ก๊ทธ์์ ๋ฒํผ์ ๋ฐ๋ฅธ routing
- Search Page
- ์ ์ ๊ฐ ํค๋์์์ ์ ๋ ฅํ input value๋ฅผ ๋ฐ์์ react-hooks๋ฅผ ํตํด state๊ด๋ฆฌ
- ์ด์ /๋ค์ ๋ฒํผ ํด๋ฆญ์ axios์ด์ฉํ์ฌ scrap์๋ฒ์ get์์ฒญ ๋ฐ ์๋ต ๊ฒฐ๊ณผ Song ์ปดํฌ๋ํธ์ ์ ๋ฌ
- ์ด์ /๋ค์ ๋ฒํผ ํด๋ฆญ์ ์ ํจ์ฑ ๊ฒ์ฌ
- css: flex์ฌ์ฉํ์ฌ ๋ ์ด์์ ๋ฐฐ์น
- Addsong Component
- ์ ํ๋ ๋ ธ๋๋ฅผ react-hooks๋ฅผ ์ด์ฉํด state๋ก ๊ด๋ฆฌ
- ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ ธ๋์ ํจ๊ป axios๋ฅผ ์ด์ฉํด ์๋ฒ์ POST์์ฒญ
- ๋ ธ๋ ์ถ๊ฐ์ ์ ํจ์ฑ ๊ฒ์ฌ
- css: Addsong ์ปดํฌ๋ํธ UI๊ตฌํ
- Song Component
- Header์ Addsong ์ปดํฌ๋ํธ์์ ์ ๋ฌ๋ฐ์ ๊ฐ์ react-hooks๋ฅผ ์ด์ฉํด state๋ก ๊ด๋ฆฌ
- ์ฒดํฌ๋ฐ์ค์ ์ฒดํฌ๋ value๋ฅผ ๊ตฌ๋ถํ์ฌ Searchํ์ด์ง์ ์ ๋ฌ
- css: Song ์ปดํฌ๋ํธ UI๊ตฌํ
- Mypage
- css: flex์ฌ์ฉํ์ฌ ํ์ด์ง ๋ ์ด์์ ๋ฐฐ์น
- css: flex์ฌ์ฉํ์ฌ userInfo ๋ ์ด์์ ๋ฐฐ์น
์ํ๋ฆผ (ํ์คํ) /
๋ฒ์จ ํผ์คํธ ํ๋ก์ ํธ๊ฐ ๋๋๋ค๋.. ์ ๋ง ์ด์ฌํ ํ๊ตฌ๋ ๋ผ๋ ๋ฟ๋ฏํจ๊ณผ๊ณผ ๋ ์ด์ฌํ ํ ๊ป์ด๋ผ๋ ์์ฌ์์ด ๊ณต์กดํ๋ค. ์ฐ๋ฆฌ๊ฐ ๊ธฐํํ ์๋น์ค๋ฅผ ๊ต์ก๊ธฐ๊ฐ๋์ ๋ฐฐ์ด ๊ธฐ์ ์ ๋ฒ ์ด์ค๋ก ๊ตฌํํ๋ ค ์๋ํ๊ณ ๋ถ์กฑํ ๋ถ๋ถ๋ค์ ์ค์ค๋ก ๊ตฌ๊ธ๋ง ํ์ฌ ์ ์ฉ์ํค๊ธฐ ์ํด ๋
ธ๋ ฅํ๋ ๊ณผ์ ์์ ๋ง๊ทธ๋๋ก ์ฃผ๋ง๋ ์์ด ๋ฐค์ ์๋ฉฐ ์ฝ๋ฉ๋ง ํ 2์ฃผ์๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ ๋ณด๋ฉด ์์ฌ์ด ์ ๋ค๋ ๋๋ฌด ๋ง๋ค. ํนํ ์ฒ์์ ๋นจ๋ฆฌ ์ฝ๋ฉ์ ํ๊ณ ์ถ์ ๋ง์์ ๋ถ์กฑํ๊ฒ ์๋
ผ์ด ๋ ์ํ๋ก ๊ธฐํ๋จ๊ณ๋ฅผ ์ง๋์ณ๋ฒ๋ฆฐ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฌ๋ค ๋ณด๋ ์๊พธ ์ถ๊ฐ์ ์ผ๋ก ์๋
ผํด์ผํ ์ฌํญ๋ค์ด ๋ฐ์ํ๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ๋ฐ ์๋๊ฐ ์กฐ๊ธ ๋๋์ก๋ค๊ณ ์๊ฐํ๋ค. ํ์ง๋ง ์ด๋ฌํ ์ ๋ค์ ๊ธฐ๊ฐ์ 1/3 ์ ๋๋ ํ์๋ก ๋ณด๋๋ค ์๊ฐ์ด ๋ค์ ๋์ ์ง์์ ์ธ ํ์๋ฅผ ํตํด ๊ทน๋ณตํ ์ ์์๋ ๊ฒ ๊ฐ๋ค. ๋ํ ํ๋ค ๋ ํญ์ ์๋ฒฝ์๋ Slack์ ๋ค์ด์ ์๋ ํ์๋ค์ ๋ถ์ ๋ณด๋ฉฐ ๋๋ ๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค ํ๊ณ ๋ง์์ ๋ค์ก์ ์ ์์๋คใ
ใ
์ง๋ 2์ฃผ๋์ ํ๋ค์์ง๋ง ์ํต์ด ์ ๋๊ณ ์ฑ
์๊ฐ ์๋ ๋๋ฃ๋ค์ด ์์ด์ ์ ๋ง ์ฆ๊ฑฐ์ด ์๊ฐ์ด์๋ค.
์ํ๋ฆผ์ Worklog ๐
- ์๋น์ค ๊ธฐํ
- UI/UX ๋์์ธ
- ํฌ๋กค๋ง ์๋ฒ
- TJ ๋ฏธ๋์ด ๊ฒ์ ๊ฒฐ๊ณผ ํฌ๋กค๋ง ๋ชจ๋ ๊ตฌํ(axios, cheerio)
- ํฌ๋กค๋ง ์๋ฒ ๋ผ์ฐํ ๋ฐ ๊ตฌ์ถ
- ์ค๋ฅ ๋ฐ์ ์ ๋ก๊ทธ ๊ธฐ๋ก ์์ฑ(windston)
- Let's Encrypt๋ฅผ ์ด์ฉํ https ์ธ์ฆ ๊ตฌํ
- ๋ฉ์ธ์๋ฒ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ
- Database ์คํค๋ง ์์ฑ
- Sequelize ๋ชจ๋ธ ์์ฑ ๋ฐ ๊ด๊ณ ์ค์
- Sequelize ์๋ ์์ฑ
- ๋ง์ด๋ฆฌ์คํธ ๊ด๋ฆฌ
- ๋ง์ด๋ฆฌ์คํธ ์์ฑ/์กฐํ/์ญ์ ์์ฒญ ์ฒ๋ฆฌ
- ๋ง์ด๋ฆฌ์คํธ ๋ด์ ๋ ธ๋ ์ถ๊ฐ/์ ๊ฑฐ ์์ฒญ ์ฒ๋ฆฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ
- Home
- ๋ฉ์ธ ํํ์ด์ง ๋ผ์ฐํ ๋ฐ ์ ๋๋ฉ์ด์ ์์ฑ
- Header
- CSS ๋ฐ ์ ๋๋ฉ์ด์ ๊ตฌํ
- ํํฐ ์ ํ ํดํ ๊ตฌํ
- Modal
- Modal ์ปดํฌ๋ํธ ๊ตฌํ
- props์ ๋ฐ๋ผ ๋ค๋ฅธ ์ข ๋ฅ์ ๋ชจ๋ฌ ๋์์ธ์ด ์ ์ฉ๋๋๋ก ์์
- Mypage
- ์ปดํฌ๋ํธ ๋ถ๋ฆฌ ๋ฆฌํฉํ ๋ง
- ์ ํ๋ ๋ฆฌ์คํธ Props ๊ด๋ฆฌ
๋ฐฑ๊ดํธ (ํ๋ก ํธ์๋) /
์ฒซ๋ฒ์งธ ํ๋ก์ ํธ ๋ช
๋จ์ ๋ฐ์์๋๋ถํฐ ํ์ฅ์ ๋งก์์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ์๋ค.
๋ด๊ฐ ๊ธฐ์ ์ด ๋ฐ์ด๋์๊ฐ ์๋๋ผ ๋ด ์ปค๋ฎค๋์ผ์ด์
๋ฅ๋ ฅ์ด ์ด๋๊น์ง์ธ์ง ๋ณด๊ณ ์ถ์๋ค.
ํ๋ก์ ํธ๋ฅผ ์งํํ๋๋์ ๋ค๋ฅธ ํ์๋ค์ ๊ธฐ์ ์ด ๋ฐ์ด๋ ์กฐ๊ธ์ ์ญ๊ทธ๋ฌ์ง๋ฉด๋ ์๊ณ
์์์์ด ์ฌ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํ์๋ค์ ๊ณ ์์์ผ ๋๋ฌด ๋ฏธ์ํ๊ธฐ๋ ํ๋ค.
์์ง๋ ๋ง์ ๋ถ๋ถ์์ ๋ถ์กฑํจ์ด ๋๊ปด์ง๊ณ ๋ฐ์ฑํด์ผ๋ ๋ถ๋ถ๋ ์๊ธฐ๋ ์ ์์๋ ํ๋ก์ ํธ์๋ค.
๊ฐ์ธ์ ์ผ๋ก๋ ํ๋ก์ ํธ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง์กฑ์ค๋ฝ๋ค ๊ณ ์ณ์ผ๋ ๋ถ๋ถ๋ค์ด ๋ถ๋ถ๋ถ๋ถ ๋ณด์ด๊ธด ํ์ง๋ง
์ฒซ ํ๋ก์ ํธ๋ฅผ ์ํ ๋ ์ด๋ป๊ฒ๋ ์์ฑํด์ ๋ฐฐํฌ๋ผ๋ ํ๋ฉด ์ ๋ฐฉ์ ํ๋๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋๋ ์ด์ด ์ข๋ค ์ด๋ฐ ๋ถ์กฑํ ํ์ฅ์ ๋ฐ๋ผ์ฃผ๋ ํ์๋ค์ ๋ง๋๊ฑด ์ด๋ฒ ํ๋ก์ ํธ์์ ๊ฐ์ฅ ์ข์๋ ๋ถ๋ถ์ด๋ค.
ํ์๋ถ๋ค์๊ฒ ํ๋ก์ ํธ๋ฅผ ํจ๊ป ํ ์ ์์ด ๊ฐ์ฌํ๋ค๊ณ ์ ํ๋ค.
๋ฐฑ๊ดํธ์ Worklog ๐
- UI Design ๋ฌธ์ ์์ฑ
- ๋ก๊ทธ์ธ, ํ, ๊ฒ์ํ์ด์ง, ๋ง์ด ํ์ด์ง์ ์์ด์ด ํ๋ ์ ์์ฑ
- ๊ตฌํ๋ ์์ด์ด ํ๋ ์์ ๋ฐํ์ผ๋ก ๋ฐ์ดํฐ ํ๋ฆ์ ๋ํ ๋ด์ฉ ์ ๋ฆฝ
- GIthub Repository ๊ด๋ฆฌ
- Issues ์์ฑ ๋ฐ Pull Requests, branch ๊ด๋ฆฌ
- Reademe.md, wiki ์์ฑ
- Deploy ํ๊ฒฝ ๊ตฌ์ถ
- AWS EC2, RDS, S3๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ฐฐํฌ ํ๊ฒฝ ์ธํ
- Freenom, AWS Route53์ ์ฌ์ฉํ์ฌ ๋๋ฉ์ธ ์ค์ ์ ํ ํ, Lets Encrypt, AWS Cloud Front๋ก HTTPS ์ ์ฉ
- ๋ฐฑ์๋, ํ๋ก ํธ์๋ ์์
ํ๊ฒฝ ์ค์
- Node.js, React, Dotenv, ESLint์ ํ๊ฒฝ ์ค์ ๋ฐ ์ฐ๊ฒฐ ์์ ์งํ
- Login & Signup
- Login, Signup UI ์ ์
- ํ์๊ฐ์ , ๋ก๊ทธ์ธ ์ ์ ํจ์ฑ ๊ฒ์ฌ ๊ธฐ๋ฅ ์ถ๊ฐ
- Oauth 2.0 Github ๋ก๊ทธ์ธ Authorization Code ๋ฐ๊ธ ๊ตฌํ
- Mypage
- Mypage UI ๊ตฌํ
- Mylist ์ถ๊ฐ, ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ UI ์ ์
- Songlist ๋ ธ๋ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ UI ์ ์
- Songs
- ์ฒดํฌ๋ฐ์ค UI ์ ์
- ESLint
- Dotenv
- Axios
- React
- React Hooks
- React Route Dom
- Styled Components
- Node.js
- MySQL
- Sequelize
- PM2
- AWS(EC2, RDS, S3, Route53, CloudFront)
- Cheerio