View Code? Open in Web Editor
NEW
๐ ๊ธ์ฆํ๋ ํธ๋ํฝ์๋ ์์ ์ ์ธ ์์ฝ ์๋น์ค, Atomic Pattern์ ์ ์ฉํ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ, ์ค์ฉ์ ์ธ Testing์ ์ฃผ์ ๋ก ํ๋ ์ด๋ฒคํธ ์๋น์ค
Home Page: https://www.bookus.kr
TypeScript 98.97%
JavaScript 0.35%
HTML 0.30%
CSS 0.10%
Dockerfile 0.28%
2019-12's People
2019-12's Issues
ModifyFormContainer (๋ก๊ทธ์ธ ๋ฒํผ)
ํ์ด์ง
#19 ํ์๊ฐ์
ํ์ด์ง
์ค๋ช
- Lable ๊ณผ Inputbox๋ก ๊ตฌ์ฑ๋์ด์๋ ์ปดํฌ๋ํธ
- ์ด๋ฉ์ผ, ์ฑ, ์ด๋ฆ, ํด๋ํฐ ๋ฒํธ ๋ค๊ฐ์ง๊ฐ ๋ง๋ค์ด์ ธ์ผ ํ๋ฉฐ, ์ด๋ฉ์ผ์ ๊ฒฝ์ฐ, Oauth ์์ ๋์ด์จ ์ด๋ฉ์ผ๋ก ์ฐ์ฌ์ง๊ณ , input์ด disabled ๋๋ค
ํ
์คํธ ํ๊ฒฝ
๋ก์ปฌ
์ํ ์ ์ฐจ
Decorator ์ ๋ํ ํ์ผ์ ์ปค๋ฐ
์ค๋ฅ ๋ด์ฉ
์ปค๋ฐ์ type check ํต๊ณผ ์คํจ
type check ๋ฅผ ํ๋ tsc options ์ experimentalDecorators ๊ฐ ์์ด์ ๋๋ ๊ฒ ๊ฐ์
๊ธฐ๋ ๊ฒฐ๊ณผ
์ปค๋ฐ์ด ์ ์๋ํด์ผ ํจ
์ฐธ๊ณ (์คํฌ๋ฆฐ์ท ๋ฑ)
์คํ๋ฆฐํธ 1์ฃผ์ฐจ
1์ธ๋น ํ์ด์ง ๋จ์ ๊ฐ๋ฐ
1์ผ์ฐจ
- Backlog ์ ๋ฆฌ
- ๋๋ ํ ๋ฆฌ / lint ๋ฑ ํ๋ก์ ํธ ๊ฐ๋ฐ ํ๊ฒฝ ์ธํ
2์ผ์ฐจ
- DB ๊ตฌ์กฐ ์์ฑ (migration + modeling)
- API ๋ฌธ์ ์์ฑ (Swagger.io)
- Infra ํ์ (์์ฝ ์๋ฒ์ ๋ํ redis ๊ฒ์ฆ / FE ๋ฐฐํฌ ์ธํ๋ผ ํ์ )
- TEST ๊ตฌ์ฑ
- BE, FE ์ ๋ํ ๋๋ ํ ๋ฆฌ / branch ๋ณ ํ
์คํ
์ ๋ํ config ์ค์ ํด์ผํจ
- DB ํ
์คํ
์ ์ํ Travis - BE ํ
์คํธ ํ๊ฒฝ ์กฐ์ฑํด์ผํจ
- front ๊ฐ๋ฐ ์์
- ๋ก๊ทธ์ธ / ๋ฉ์ธ
- ๋ก๊ทธ์ธ๊ณผ ๋ฉ์ธ์ ๋ ์ด์์ ๋จผ์ ๊ตฌ์ฑ ํ์, ์ปดํฌ๋ํธ๋ฅผ ์ด์ด์ ์์ฑ.
- Testing ์ ๋ํ ๊ธธ๋ผ์ก์ด.
3์ผ์ฐจ
- 2์ผ์ฐจ ํ๋ก์ ํธ ๋ฆฌ๋ทฐ
- ๋ฏธํกํ ๋ถ๋ถ ์ถ์ถ / TEST ์ฝ๋์ ๋ํ ๊ณต๋ถ ๋ฐ ๊ฒ์ฆ
- 2์ผ์ฐจ์์ ๋ฏธ๋นํ๋ Feature ์ด์ด์ ๊ฐ๋ฐ
- FE ๋ ์ด์์ ์์ฑ ์ด์ด์ ์์
- Backend API / DB ์์ฑ ์๋ฃ์, ๊ฐ๋ฐ์์๊ณผ ํจ๊ป Test ๊ฒ์ฆํด์ผํจ.
- backend ๊ฐ๋ฐ ์์
- Frontend ์ ํ์ํ ๋ฐ์ดํฐ ์ฐ์ (๋ก๊ทธ์ธ๊ณผ ๋ฉ์ธํ์ด์ง)
- Oauth ๊ณต๋ถ feature ๋ฝ์๋ด๊ธฐ;
4์ผ์ฐจ: 19์ ์ฝ๋ ํ๋ฆฌ์ง
- 3์ผ์ฐจ ํ๋ก์ ํธ ๋ฆฌ๋ทฐ
- BE, FE ์ ๋ํ ์ด๊ธฐ ์ฝ๋ ๊ฒ์ฆ
- 3์ผ์ฐจ Feature ์ด์ด์ ๊ฐ๋ฐ
- ์ปดํฌ๋ํธ์ ํ
์คํ
์ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ๋ค ๊ฐ์ ธ์ค๊ธฐ
- ๋ฐฐํฌ
- Server-Master, Client-Master ์ PR ๋ฐ ๋ฐฐํฌ
- CD ๊ตฌ์ฑ์ ์์ง ์๋์ด์๊ธฐ์ ์ผ๋จ ์๋ ๋ฐฐํฌ
5์ผ์ฐจ: ๋ฐฐํฌ
- ์ฝ๋๋ฆฌ๋ทฐ ๋ฐ์ ์ฝ๋ ์ ๋ฆฌ
- ์ด์ผ๊ธฐํ๊ธฐ (๊ทธ๋ ๋ฝํ๊ฑฐ ๋ณด๊ณ ใฑ)
Explanation
์ ๋ชฉ๊ณผ ๋์ผํ๋ฉฐ ํ ํฐ์ ๋ฐ๊ธํ๋ Shared-Middleware์ ๋ง๋ค ์์ ์.
LoginBtn (๋ก๊ทธ์ธ ๋ฒํผ)
ํ์ด์ง
๋ก๊ทธ์ธ ํ์ด์ง #17
์ค๋ช
- ํด๋ฆญ ์, OAuth๊ณผ์ ์ ๊ฑฐ์น ํ ํด๋น ์ ์ ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์
- ์์ผ๋ฉด ๋ฉ์ธ ํ์ด์ง๋ก ์ด๋ (๋ก๊ทธ์ธ)
- ์์ผ๋ฉด ํ์๊ฐ์
ํ์ด์ง๋ก ์ด๋ (ํ์๊ฐ์
)
๊ธ์์ผ ๋ฐฐํฌ ์ด์ , 12์๊น์ง ์ฝ๋๋ฆฌ๋ทฐ์ ์ ์ถํ ์ฝ๋ ์ ๋ฆฌํ๊ณ ์ด์ผ๊ธฐ
Component
HeaderContainer (๊ณตํต ํค๋)
Screenshot
Page
๊ณตํต ํค๋
Explanation
- ๊ณตํต์ผ๋ก ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ๋ฅผ ์์ฑ
- ๋ก๊ทธ์ธ ์ํ์ ๋ฐ๋ฅธ ๋ถ๊ธฐ๋ ๋์ง ์๊ณ ๋ ์ด์์๋ง ์กด์ฌ
Logo (๋ก๊ณ )
ํ์ด์ง
๋ก๊ทธ์ธ
์ค๋ช
- BookUs! ๋ก๊ณ
- ๋จ์ ๋ก๊ณ
LoginBtn (๋ก๊ทธ์ธ ๋ฒํผ)
ํ์ด์ง
๋ก๊ทธ์ธ ํ์ด์ง
์ค๋ช
- ํด๋ฆญ ์, OAuth๊ณผ์ ์ ๊ฑฐ์น ํ ํด๋น ์ ์ ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์
- ์์ผ๋ฉด ๋ฉ์ธ ํ์ด์ง๋ก ์ด๋ (๋ก๊ทธ์ธ)
- ์์ผ๋ฉด ํ์๊ฐ์
ํ์ด์ง๋ก ์ด๋ (ํ์๊ฐ์
)
SignUpBtn (๋ก๊ทธ์ธ ๋ฒํผ)
ํ์ด์ง
#19 SignUpPage
์ค๋ช
ํด๋ฆญ ์, SignUpPage ์ ์
๋ ฅ๋ ๊ฐ๋ค์ด Validation ๋๋ฉด์ ํ์๊ฐ์
api ๋ฅผ ํธ์ถํจ.
Explanation
์ง๊ธ Frontend ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ์ ๋์ค๊ฐ ๋งค์ฐ ๊น์ต๋๋ค.
์์ผ๋ก๋ ๊ณ์ํด์ ๊น์ด์ง ๊ฒ ๊ฐ์๋ฐ,
์ด๋ฅผ Webpack์ alias ๊ฐ์ ์ค์ ์ ์ฐพ์์ ์ค์ ํ๋ฉด
์ฝ๋์ ๊น๋ํจ๊ณผ ํธ๋ฆฌํจ์ ์ฐพ์ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค!
Explanation
์ด๋ฒคํธ์ ์์ธ์ ๋ณด๋ฅผ ๋ณด๊ธฐ ์ํด์ ์ด๋ฒคํธ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ API๋ฅผ ์์ฑํด์ผํจ.
Explanation
- Nomalize : CSS ์ด๊ธฐํ
- GlobalStyles : (*, body ... )์ ์ ์ญ์ ์ธ ์คํ์ผ ์ค์
- Theme : ์ฌ์ดํธ์ ์ ์ฉ๋๋ ํ
๋ง ์คํ์ผ
React App, Storybook์ ์ ์ฉ
Explanation
Festa ํด๋ก ํ๋ก์ ํธ์ ์ฐ์ผ Mock Data๋ฅผ ๋ง๋ฆ
ํ
์คํธ ํ๊ฒฝ
์ํ ์ ์ฐจ
์ค๋ฅ ๋ด์ฉ
์คํ ๋ฆฌ๋ถ ์์์ LogoBtn ์ปดํฌ๋ํธ์ ์ด๋ฆ์ด Logo๋ก ๋์ด์์ต๋๋ค.
ํ์ธ๋ถํ๋๋ฆฝ๋๋ค.
๊ธฐ๋ ๊ฒฐ๊ณผ
์ฐธ๊ณ (์คํฌ๋ฆฐ์ท ๋ฑ)
Explanation
README.md ๊พธ๋ฏธ๊ธฐ..
์ด๋ค ๋ด์ฉ์ด ๋ค์ด๊ฐ๋ฉด ์ข์๊น์
- ๋ก๊ทธ์ธ / ๋ฉ์ธ
- ๋ก๊ทธ์ธ๊ณผ ๋ฉ์ธ์ ๋ ์ด์์ ๋จผ์ ๊ตฌ์ฑ ํ์, ์ปดํฌ๋ํธ๋ฅผ ์ด์ด์ ์์ฑ.
- Testing ์ ๋ํ ๊ธธ๋ผ์ก์ด.
BE, FE ์ ๋ํ ์ด๊ธฐ ์ฝ๋ ๊ฒ์ฆ
- Front-end Component๋ณ ์ ๋ฆฌ
Logo (๋ก๊ณ )
ํ์ด์ง
๋ก๊ทธ์ธ ํ์ด์ง #17
์ค๋ช
BookUs! ๋ก๊ณ
๋จ์ ๋ก๊ณ
Page
์ด๋ฒคํธ ์์ธ ํ์ด์ง
Components
Page
๋ฉ์ธ ํ์ด์ง
Components
- ๊ฐ๋ก์ถ (์๊ฐ๋ณ, ๋ ์ง๋ณ, ์๋ ๋๋ค)
Explanation
ํ์๊ฐ์
์ ํ์ํ API๋ฅผ ์์ฑํด์ผํจ.
๊ฐ๊ฐ์ Validation์ด ํ์ํ๋ฉฐ, ๋ก๊ทธ์ธํ ๋์ google id์ ๊ธด๋ฐํ๊ฒ ์ฐ๊ฒฐ๋์ด์์ด์ผํจ.
Backend
- BE, FE ์ ๋ํ ๋๋ ํ ๋ฆฌ / branch ๋ณ ํ
์คํ
์ ๋ํ config ์ค์ ํด์ผํจ
- DB ํ
์คํ
์ ์ํ Travis - BE ํ
์คํธ ํ๊ฒฝ ์กฐ์ฑํด์ผํจ
Frontend
- Cypress script (React App์ ๋ํ ํ
์คํธ, Storybook์ ๋ํ ํ
์คํธ)
Explanation
๋ฉ์ธํ์ด์ง์์ ์ด๋ฒคํธ๋ฅผ ๋ณด์ฌ์ค ๋ ์ฌ์ฉํ๋ API์.
์ด๋ฒคํธ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ฉด์ Lazyloading(pagination) ๋ํ ์ด API์์ ๋์ผํ๊ฒ ๊ตฌํํด์ผํจ.
Explanation
React-Router ์ธํ
์ ํด์ฃผ์ด์ผํจ. ๊ฐ๊ฐ์ ๋ผ์ฐํฐ ์ด๋ฆ์ Festa.io์ ์ด๋ฆ์ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ
ํ
์คํธ ํ๊ฒฝ
Local
์ํ ์ ์ฐจ
??
์ค๋ฅ ๋ด์ฉ
commit ์ lint ๋ฐ ํ์
์ฒดํฌ๊ฐ ์ ์์ ์ผ๋ก ์๋ํ์ง ์์ต๋๋ค. (husky, lint-staged)
yarn lint ๋ก ํ์ธํ๋ฉด ํต๊ณผํ์ง ๋ชปํจ์๋ ์ปค๋ฐ์ด ์๋ํ๊ณ ์์ต๋๋ค.
๊ธฐ๋ ๊ฒฐ๊ณผ
commit ์ commitlint, eslint, prettier, ts type check ๊ฐ ๋ชจ๋ ์ ์๋ํด์ผ ํฉ๋๋ค
์ฐธ๊ณ (์คํฌ๋ฆฐ์ท ๋ฑ)
Explanation
๊ฐ ์ด๋ฒคํธ์ ์์ธ ์ ๋ณด๋ฅผ ๋ณผ ๋ ๊ตฌ๋งค ๊ฐ๋ฅํ ํฐ์ผ ์ ํ์ ํ์
ํ๊ณ ์ด๊ฒ์ ๊ฐ์ ธ์์ผํจ.
#61 #66
Base Component๋ฅผ ์์ฑํ๊ณ ์๋ก์ด Component๋ฅผ ์์ฑํ ๋ ์ด๋ฅผ ํ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํจ
Component
NaverMapContainer (๋ค์ด๋ฒ ์ง๋ API)
Screenshot
Page
#61
Explanation
์ฃผ์๋ฅผ ํตํด์ ๋ค์ด๋ฒ ์ง๋์ ์์น๋ฅผ ๋ณด์ฌ์ค
์๋ฒ์ ๋ํ ๋ฉ์๋ ํธ์ถ ๋ก๊ทธ, ์ ๊ทผ ๋ก๊ทธ ๋ฑ์ ์ด๋ค์์ผ๋ก ๋จ๊ธธ์ง ๊ฒฐ์ ํด์ผ ํฉ๋๋ค.
- ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ์ค์
- Lint ๋ฑ ์ค์
- issue template
์๋ ๋ฐฐํฌ๋ฅผ ํ๊ธฐ ์ ์๋ ๋ฐฐํฌ๋ฅผ ๋จผ์ ๊ตฌ์ฑํด๋ณด๊ธฐ
(์์ฝ ์๋ฒ์ ๋ํ redis ๊ฒ์ฆ / FE ๋ฐฐํฌ ์ธํ๋ผ ํ์ )