# First Project 회고록
첫 번째 프로젝트의 시작 그리고 끝
# Phovis의 시작
프로젝트 팀원들과의 브래인 스토밍 중에 사진에 출사장소에 대한 고민을 가지는 사람들이 있다는 아이디어를 바탕으로 시작하게 되었다.
기본적으로 제공하는 기능입니다.
출사장소 글 작성
출사장소에 사용자가 사진으로 덧글 남기기
출사장소 글에 좋아요, 북마크 남기기
마이페이지에서 모아보기
기본적인 sns의 기능을 갖출수 있도록 구현하였다.
# stack
개발 환경 - typescript, github
프론트 앤드 - react, redux, next
백엔드 - express, typeorm
# 구현에 대한 자세한 내용
- 기본적인 글작성의 CRUD 기능, 사진류 작성의 CRUD 등을 구현하였다.
우선적으로 사진을 업로드 하기 위해서는 사진을 DB에 직접 저장하는 것이 아닌,
AWS bucket을 이용하여서 사진을 업로드하고, 파일에 접근할 수 있도록
권한 및 CORS 세팅을해준 뒤에 해당 버킷 URL을 받아와 DB에 저장할 수 있도록 하였다.
이과정에서
AWS-SDK
를 이용하였다.
typeORM
을 통하여 앤티티를 세팅하는 작업을 진행하였었고, 작업을 위한 SEED data를 삽입하는 과정을 진행하였다.
팀원이 만들어 둔 db schema 구조를 entity 마이그레이션 작업을 진행하고,
이 과정에서 Forein key와 primary key를 연결하고 관계를 형성하는 과정을 진행하였다.
SEED 데이터를 쉽게 생성할 수있는 기능을 sequlize정도로 지원해 주지 않는 typeORM 특성상 직접 SEED 데이터를 삽입하는 과정을 별도로 설계하였다.
- API 문서화 작업
Post Man
을 통하여 API 문서를 작성하였다.
API 문서를 만들면서 직접 테스트 환경도 조성할 수 있는 장점이 있는 Post man을 이용하였고, 덕분에 문서작업의 수고를 줄일 수 있었다.
API 문서 바로가기 (opens new window) 여기 링크를 통해 API 문서를 확인할 수 있다.
# 아쉬운 내용
- 배포단 참여 부족
배포 부분을 AWS로 진행하였는데 아무래도 IAM 계정을 이용하다 보니 S3 버킷 이외의 부분에서는 비용이 발생할 불안요소가 있어서 직접 참여하지 못한 것이 아쉽다.
- 회원정보 API 미참여
회원가입 로그인 등 회원정보를 컨트롤하는 부분에 대한 구현을 경험해 보지 못한 부분에 아쉬움이 남는다.
- 코드 스타일링
코드 재사용성에 대한 고려가 부족한 코드 구현 코드 구현에 있어 함수 지향적인 코드로 구성이 되지 못한 것이 가장 큰 아쉬움으로 남는다.
쿼리작성을 비효율적으로 이어 나가야 했던 부분이 가장 큰 아쉬움인 것 같다.
- typescript 활용도
처음에는 any를 쓰지 않고 작성하는 것을 목표로 잘 작성하였지만, 마지막 즈음에는 시간에 쫒기듣이 코드를 작성하여 레거시한 코드를 남기고 말았다.ㅠ
- Error 핸들링
서버단을 처음 경험하다 보니 Error 핸들링에 대한 경험이 부족하다는 것을 느끼게 되었고, 에러를 핸들링하는다는 개념을 좀 가볍게 생각했던 것 같다고 느껴졌다. 시간을 가지고 공부해야 될 부분이라고 판단 되었다.
# 다음 프로젝트에 대한 희망
다음은 4주동안 프로젝트를 진행하는 만큼 그 안에서 배울 수 있는 것들이 많다는 것을 기대할 수 있을 것이다.
타입 스크립트에 대한 강의를 추가적으로 하나 수강해보고 싶고 조금더 로직에 대한 고민을 많이 하면서 시간을 코드를 작성하는 시간과 고민하는 시간을 1 : 1로 가져가야 나중에 레거시한 코드를 남기지 않을 수 있을 것이라는 교훈을 얻었다.
← PHP Last Project 회고록 →