# 전시회
[노션 주소](https://www.notion.so/EXHIBITIONS-5668c6c5c80e4c9ca6e6b72ffc17f723)
7분 발표
간략한 프로젝트 소개, 팀 소개 ( 1분 )
영상 ( 2분 ) => 프로젝트 주제/내용, 영상 편집 툴 사용?
이외 (3분 30초 잡기)
- 차별점과 특장점 위주로
### 더미 데이터
- 기술스택
- SDK => 서버 => 프론트
- ~~Express + MongoDB~~
- 개발환경
- 배포서버와 개발서버 분리
- 개발서버를 2개로 분리 => 이미지 추가를 통한 발표
- 자동 배포활성화 및 야간서버
- 주간개발 서버는 백엔드 개발자가 오류내용을 바로 반영
- 야간개발 서버는 로그에 에러 내용을 저장하고 다음날 반영
- ~~ESLint 와 prettier 로 코딩 컨벤션 통일 및 runtime error 를 줄이기 위함.~~
-
- 협업방식
- 구체적 커밋과 PR을 통해 SDK / Server / Client 의 방식을 파악
- 팀원 모두가 Approve를 할 경우 머지가 되도록 설정 ( 코드리뷰는 덤 ) ( Git action 을 통한 review 설정 )
- wiki/study 에서 공부한 내용을 정리하고 공유
- ~~백로그로 git hub project 사용~~
### sdk
- 재사용성, 확장성을 생각해서 구조를 만들었다.
- mono repo 를 통한 패키지 세분화 ( lerna )
- npm을 통한 배포.
### server
- 성능 및 안정성 중심
- express 사용했다.
- 개발 서버와 리얼 서버를 분리해서 관리. => 웹후크를 통한 자동 동기화
- Jest와 RESTClient를 통한 견고한 서버 테스트 (Jest 해야함)
- 로그 수집
- 성능 최적화를 위한 PM2 클러스터링 및 익스프레스 웹팩
- 보안을 위한 다수의 구문 사용 => 좀더 자세히
- swagger 사용해서 restapi
-
### admin
- react + typescript 씀
- container, presentational 컴포넌트 분리를 통한 관심사 분리
- redux 통한 전역 상태 관리
- webpack 으로 bundle size 고려한 optimize: minify, code splitting 등 (예정ㅎ)ㅋㅋ
- material-ui를 통한 디자인 획일화
## 각자 생각한 것
### SDK
**구조**
- 플랫폼을 추가해야할 경우 최대한 적은 코드로 추가할 수 있게 하기
- 수많은 정보들을 보내줘야 하는데 플랫폼 별로 공통된 정보와 공통되지 않은 정보를 분리하는 데 초점을 둠.
- 같은 기능인데 알고리즘이 다를 경우 깔끔하게 처리하기
### 서버
**성능**
- 비동기 최적화 ( await가 순차적으로 필요 없는 부분을 Promise.all로 묶음 )
- index 넣어야 할 속성 ( 닉네임, 관계형으로 참고할 수 있는 issueid 를 index 로 넣음. 너무 많은 index 를 쓰면 document 크기가 커지기 때문에 선별할 필요가 있었음. )
- 테스트 및 swagger 정리
- 서버 수치적인 기준을 적용하고 그 기준을 맞추기 위해 개선 ( 아띠렐리로 성능 측정 -> 비동기 최적화임 )
- 개발서버의 분리 및 자동 동기화
### 프론트
**재사용성 유지보수**
- 상태 컴포넌트 역할 나누기
- 뷰 만들면서 렌더링이 너무 많이 되지않게 만들기 위해 최대한 컴포넌트를 나누면서 만들었음
- 무언가 눈에 보이는 경험을 주고 싶었음
## 기술적으로 어떤 것을 도전했고 얼마나 성장했는지
# 발표 주제
한 두 문장 이내로 적어주세요. 산출물에 대한 소개 보다는 지난 5주 동안 팀이 함께 배우고 성장한 부분을 어필할 수 있도록 적어 주는게 좋겠죠?
# 프로젝트 소개
500자 이내로 적어주세요, 서비스 명과 로고가 있을 경우 자유롭게 업로드해도 됩니다.
## 팀원 소개
| 캠퍼 번호 | 이름 | 분야 | 역할 |
| --------- |:------:| ---- | ------------- |
| J005 | 강석민 | web | server |
| J049 | 김원호 | web | admin, server |
| J050 | 김은빈 | web | admin, sdk |
| J071 | 문혜라 | web | admin, sdk |
## 기술 특장점
우리 팀만의 기술 특장점을 적어주세요. 프로젝트에서 사용한 기술 스택을 단순히 나열하기 보다는 해당 기술을 사용하여 어떤 차별점을 도출하였는지를 위주로 작성해주세요.
님들 무엇을 배웟나여 하나씩 적어봅시다~ ㅎ
- 아무렇게나 4명 뽑으면 그중에 3명은 나보다 잘한다 -> 오 명언이네요 ㅎ
- 막상 쓰려고하면 도구(라이브러리나 툴)는 많지만 제대로 알고 사용하지 않으면 의미가 없다.
- 야근하는 법을 배웠따~
- 3주 프로젝트에서는 항상 라이브 쉐어를 써서 놓쳤던 커밋과 PR 코드리뷰를 배우며 성장했다.
- 팀원을 야근시키는 방법을 해냈다. <- ㅎㅎ
- 지금 머릿속엔 치킨이 가득한거같다
- 배울게 끝이 없고 모르는 것도 너무 많다
- 생각보다 시간이 너무 없었다
- 공부와 개발은 생각보다 함께 가지 않는다 ?
- 문서 정리는 어렵다
- 우리팀원들 성격 너무 좋다
- wiki 에서 사용 기술을 정리하다 보면 글을 쓰기위해서 더 공부하게 된다.
- 4명이서 안싸워고 5주한것도 용하다
-
## 해야될 것
- 차별점과 특장점 위주로 발표내용
- 과정 성과, 질문 대비
2000 tps
데이터베이스 인덱스 확인
데이터 베이스 트랜잭션
two phase commit
트랜잭션
문서화
돔트리
KEY
구조적으로
어떤 문제