# 전시회 [노션 주소](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 구조적으로 어떤 문제