[✍️ Dev Log] 정송이 / 2021-05-25
@lovelysi0113 がすでに取り組んでいます。
2021年5月25日 から。
評価
この issue はまだ評価されていません。
説明
오늘은 어떻게 프로젝트에 기여했나요?
- #96 #123 socket.io 이벤트 함수 파일 분리 성공
- chat 기능 관련 함수들을
controller/workspace/chat.ts에 정리 - kanban 기능을 구현할 파일
controller/workspace/kanban.ts에 세팅
- chat 기능 관련 함수들을
- #127 middeware 보완
- 프로젝트 확인-멤버 확인하는 middleware는 chat 뿐만 아니라 workspace의 다른 기능에도 사용됨
- middleware 이름을
chatChecker에서workspaceChecker으로 변경 workspaceChecker가 필요한 라우터에 middleware 설정(use()메소드 사용)
- #139 Rooms 테이블의 entity 설계
- 프로젝트 내 채팅방 목록을 저장하는 테이블
- Projects 테이블과 1:N 관계로 연결
- chat 기능에서 채팅방을 관리하는 기능 구현
- #123 routes, controllers 세팅
- 각 기능 별로 method, path, parameters 설정
- middleware
authChecker,memberChecker추가
- #141
post /workspace/:projectURL/chat요청 로직 작성- 새로운 채팅방 생성
- 새로운 채팅방 이름이 중복되는 값이면 에러 처리
- #143
post /workspace/:projectURL/chat/:room요청 로직 작성- 현재 채팅방의 이름 수정
- 이때에도 수정하는 채팅방 이름이 중복되는 값인지 확인
- #142
delete /workspace/:projectURL/chat/:room요청 로직 작성- 채팅방 삭제
- Rooms 테이블에서 해당 채팅방 이름 삭제(
remove()사용)
- #140
get /workspace/:projectURL/chat요청 로직 작성- 현재 프로젝트 내에 존재하는 채팅방 목록 조회
createdAt: ASC순서(= 채팅방 생성 순서)로 정렬
- respose data로 채팅방 목록을 보내줌
- 데이터베이스에서 채팅방 목록을 검색하는 함수
getRoomsList를 작성하여 각 로직에 적용
- 데이터베이스에서 채팅방 목록을 검색하는 함수
- #123 routes, controllers 세팅
- #150
get /workspace/:projectURL요청 로직 작성- ...하려고 했으나 이미 전에 만들어둔 로직이 있었음..! (5일 전의 나 대단하다!)
- 그래서 새로 만들지 않고 #112
get /project/:projectURL를 조금 보완하여 사용 - 프로젝트 정보 + 전체 멤버 정보 조회
- response data에서 members 데이터를 id에서 데이터 가공없이 전체 데이터로 바로 보내줌
- #37 API 문서 점검 및 보완
- workspace - chat 기능 관련 API 작성
- example 업데이트
- #81 스키마 디자인 점검 및 보완
- Rooms, Chats 테이블 추가 및 정리
오늘의 프로젝트에서 힘든 점은 무엇인가요?
-
일요일(5/23)에 엄청 고생했던 socket.io의 이벤트들을 각각 다른 파일에 분리하는 작업을 드디어 성공했다!
일요일에는 막막하기도 하고 검색해도 원하는 정보를 얻을 수 없어서 많이 힘들었는데.. 월요일(5/24)에 chat 기능을 구현하고 코드를 정리하면서 socket.io에 대해 많이 이해하게 되었고 어떻게 사용하는지에 대한 감을 잡을 수 있었다.
그래서 오늘 다시 파일 분리를 도전해보았는데 성공한 것이다! 와아!여러 방법을 시도하면서 알아낸 것은 다음과 같다.
io.on('connection')은 다른 함수 안에 들어가있으면 안된다.io.on('connection')으로 socket 연결 요청이 오는지 항상 대기하고 있어야 하는데socket.ts가 아닌 다른 파일로 들어가게 되면 항상 대기가 불가능해진다. (import로 불러온 함수는 계속 실행시키기 어렵다. 즉, 처음 1번만 실행되서 socket 연결 요청을 기다리지 않게 된다)app.set('io', io)을 사용하여 io를 원하는 라우터로 넘겨줄 수 있다.
io를 사용하려는 라우터에서app.get('io')로 해당 io를 불러올 수 있다.use()메소드를 사용하여 이벤트 함수를 실행하기 전 middleware를 추가할 수 있다.
이 middleware는 socket 연결할 때(즉,io.on('connection')이 실행될 때) 최초 1번 실행된다.
// socket.ts import socketChat from './controllers/workspace/chat'; const chatIo = io.of('/chat'); app.set('chatIo', chatIo); chatIo.use(workspaceChecker); chatIo.on('connection', (socket: Socket) => { socketChat(socket); });// controllers/workspace/chat.ts const socketChat = (socket: Socket) => { const chatIo = app.get('chatIo'); socket.on('event', () => { // 기능 구현 }); }; export default socketChat;
내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?
- chat 기능
- 클라이언트와 연결하여 테스트 진행
- 이미지 업로드 기능 구현
- refresh token 기능 구현(새로운 access token 발급 받기)
- 추가적으로 구현할 기능 찾기(고민 + 회의)
- 主要言語
- TypeScript
- スター
- 9
- フォーク
- 3
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
codestates/Reciper-server のほかの issue
-
[✍️ Dev Log] 정송이 / 2021-06-16対応中かも @lovelysi0113 が 1944 日前に担当しました。 オープン@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#254 · 担当者 1 名 ·
-
[✍️ Dev Log] 정송이 / 2021-06-08対応中かも @lovelysi0113 が 1952 日前に担当しました。 オープン@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#250 · コメント 1 件 · 担当者 1 名 ·
-
[✍️ Dev Log] 정송이 / 2021-06-07対応中かも @lovelysi0113 が 1953 日前に担当しました。 オープン@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#245 · コメント 2 件 · 担当者 1 名 ·
-
[✍️ Dev Log] 정송이 / 2021-06-06対応中かも @lovelysi0113 が 1954 日前に担当しました。 オープン@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#234 · 担当者 1 名 ·
-
[server] [Workspace] - webRTC initial feature再び着手できるかも @gatsukichi が 1954 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン3h Middle server Workspace
codestates/Reciper-server#233 · 担当者 1 名 ·
codestates/Reciper-server の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
microsoft/playwright#43327 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
microsoft/TypeScript#64758 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
opensearch-project/OpenSearch-Dashboards#12937 ·
メンテナーはふだん 2 日以内に返信
-
Liveness marks block-included attesters live in the block's epoch instead of the attestation's epochオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
status: needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
a2ui-project/a2ui#3158 ·
メンテナーはふだん 2 日以内に返信