codestates / codestates/Reciper-server
[✍️ Dev Log] 정송이 / 2021-05-26
- Dominant language
- TypeScript
- Stars
- 9
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
### 오늘은 어떻게 프로젝트에 기여했나요?
- #134 #107 project, workspace-chat 기능 테스트
- 클라이언트와 연결하여 테스트 진행 후, 에러 수정 및 코드 보완
- 내가 작성한 채팅 메시지를 나 이외 다른 사람에게 보내주기 위해 함수 변경
- `chatIo.to(room).emit('sendMessage', { ...chat })`
-> `socket.broadcast.to(room).emit('sendMessage', { ...chat })`
- #88 프로젝트 생성시 기본 채팅방 `General` 추가하기
- #90 project 삭제시 해당 프로젝트 내에 존재하는 채팅방 데이터도 함께 삭제하기
- #143 채팅방 이름 수정할 때 중복되는 이름인지 확인하는 로직 추가
- #64 router에 parameter 추가 (middleware에 `projectURL`이 필요)
- #95 response data format 수정(members 데이터 추가), 에러 테스트
- 클라이언트에서 400 에러가 발생
-> 알고보니 같은 요청이 두번 들어가서 첫번째 요청에서 제대로 멤버 추가가 되고 두번째 요청에서 에러가 발생된 것임
-> 서버 로직은 문제 없으므로 수정하지 않기로 결정
- #154 `getMemberInfo` 함수 구현
- 프로젝트의 멤버인지 확인하는 기능을 함수로 따로 구현
- 반복되는 코드를 효율적으로 활용하기 위해 한 함수로 작성하였음
- #70 `projectChecker`에 `getMemberInfo` 함수 추가
- middleware 이름을 `memberChecker`에서 `projectChecker`로 변경
- #127 `workspaceChecker`에 `getMemberInfo` 함수 추가
- 다른 middleware 코드 점검 및 수정
- #138 chat에서 이미지 업로드 기능 구현
- `sockio-file-upload`를 사용하여 구현 진행중
### 오늘의 프로젝트에서 힘든 점은 무엇인가요?
- 기능을 구현하고 테스트까지 완료된 코드들을 작업이 끝났다고 놔두지 않고 있다. 이 코드들은 새로운 기능을 구현하고 테스트 및 에러 수정을 할 때 다시 전체적으로 훑어보면서 함께 점검하고 있다. 신기하게도 몇번이고 확인했던 코드임에도 불구하고 새로 발견되는 에러도 있고 로직이 엉망인 부분도 보여 수정할 때도 있다.
기능 구현하기 급급했던 예전과 달리 요즘은 어떻게 해야 더욱 코드를 효율적으로 작성할 수 있을지에 대한 고민을 하고 있다. 지금 코드를 유지해도 되지만 굳이 middleware에서 `getMemberInfo` 함수를 따로 만든 이유도 여기에 있다. 여러 middleware에서 반복되고 있는 작업이 보였고 이를 하나로 묶어서 함수로 사용할 수 있지 않을까, 라고 생각하고 실제로 만들어본 것이다. 오늘 뿐만 아니라 다른 날에 했던 socket.io 파일 분리나 router, controllers 정리 작업을 진행한 이유도 위와 같다. 이렇듯 여러가지를 시도해보며 코드를 효율적으로 작성하는 법, 깔끔하게 정리하는 법에 대해 계속 생각하고 실제로 해보고 있다.
사실 같은 코드를 여러번 봐야하는 약간은 지루한 작업이긴 하지만, 확실한건 이 작업을 계속 반복하는 과정에서 다음에 새로 코드를 작성할 때 어떤 식으로 적어야할지에 대한 틀이 잡히고 있다는 점이다. 오늘의 나는 어제의 나보다 더 좋은 코드를 작성할 수 있게 되었다. 앞으로도 이런 고민들을 끊임없이 하면서 계속 성장하는 개발자가 되고 싶다.
### 내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?
- [x] chat 기능
- [x] 이미지 업로드 기능 구현
- [x] chat에서 필요한 다른 기능 구현
- [x] refresh token 기능 구현(새로운 access token 발급 받기)
- [x] 추가적으로 구현할 기능 찾기(고민 + 회의)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.