파이널 프로젝트
4주차 프로젝트에서는 첫 프로젝트 팀원들과 다시한번 함께 진행하게 되었고
이번에는 백엔드 업무를 맡아 개발하게 되었다 개발하면서 사용한 라이브러리와
이걸통해 개발하면서 느낀점을 적어보도록 하겟다
우리팀은 개발을 시작하기전에 새로운 스택인 typescript를 사용하기로 미리 정하였고 엔티티에 대한 모든 SQL 구조를 자동으로 생성해주고. MySQL / MariaDB / Postgres / SQLite / Microsoft SQL Server / Oracle / sql.js / MongoDB와 호환이된다. 코드를 다시 쓸 필요 없이 데이터베이스 간에 전환할 수 있습니다.
처음프로젝트 시작당시 어떤 DB를 사용하게될지 정해지지않았을때 일단 typescript를 지원하는 typeorm을 사용하기로 정하였다
사실상 코스 기간 중에 배우지 않은 첫 라이브러리이고 이것을 사용하기위해 유튜브며 공식문서를 엄청나게 들여다 보게되었다 시간은 걸렷지만 데이터베이스 구조를 만들었다는 것에대해 매우기뻣고 역시나 문제 하나가 해결되느 우다다다 모든 고민들이 해결되었다.
서버에서유저들의 이미지 파일이나 게시물의 썸네일 들을 어디에 저장해야할지 고민이 많았다 DB에 저장해야할까? 아니면 서버에 저장해야할까? DB에 사진을 저장하는것은 부하를 많이 준다는 글을 보았고 이미지를 서버에 저장한뒤에 DB에는 이미지경로를 저장하여 해결하였다.
배포가 솔직히 너무 짜증낫다 성격상 나는 무언가 잘못되거나 내가원하는대로 작동하지 않으면 이걸 해결할때까지 다른일에 집중을 잘못한다. 문제는 HTTPS 배포를 하면서 나타났다 아무리 인터넷 검색을 하고 따라해보아도 503 에러 502 에러에 마주하고 코드스테이츠의 가이드라인을 보아도 강의 자료가 지금 aws랑 다르다 인터넷에 있는 많은자료도 같았다 물론 지금이야 한번성공해보았고 바뀐 사이트 형식이여도 별로 다를게 없지만 처음사용해보는 입장에서는 이는 매우짜증을 유발했다 따라 하려해도 순서도 달라 형식도 다르니 이건뭐 어디서 잘못한건지 내가 뭘잘못햇는지 이부분은 왜체크해야 하는지 모르니 알길이 없었다 결국 redirection 문제였지만 HTTPS 443 포트로 하라고 되어있엇는데 HTTP 443 으로 하니까 되더라 다시 생각해도 화나는 순간 만든 로드밸런서 ec2 만 50개가 넘는거같다 불필요한 시간을 너무 쏟아 부었다. 다시 생각하니 너무 두서없이 적었다.
보안 부분에 있어서 팀원간의 갈등이 조금 있었다. 일단 토큰을 사용한이유는 유저의 인증정보를 서버나 세션에 담아두지 않기때문에 유저들이 로그인이 되어있는지 아닌지 신경쓰지않고 서버를 구현하기 편리했다. 아무리 작은프로젝트라도 보안이 제대로 되어야 다른기능들도 유의미 하다고 생각하였고 실제로 토큰을 구현하기 위해 가장 많은 시간을 쏟았다
이부분에서 팀원간의 갈등이있었는데 같은 백엔드를 맡은 팀원이 개발이 너무 늦어진다며 다른 새로운 기능을 먼저 개발하고 그다음 남은시간 에 고치자 했지만 나는 우리가 이미 베어미니멈으로 정해둔 토큰이 완벽하지않은데 다른기능을 개발하는건 아닌것같다 이것 먼저 해결하고싶다고 하엿다. 결국 토큰을 완성하고 새로운기능은 완성하지 못햇다. 배운점이 있다면 그래도 같은 팀으로써 한방향을 바라보고 함께 개발을 했어야 햇지만 그러지 못한것 같다 그래도 좋은 경험이였다 다음 팀프로젝트가 있다면 한방향을 보고 갈수있도록 노력해야 겟다.
프로젝트는 나에게 있어서는 책을 보며 공부하는것보다 더욱더 빠르게 성장할수있는 기회엿다 경험을 통해 배우는게 많았다.
팀은 한방향을 바라보고 함께 나아가야 한다.