[✍️ Dev Log] 정송이 / 2021-05-25
@lovelysi0113 đang làm issue này rồi.
Từ ngày 25/5/2021.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
오늘은 어떻게 프로젝트에 기여했나요?
- #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 발급 받기)
- 추가적으로 구현할 기능 찾기(고민 + 회의)
- Ngôn ngữ chính
- TypeScript
- Star
- 9
- Fork
- 3
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của codestates/Reciper-server
-
[✍️ Dev Log] 정송이 / 2021-06-16Có thể đã có người làm @lovelysi0113 đã nhận 1945 ngày trước. Đang mở@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#254 · 1 người được giao ·
-
[✍️ Dev Log] 정송이 / 2021-06-08Có thể đã có người làm @lovelysi0113 đã nhận 1953 ngày trước. Đang mở@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#250 · 1 bình luận · 1 người được giao ·
-
[✍️ Dev Log] 정송이 / 2021-06-07Có thể đã có người làm @lovelysi0113 đã nhận 1953 ngày trước. Đang mở@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#245 · 2 bình luận · 1 người được giao ·
-
[✍️ Dev Log] 정송이 / 2021-06-06Có thể đã có người làm @lovelysi0113 đã nhận 1954 ngày trước. Đang mở@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#234 · 1 người được giao ·
-
[server] [Workspace] - webRTC initial featureCó thể làm lại được @gatsukichi đã nhận 1955 ngày trước và không có pull request nào đang mở. Đang mở3h Middle server Workspace
codestates/Reciper-server#233 · 1 người được giao ·
Tất cả issue của codestates/Reciper-server
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
db-ux-design-system/core-web#8461 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Cannot run an integration on windows when power shell is selected as the default profile terminalĐang mởPriority/Blocker Type/Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
wso2/product-integrator#2767 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
severity:low
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày