### 참여자
- J176 장민준 (@SYN0P)
- J008 권구상 (@rnjsrntkd95)
- J050 김재현 (@jaehyeon48)
### 피어세션 내용들
- 2주 동안 작업한거 간단히 소개?
- 궁금했던 것들 물어보고
- 기술공유 혹은 고민 했던 것들 혹은 삽질 했던 것들 공유해주세요.
#### 벽전
1. NEXT를 사용했고 각 전시회 페이지와 옥션페이지가 SEO가 되었으면 했다.
- 라우팅이 쉽다
2. 레이아웃으로 공통 컴포넌트를 만들어서 페이지를 구성하는데 불필요한 코드 중복을 줄였다.
3. 배경이 사진으로 하다보니 글자 색이 배경과 같아서 안보이는 이슈가 있어서 배경사진 그림을 분석해서 검은색 글씨 혹은 흰 글씨를 적용할 수 있도록 했습니다.
### 질문
1. 캐러셀 애니메이션 어떻게 구현하셨나요?
- ㄴ react-slick 을 사용했습니다.
2. blur를 어떻게 하나요
- ㄴ css backdrop-filter blur 를 사용했습니다.
3. 헤더랑 푸터 레퍼런스가 있나요?
- ㄴ 아트지?, openSea 를 참고 해서 card를 만들었고 헤더 푸터는 저희끼리 만들었습니다.
4. SEO에 들어갈 수 있게 NEXT를 쓰였는데 리스트는 페이지네이션을 하지 않고 인피니티 스크롤로 했나요?
- ㄴ 검색결과에서 리스트로 가고 싶어하지 않을 것이라고 생각해서 전시회나 옥션 상세 페이지에만 적용할 생각입니다.
5. jwt는 SPA에 적용하는 걸로 아는데 SSR 도메인간에 유지가 되던가요?
- ㄴ 깊게 고민하지 않았던 부분인데 도메인간에 유지가 되어서 따로 처리하지 않았습니다.
6. 경매 쪽은 실시간으로 처리해야하는데 어떻게 하시나요?
- ㄴ 소켓io namespace를 활용해서 실시간 처리를 할 예정이고 성능 문제가 되면 해결하려 한다.
7. NFT에 관해서 설명해줄 수 있는지?
- ㄴ 내가 소지하고 있다는 증명서가 됩니다. NFT 토큰 내부에 r거래 내역, 가격, 날짜 등이 기록이 되고 위변조가 되지 않습니다.
- ㄴ 최근에는 사진 이미지 뿐만아이라 최초의 트윗, 게임의 공간, 게임의 아이템도 NFT로 거래를 시도하고 있습니다.
8. 실시간성 트랜잭션 결과 처리 어떻게 할건지.
- 레디스를 사용하자?
9. NEST API 서버를 여는거말고 소켓서버는 어떻게 할것인가?
- app 객체에 붙이면 되지 않을까 싶습니다.
10. eslint 참고어떤걸 했을까요?
#### BOOSTOCK
1. 백단 아키텍처 아키텍처를 이야기를 하고있다.
2. 웹소켓을 써야 하나 확실히 했다.
1. SSE + rest api를 고려했다가 차트 때문에 웹소켓을 사용하게 되었습니다.
2. websocket과 socket.io 고민하고있다.
3. socket.io string으로 주고 받아서 성능이 안좋다.
4. 최대한 성능을 높이고자 websocket을 진행할 것이다.
3. UPbit를 참고해서 하려한다.
4. 몽고DB, mysql 둘다 사용한다. 차트도 일분마다 계속 생성되는 차트다. 최상단의 거래소의 데이터를 저장하고 있는 것이라고 생각했다. scale out을 고려해야겠다. 확장성을 고려해야겠다.
5. 실시간적이고 대용량 트래픽을 처리를 고민하고있는데 어느정도인지 생각을 안했다. 그부분에 더 디테일하게 생각을 하면 좋겠다. 조언을 받았습니다. 거래소가 일반적으로 얼마큼의 사용자가 있는지 트랜잭션을 확인해볼 때 tps라해서 초당 트랙잭션이 얼마인지 계산을 했다.
6. mysql에서는 버틸 수 없어서 mongoDB를 선택하신건지 피드백을 받았다.
7. jwt 왜 사용했는지 와 jwt를 사용하므로써 다른 인증과 장/단점이 무엇인지 생각해본적이 있는가? 면접 질문을 받았었다.
8. 데이터베이스가 중요하고 트랜잭션의 성공여부가 명확하게 지켜줘야 한다. 타입ORM을 사용하는데 트랜잭션을 제어하는 기술을 파악 하고 잇다.
9. 클라이언트에게 뿌려주는 거는 서버가 클라이언트에 뿌려주고있다. 일정 시간 마다 종합된 정보를 보내는데 짧은 간격으로 계속으로 보내줘서 렌더링을 빠르게 한다. DB에서 쿼리에서 계속 보내야 한다. 10ms 안에 다 처리가 되어야 한다.
- ㄴ매번 쿼리를 날리지 않는다. 가격이 딱 정해진 것 하루 전까지만 DB에 저장을 할 수 있고, 막 바뀌는 데이터는 메모리DB로 처리 한다.
- ㄴ웹소켓을 사용하는 정확한것 같다. SSE는 만들고 있는 서비스에 일단위 틱단위 시간단위 필터를 처리할 수 가 없다. 종목이 바뀌게되어도 처리할 수 가 없다.
- ㄴ호가, 차트, 소켓이 다 따로 들어간다. 로그인을 했을 때 관심 종목 다 받아놓고 클라이언트에서 갖고 있다. 소켓을 열때 클라이언트에 맞게 처리할 수 있게 해주어야 한다.
-
#### 질문
1. 데이터를 어디서 받아올 예정인가요?
2. HTML5 표준 websocket을 사용하면 재접속 처리 등을 아마 직접해야하는 걸로 알고있는데
3. 트랜잭션 제어 부분 듣고 싶어요.
4. 인메모리 DB로 저장한다는 것이 현재 가격인가?
- 모든 종목의 데이터를 갖고있고 거래 데이터 메모리DB에서 관리하고 주기마다 RDB에 저장하도록 한다.
- NoSQL을 사용하는 것에 굉장히 소극적이라고 했다.
- 차트때문에 MongoDB를 사용해야한다.
5. 인메모리 DB를 고려했는데 서버가 동기화 되지 않냐 라는 질문을 받았다.
- 인 메모리가 다르니까..
- 채결가능한 것부 처리하고