1주차 멘토링 일지 - boostcampwm2023/baekjoonrooms GitHub Wiki
✔️ 결론 및 To Do
✔️ 아젠다 및 질문
Q. React 상태관리?
- 당장 상태관리 라이브러리가 필요없어 보이면 상태관리 라이브러리를 안 써도 되나요?
- 가벼운 상태관리 추천 Recoil vs Zustand vs Jotai vs Valtio
→ 필요없으면 안 써도 된다
→ recoil vs jotai | zustand vs redux toolkit | valtio vs mobx
→ 아래에서부터 위로 | 위에서부터 아래로 |
→ 만드는 앱이 컨텍스트 api를 얼마나 쓰느냐가 고려점
→ 서스펜스는 선택이 아니라 필수(상황 분기 코드, 관리를 잘 하면 에러바운더리 등 에러 관리 측면에서 배울 점이 많다)
→ 서스펜스 → tanstack query 필수
→ 상태 관리는 해야 한다. 무슨 상태를?
→ 정의한 다음 라이브러리 선택하라
→ 처음에는 안쓰는 걸 추천
→ 라이브러리 없이도 할 줄 알아야 라이브러리의 역할을 이해할 수 있음
→ 그나마 redux toolkit이 입문에 괜찮다, tanstack query는 편하지만 이해는 어려움
잘 만들거라는 기대를 하지 않아도 괜찮다.
Q. CSS? Emotion? Styled component? SCSS? Tailwind?
→ 우리가 쓰고 싶은 거! 한 번쯤은 다 써봄직 하다!
→ css(클래스 기반) vs css in js(컴포넌트)
→ 이후의 선택은 기술 수준에 따라 선택
Q. CI/CD
- Jenkins?
→ 올바른 방향은 존재하지 않는다, 챌린지도 줄여야ㅋㅋㅋ
→ 비용적 부분에서 고려했을 때 그냥 ncp도 괜찮다
→ jenkins github action 거기서 거기, 그냥 쓰고 싶은 거
→ 캐싱, 셀프 호스티드 러너 등 엔지니어링으로 github action의 느림을 해결하는 것도,,,
(느리면 왜 느린지를 봐야한다! 관찰을 해야 최적화가 가능하다)
Q. 서버 포트 뭐뭐 열어둬야 하는지… 3389, 22, 8080, 80, 443?
- ACG (Access Control Group) 설정
- ACG 설정에서 참고할 블로그 글: https://manvscloud.com/?p=859
- 해킹 시도가 빈번해서 자주 사용되는 포트 번호 22, 3389, 80 등등…을 닫아둬야 한다?
→ ip 제한을 거는 것도 방법, key가 털리지 않으면 상관x
→ 중요한 데이터 집어넣지 말고 그냥 필요한 것만 열자
Q. 배포할 때 root 에서 작업하지 않고 bojrooms라는 계정을 따로 파는 게 맞는 방향인지
- https://stackoverflow.com/questions/10447758/why-should-i-not-deploy-my-asp-net-website-or-webapp-to-the-root-of-a-domain-in
- https://stackoverflow.com/questions/67133071/apache-linux-deploying-website-as-root
→ 안 파도 괜찮지만 따로 파면 베스트, tanstack query랑 비슷하게 나중에는 ssh를 써서 들어갈 경우 없다
Q. 프로젝트 파일 permission을 어떻게 하는 게 좋을지… 700? 600?
→ permission도 대충
Q. 도메인 어떻게?
- NCP Global DNS, AWS route 53 → [app.bojrooms.com](http://app.bojrooms.com) / api.bojrooms.com
- 가비아 → [bojrooms.com/app/](http://bojrooms.com/app/) / bojrooms.com/api?
- 다른 도메인 대여 사이트 추천
→ ncp 무료 도메인?
→ ncp TLS certificate manger 인증서를 공짜로 만들어주느냐? 무료 인증서1
→ 로드밸런서 붙이면 못생긴 주소 하나 생김
맨 앞에 로드 밸런서 붙이고 ~ 못생긴 주소가 하나 바뀌는데 그거 가져다 쓰세요!!
Q. 푸시할 때마다 매번 비밀번호를 입력해줘야 하나요?
- ssh의 경우, ssh private key를 다른 팀원들에게 노출해야 함. 결국 비밀번호를 설정해야 함.
- https의 경우, github이 비밀 번호 입력을 막아둠.
- https + PAT의 경우, PAT가 매우 길고 복잡하다.
- credential.manager store나 gh의 경우, PAT를 plain text로 서버에 저장한다. (위험)
- git config —global credential.helper manager 를 설치해야 하는가?
- organizational PAT?
- 현재 해결책: git credential.helper cache를 한 뒤 gh auth login 후 https browser login을 하면 리모트 서버 로그인도 호스트에서 할 수 있다. 그 이후 gh auth logout 해주면 토큰이 사라지지만 여전히 credential-cache daemon이 살아있어서 push 가능하다.
Q. Nginx 따로 서버 생성?
→ nginx 붙이지 않아도 됨 굳이 붙이지 말라
→ nginx 안 써도 됩니다!! express?
Q 프론트, 백, 디비 다 한 ec2에 올려도 되나요? 도커에 담아도 되나요?
→ 회사마다 다 다르다 상관없다
✔️ 멘토링 내용
일렉트론 같은 크로스플랫폼 아이디어 생각해보라
백준 사이드 프로젝트 많다 → 후기나 사례 찾아보기
✔️ 체크리스트
이번 주 멘토링에서 이야기 나누면 좋을 주제입니다. 우리 팀의 상황은 어떤가요? 멘토님과 이야기 나눈 후 셀프 체크하고, 그 이유를 작성해보세요. 추가하고 싶은 항목이 있다면 직접 추가해도 좋습니다.
- 기술적 도전 과제 수립이 되었다.
- 현실성 있는 계획 수립이 되었다.
- 프로젝트 기획과 설계의 뼈대가 나왔다.