[✍️ Dev Log] 정송이 / 2021-05-25
@lovelysi0113 ci sta già lavorando.
Dal 25/5/2021.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
오늘은 어떻게 프로젝트에 기여했나요?
- #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 발급 받기)
- 추가적으로 구현할 기능 찾기(고민 + 회의)
- Lingua principale
- TypeScript
- Stelle
- 9
- Fork
- 3
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di codestates/Reciper-server
-
[✍️ Dev Log] 정송이 / 2021-06-16Forse già presa @lovelysi0113 l’ha presa 1944 giorni fa. Aperta@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#254 · 1 assegnatario ·
-
[✍️ Dev Log] 정송이 / 2021-06-08Forse già presa @lovelysi0113 l’ha presa 1952 giorni fa. Aperta@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#250 · 1 commento · 1 assegnatario ·
-
[✍️ Dev Log] 정송이 / 2021-06-07Forse già presa @lovelysi0113 l’ha presa 1953 giorni fa. Aperta@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#245 · 2 commenti · 1 assegnatario ·
-
[✍️ Dev Log] 정송이 / 2021-06-06Forse già presa @lovelysi0113 l’ha presa 1954 giorni fa. Aperta@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
codestates/Reciper-server#234 · 1 assegnatario ·
-
[server] [Workspace] - webRTC initial featureForse di nuovo libera @gatsukichi l’ha presa 1954 giorni fa e non c’è nessuna pull request aperta. Aperta3h Middle server Workspace
codestates/Reciper-server#233 · 1 assegnatario ·
Tutte le issue di codestates/Reciper-server
Issue simili
-
enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
alunduil/projects-v2-sync#21 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
enhancement minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
testcontainers/testcontainers-node#1539 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
christopher-buss/eslint-plugin-flawless#72 ·
I maintainer di solito rispondono entro 1 giorno
-
cleanName keeps a state code that's joined to the word before it (SavannahGa → "Savannah Ga")Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
openwatersio/slackwater-database#281 ·
I maintainer di solito rispondono entro 1 giorno