BE
김한솔, 박상욱, 송철진 / FE
강지민, 심동섭, 정효원, 조은혜회의록을 뒤늦게 작성했던 1차 프로젝트 때에 비해 2차 프로젝트는 첫날부터 꾸준히 회의록을 작성해서 프론트와 백엔드, 백엔드와 백엔드, 프론트와 프론트 간 소통이 쉬웠다.
다양한 협업툴로 소통에 적극적으로 참여했다
초반에 기획에 공을 들여 꼼꼼히 파악했다. 데일리 스탠드업 미팅
때 노션에 질문하기 코너를 잘 활용해서 필요한 기능, 명칭, 단위를 수시로 점검하고 재확인했다. 스크린 샷, 그림판 활용 등
포기하지 않았다. AWS S3로 이미지 업로드 기능 구현하기가 어려워서 정 안되면 대안책으로 1차프로젝트 때처럼 img.bb에 올려서 링크 가져오는 방식을 고려했었지만, '이해한 부분, 실행했을 때 현상' 등 팀원과 blocker를 공유했고 여러 도움을 받아 결국 방법을 찾아냈다.
선택과 집중으로 생긴 자투리 시간에 프로젝트 완성도를 높이기 위해 서로 도왔다. API 구현과 유닛테스트 라는 두마리 토끼를 모두 잡을 수 있으면 물론 좋았겠지만 시간이 부족했다. 가장 중요한 API 구현만 하기로 선택하고 집중했고 남은 자투리 시간에는 팀원의 막힌 부분에 대해 방안을 찾아내기도 했고 다른 API를 대신 맡아 구현하기도 했다.
🎈 이슈1. (카카오로그인 관련) 50회 가량 테스트했는데 카카오 서버로부터 받은 social_id가 DB테이블에 insert될 때도 있고 안될 때도 있었다.
👉 코드 동작방식에 대한 설명을 듣고 조건문에 await
가 들어가면 어떨까? 라고 제안하여 실행했더니 잘 동작했다.
🎈 이슈2. D-1, 팀원 모두 밤샘 작업으로 지친 상황, 아직 follow 등록/해제 API이 구현되지 않았다는 것을 뒤늦게 알아차렸을 때
👉 코드카타의 Driver와 Navigator 처럼 Navi역할을 맡아 그 API를 구현할 수 있었다.
2차프로젝트 기간에도 커리큘럼 상 학습하고 활용할 몇몇이 있었는데 모두 적용했으면 좋았겠지만 기본 API구현과 프론트엔드-백엔드 간 합을 맞춰보는데에 시간을 더 쏟아 몇몇 기술들을 100% 활용하진 못한 점이 아쉽다. 유닛테스트, docker로 배포하기 등 추후 시간을 내서 코드를 리팩토링하고 꼭 다시 해볼 예정이다.
내가 구현하고 postman으로 테스트까지 마친 API 중 하나(상품 정보 Update
)가 최종 기획에 포함되지 않아 아쉬운 점도 있었다. 모든 것이 처음 잘 계획한 그대로 가면 좋겠지만 어찌보면 당연하게도 하나의 서비스가 완성되기 까지 모두에게 합리적인 방향으로 일이 진행될 수 밖에 없을 것이다.
AWS S3를 활용한 상품정보(이미지) 등록 API, 상점 프로필 이미지 변경 API를 구현하는 것은 학원에서 교육받고 읽기 쉽게 정제된 학습자료를 넘어서 직접 자료를 검색하고 방대한 데이터에서 원하는 정보를 뽑아 활용하기 위한 나의 첫 과제였다. 처리 속도 관점에서는 비교적 빨리 구현할 수 있는 CRUD API를 먼저 끝내놓고, S3 이미지 업로드 과정을 탐색했던 내 방식이 좋았을지도 모른다. 하지만 중요도 관점에서 다른 팀원들은 카카오로그인, 토스 결제 등 외부 API라는 핵심 기술을 스프린트 초기부터 중점적으로 탐색했던 것과 비교했을 때 아쉬운 자세였다. 앞으로도 제한된 기간에 기존 기술과 새로운 기술을 활용해야하는 과업이 주어졌을 때, 주어진 시간을 중요도, 난이도, 긴급도에 따라 어떻게 분배해서 작업을 수행할지 다시 생각해볼 좋은 계기가 된 거 같다.
이슈: 프론트엔드의 도움을 받아 S3 버킷으로 파일을 전송했을 때 다음과 같은 로그를 확인했다.
404 Error, PATCH, /users
, B/E: 400 Error, GET, /users
status code만 보고서 리누스 토발즈가 와도 무슨 문제인지 알 수 없다
라는 멘토님의 답변을 들었고, 그럼 프론트엔드와 백엔드 간 통신 중 발생할 수 있는 에러를 제외하고 오직 파일 업로드에 대한 에러만 확인하려면 어떻게 해야할까? 즉, 백엔드 코드로만 파일 업로드 여부를 확인하려면 어떻게 해야하는가?해결: POSTMAN으로 formData file 전송할 수 있다!
참조 링크: https://tape22.tistory.com/9
TypeError: this.client.send is not a function
참조 링크: https://tape22.tistory.com/9
message : access denied
{
"Version": "2012-10-17",
"Statement": [
{ "Sid": "PublicListGet",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::버킷이름",
"arn:aws:s3:::버킷이름/\*"
]
}
]
}