codestates / codestates/Reciper-server

[✍️ Dev Log] 정송이 / 2021-05-14

Open
#47 1 comment 0 reactions 1 assignee Claimed by @lovelysi0113 View on GitHub
@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
Dominant language
TypeScript
Stars
9
Forks
3
PR merge metrics
No merged PRs in 30d

Description

### 오늘은 어떻게 프로젝트에 기여했나요?

- #42 Recruits 테이블에 writer, commentCount 필드 추가
- Users 테이블과 Recruits 테이블을 1:N 관계로 연결함
- `post /recruitBoard` 요청 처리 로직 수정
- `delete /recruitBoard/:board_id` 요청 처리 로직 수정
- #3 데이터베이스 리펙토링 - 필드명을 snake case에서 camel case로 변경(Naming Convention 통일)
- Users, Recruits, Recruit_comments 테이블 리펙토링
- 테이블을 사용하는 모든 요청 처리 로직 수정
- Users: `get /profile`, `post /profile`
- Recruits: `get /recruitList`, `get /recruitBoard/:board_id`, `post /recruitBoard`,
`post /recruitBoard/:board_id`, `post /recruitBoardComment/:board_id`,
`delete /recruitBoardComment/:board_id/:comment_id`
- Recruit_comments: `post /recruitBoardComment/:board_id`,
`delete /recruitBoardComment/:board_id/:comment_id`
- database 초기화 작업 진행 및 테이블 & 필드 점검 및 테스트
- 오늘 작업한 내용을 스키마 디자인, API 문서에 업데이트 진행
- profile, recruits 관련 요청 로직 점검 및 수정
- undefined 에러 수정
- JSON 에러 수정
- req.body에 데이터가 없는 경우에 대한 분기 처리 추가
- 이외 테스트하며 생기는 다양한 에러에 대해 코드 수정&보완
- 1:N 관계로 연결되어 있는 테이블 정보 수정(관계 올바르게 연결해주기)
- User - Recruit
- Recruits - Recruit_comments
- #48 image 정보 추가 + image 데이터를 다루는 로직 수정
- `imageUploader` 로직을 controller에서 middleware로 이동
- request name을 `profileImageName`에서 `uploadImageName`로 변경
- image data를 다루는 관련 요청 로직 수정
- 이미지 저장 action: `get /recruitBoard/:board_id`, `post /recruitBoardComment/:board_id`
- 이미지 삭제 action: `post /profile`, `delete /recruitBoard/:board_id`

### 오늘의 프로젝트에서 힘든 점은 무엇인가요?

- 클라이언트쪽에서 데이터 저장 요청을 일부 필드에 undefined인 상태로 보내는 경우가 있었다.
그런데 요청으로 받은 데이터를 처리하는 과정에서 undefined를 고려하지 않았기에 정말 많고 다양한 에러를 만나게 되었다.
특히 배열이나 JSON으로 처리하는 데이터의 경우에는 에러가 무조건 발생했다.
(undefined에서는 배열의 메서드나 JSON의 메서드를 사용할 수 없기 때문에 일어나는 에러)
그래서 각 데이터가 존재할 때만(undefined가 아닐때에만) 데이터 처리를 할 수 있도록 일일히 분기처리를 해주어야 했다.
```js
if (career) {
foundUser.career = JSON.stringify(career);
}
```
앞으로는 이렇게 분기처리/예외처리를 해줘야하는 여러가지 상황을 고려하며 충분히 고민한 후에 로직을 작성하는 습관을 가져야겠다.
그리고 로직을 완성했다고 끝나는게 아니라 계속 예기치 못한 에러가 언제든 발생할 수 있다는 열린 마음과 에러를 만나자마자 원인을 빠르게 파악하고 코드를 바로 수정할 수 있는 민첩함을 가져야한다는 것도 깨달았다.
- First Project와 달리 이번 프로젝트에서는 다루는 데이터가 많아지다보니 API 문서를 작성하는 것도 굉장히 까다로워졌다.
특히 example 작성하는 부분... data format을 틀리면 안된다는 부담감에 더 까다롭게 느껴진다.
아직은 개발 단계라 처음 계획했던 data format을 계속 유지하는 게 아니라 클라이언트와 이야기해보며 계속 data format을 변경하게 된다.
처음에 미처 생각하지 못했던 데이터를 추가하거나 효율성을 위해 format을 수정&보완하는 것인데
이 주기가 굉장히 빨라서 바로바로 API 문서에 적용하기 조금 힘들어졌다. 코드를 작성하다가 바로 API 문서를 수정하지 못하니..
그래도 First Project와 이번 Final Project를 진행하며 API 문서가 엄청엄청엄청 중요하다는 것을 깨달았기 때문에.. 힘들지만 최대한 빠르게 API 문서를 갱신할 수 있도록 노력해야겠다.
- typeORM에서 relation을 잘못 설정하여 사용하고 있었다. (해결하고 Error Handling으로 작성 #50)

### 내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?

- [x] 토요일(5/15)은 쉬는날!
- [x] 그동안의 피곤이 누적되서 그런지 오늘 컨디션이 대체로 저조했다.. 내일 쉬면서 컨디션 회복해야겠다
- [x] 만약 시간되면 제일 까다로운 API 문서 보완을 할 예정(example 위주)
- [x] 일요일(5/16)부터 으샤으샤하며 프로젝트 시작!
- [x] profile, recruit 관련 요청 로직 테스트 및 수정&보완
- [x] #18 #34 client와 연결하기
- [x] 지금까지 구현한 기능을 포함하여 배포하기
- [x] 스키마 디자인, API 문서 보완하기
- [x] project 요청 로직 구현 시작

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.