https://obscure-hamlet-27606.herokuapp.com/
"heroku-postbuild": "npm install --prefix client && npm install -prefix server && npm run build --prefix client "
start: node server/index.js 정의(해로쿠에 올라가면 이 스크립트를 실행)
engines": {
"node": "16.11.1",
"npm": "8.0.0"
},
// 프로덕션 모드
if (process.env.NODE_ENV === "production") {
//프로덕션일 경우 해로쿠가 하단에 build 폴더를 보도록 한다.
app.use(express.static("client/build"));
//랜더링될 html 파일을 지정한다
app.get("*", (req, res) => {
res.sendFile(path.resolve(__dirname, "../client", "build", "index.html"));
});
}
|-client
|--src --source폴더
|-ItemList --아이템(카테고리/카테고리의 아이템)을 표현하는 컴포넌트와 타입
|-itemListComponents
|-BucketList.tsx
|-CategoryItemList.tsx
|-CategoryList.tsx
|-ItemContent.tsx
|-ItemDetail.tsx
|-Paging.tsx
|-itemListScreens
|-ItemList.tsx
|- types
|-types.ts
|-Main --매인화면에 쓰인 콤포넌트들(sidbar나 header)
|-images
|-headerArrow.svg
|-types
|-type.ts
|-CustomLinkComponent.tsx
|-Header.tsx
|-SideBar.tsx
|-Redux --redux를 사용하기위한 파일들(thunk, promise)
|-types
|-types.ts
|-actions.ts
|-actionTypes.ts
|-combineReducers.ts
|-defaultReducer.ts
|-untills --axios인스턴스를 만든 파일/ 색상 상수들이 입력된 파일
|-AxiosInstance.ts
|-Colors.ts
|- server
|-index.jk --react를 배포하기위한 express 서버
리엑트를 사용하여 지금까지 App만 만들다보니 웹페이지를 만드는 것에 많이 부족한 부분이 있었습니다.
하지만 다시한번 예전에 공부했던것들을 찾아보며 만들다보니 자연스럽게 완성이 된 것같습니다.
이 과정에서 제가 발전했다는 것을 느꼈던 포인트는
제가 잘 모르는 것에 있어 겁먹거나 힘들어하지않고 자연스럽게 찾아보고 공부하여 적용하였다는 점입니다.
개발자로써 많은 성장을 했음으 느꼈던 부분이고 앞으로 프로젝트를 함에있어 이런
마음가짐을 유지하여 프로젝트에 임해야겠다는 생각을 했습니다.
사실 프론트엔드 개발자로써 수많은 디자인을 봐왔지만 막상 참고할만한 디자인이 없이 개발한다는 것은 보통 힘든일이 아님을 다시한번 느끼게 되었습니다.
사실 회사에선 ContextApi를 사용하다보니 redux의 promise 기능과 Thunk의 기능을 파악하는 데 조금 어려움이 있었습니다.
하지만 이또한 찾아보고 공부하고 적용하여 극복했습니다.
참고한싸이트 : https://sso-feeling.tistory.com/508
dangerouslySetInnerHTML
을 사용하면되지만 cross site scripting 공격에 취약 합니다. 참고한 싸이트 : 직접 검색하여 사용했습니다.
참고한싸이트 : https://redux-advanced.vlpt.us/2/03.html
참고한 싸이트 : 직접 검색하여 사용했습니다.
참고한 싸이트 : 직접 검색하여 사용했습니다.
@jsx
선언을 해주어야합니다 이것을 피하기 위해선 cra에서 eject하여 webPack으로 환경을 바꾸고 webPack설정을 해주어야합니다. 참고한 싸이트 : https://dohaelee.github.io/posts/2021-06-13-craco-emotion-react/