SPAOGAME | 1차 프로젝트 회고

김주현·2021년 12월 8일
0

[Django]

목록 보기
6/8
post-thumbnail

💡References
이 프로젝트는 스파오 사이트를 참고하여 학습목적으로 만들었습니다.
이 프로젝트에서 사용한 이미지는 MIDEOCK-미덕 , SARNO-사르노에서 허가를 받아 가져온 이미지입니다.

1. 프로젝트 소개

  • 팀원들 각자의 기술에 익숙해지는 것을 목표로 하여, 페이지 단위로 개발하였습니다.
  • 팀원들 수준별로 적절한 역할 분담과 애자일한 스크럼 방식의 미팅, 그리고 규칙적이고 능동적인 의사소통으로 프로젝트를 성공적으로 마무리하였습니다.
  • 별도의 기획과정 없이 짧은 기간 안에 기술을 습득하였으며, 기본 기능 구현에 집중하기 위해서 SPAO 사이트를 참고하였습니다.

2. 개발 기간 및 개발 인원

  • 개발 기간
    2021-10-05 ~ 2021-10-15 (공휴일 포함)
  • Front-End (3명)
    강성구, 김현진, 정경훈
  • Back-End (3명)
    김주현, 이기용, 송영록

3. 적용기술

  • Front-End : HTML5, CSS3, React, SASS, JSX
  • Back-End : Python, Django, MySQL, jwt, bcrypt, AWS RDS, AWS EC2
  • Common : Git, Github, Slack, Trello, Postman or Insomnia

4. 모델링 Diagram

5. 구현기능

내가 구현한 End-Point

  • 상품 상세페이지 후기 및 댓글 기능 구현
  • 메인페이지 검색 기능 구현

6. 기억에 남는 코드

with 명령어를 이용한 트랜젝션

코드 수정전에는 트랜젝션없이 pr을 업뎃하였는데 멘토분께서 객체를 생성하는 메서드에서는 트랜젝션이 필요하다 말씀하셔서 트랜젝션에 대해 공부하였습니다.

트랜젝션에 대해 알아본 결과,

트랜젝션은 간단히 말해 작업단위라고 할 수 있다.
여러개의 프로세스가 묶여져 마치 하나처럼 동작하는 방식이라 할 수 있다.
좀 더 개발적인 언어로 말하자면 데이터베이스를 저장하고 수정하는 여러 작업을 하나의 쿼리로 처리할 수 없기 때문에 여러개의 쿼리로 나눠서 실행해야 하는데, 그 결과의 원자성을 보장해주기 위해 동일한 DB connection 객체를 사용하는 기술이라 할 수 있다.
참고 사이트

제 소스코드에서는 어차피 메서드는 하나로 이루어져있어 트랜젝션을 할 필요가 없다는 생각이 들었지만, 이번에 트랜젝션을 공부하면서 알게 된 것은 메서드가 두개 이상 생성했을 때 트랜젝션을 구성하여 따로 묶어줘야 각 메서드 내에서 에러가 발생하더라도 독자적인 트랜젝션이기 때문에 데이터의 원자성이 유지되는구나 라는 것을 알게 되었습니다.

7. 소감

프로젝트 시작 전에는 내가 과연 여기서 1인분의 몫을 해낼 수 있을까 하는 걱정이 앞서서 위스타그램을 할 당시에도 코드한줄 제대로 해석하지 못해서 자신감이 많이 결여되어 있었지만 배우면서 성장하면 된다는 마인드컨트롤을 계속하면서 모르는 부분이 생기면 바로바로 물어보며 문제해결 소통을 하려고 노력하였다.

이번 프로젝트를 진행하면서 프론트와 백엔드간의 통신에 대해서도 감이 전혀 안왔었는데 프로젝트 시작전에 프론트분들과 데이터변수를 미리 맞추어보며 나중에 수정사항이 생기지 않도록 계속 소통해가려고 노력하였다. 하지만 내가 아무래도 프론트에 대한 지식이 부족하다보니 통신 중 오류가 발생했을 때 서로의 코드를 보고 대충이라도 이해할 수 있었으면 좀 더 원활한 소통을 할 수 있지 않았을까라는 생각이 들었다. 그리고 이번에 각자 기능맡은 부분에 대해서 서로 물어보는 시간을 갖지 못한채 pagination이 뭔지 Query Parameter는 뭔지 모르는 채로 넘어가서 많이 아쉬웠다.

마지막으로 첫 프로젝트를 끝내면서 느꼈던 점은 코드에 대한 두려움이 많이 없어졌다는 것이다. 갑작스런 오류 때문에 스트레스를 많이 받았지만 코드를 해결해나가고 동작이 구현되는 것에 대한 성취감은 이루말할 수 없을 정도로 좋았다. 최종발표날까지 마이그레이션을 여러번하면서 db를 계속 고쳐나가는 힘든 와중에도 화이팅넘치는 팀원들이 있었기에 무사히 프로젝트를 마칠 수 있었다는 생각이 들었다.
다음에는 통신할 때 어떻게 대화를 해야할지 고민해보고 내가 이번에 하지 못했던 기능구현을 맡아야겠다는 생각이 들었다.

0개의 댓글