🌠 "Pixstar"은 이미지를 통해 일상을 공유하는 SNS 서비스입니다.
📌 이미지와 간단한 게시글을 공유함으로써 다른 사람과 일상을 공유할 수 있습니다.
❤️ 마음에 드는 게시글은 좋아요를 눌러 마음의 표시를 할 수 있습니다.
✏️ 댓글을 통해 여러 사람과 게시글에 대해 소통할 수 있습니다.
[목차]
- 이미지 처리 학습을 위한 프로젝트 구상
- 사용자들 간의 사진과 짧은 텍스트를 활용한 소통을 위한 공간을 만드는 것을 목적으로 한 SNS 서비스
- 사용자 관련 기능
- 회원가입, 로그인, 로그아웃, 회원탈퇴, 회원정보수정
- 게시물 관련 기능
- 텍스트와 이미지가 삽입이 가능한 게시물 작성, 조회, 수정, 삭제
- 좋아요와 게시글 정렬 및 검색 가능
- 댓글 관련 기능
- 게시글 하단에 게시글을 조회한 사람들의 댓글 작성, 조회, 수정 삭제
- 대댓글 작성 가능
2023.08.18 ~ 20223.09.05
이동섭 | 이지수 | 맹지연 | 김영조 |
---|---|---|---|
@tosecfromback | @LJS0000 | @M-JiYeon | @KimYeongJo |
프로젝트리더 User App 구현 발표 준비 |
게시글 검색 기능 구현 FrontEnd 예외처리 및 리팩토링 |
댓글 및 대댓글 기능 구현 README 작성 API명세 작성 |
게시글 기능 구현 파일 업로드 기능 구현 발표자료 준비 |
- Python 3.11
- Django 4.2.4
- Django REST framework 3.14
- djangro-rest-framework-simplejwt(Simple JWT) 5.2.2
- python-dotenv 1.0.0
- django-cors-headers 4.2.0
- drf-spectacular 0.26.4
- PostgreSQL 14.9
- AWS Lighsail
- Ubuntu 22.04 LTS
- AWS S3 Bucket
- 23.09.05 기준 NGNXI 및 Https 적용 진행 중
Pixstar
├─ .gitignore
├─ README.md
├─ post
│ ├─ __init__.py
│ ├─ migrations
│ │ ├─ 0001_initial.py
│ │ └─ __init__.py
│ ├─ models.py
│ ├─ serializers.py
│ ├─ storage.py
│ ├─ urls.py
│ └─ views.py
│ ├─ urls.py
├─ user
│ ├─ __init__.py
│ ├─ authentication.py
│ ├─ migrations
│ │ ├─ 0001_initial.py
│ │ └─ __init__.py
│ ├─ models.py
│ ├─ serializers.py
│ ├─ urls.py
│ └─ views.py
├─ requirements.txt
└─ README.md
👨🏻💻 김영조
협업 및 브랜치 전략을 위한 깃허브 사용법을 더 익혀야한다고 느꼈습니다.
저는 게시글 CRUD, 이미지 관련 기능을 담당하였는데, 다중 이미지 처리도 처음이고, AWS S3도 처음 이용하다보니 매우 재미있었습니다. 그리고 클라이언트에 보내는 데이터를 좀 더 고려를 해야겠다는 생각을 했습니다.
팀 프로젝트를 진행하면서 팀원분들이 사용한 코드와 툴을 보고 배우며, 다양한 경험을 접할 수 있는 좋은 기회였습니다.
👩🏻💻 맹지연
프로젝트를 진행하면서 협업을 할 때 각자 맡은 기능을 구현하면서 소통의 중요성에 대해 깨달았습니다.
소통없이 구현을 진행하다보면 내가 작업한 것들이 이전의 것들로 돌아가거나 동작이 하지 않는 경우가 있었는데 서로 어떻게 코드를 작성하였는지 공유하면서 해결하는 과정을 배웠습니다.
그리고 다같이 모르는 부분과 에러를 공유하고, 다른 팀원들이 구현한 코드를 보면서 모르던 지식을 알게 되어 좋았습니다.
👨🏻💻 이동섭
프로그래밍 팀프로젝트를 처음 진행하게되면서 협엽과 관련된 툴에 대해서 좀 더 공부해야 한다는 점과 개발환경에 있어 버전관리 툴의 중요성에 대해서 다시 한 번 생각하게 되는 점 등 다양한 한 생각이 들었지만 그 중 기능들 중 개발과정에 있어서 다른 기능들에 영향을 줄 수 있는 것을 구현하는 것에 대한 우선도를 생각해 봐야한다는 점이 인상이 깊게 남았습니다.
저는 회원가입과 로그인에 관한 기능을 구현했는데 해당 기능을 구현이 조금 더 빨리 구현되었다면 다른 팀원분들이 구현해주신 기능과 함께 테스트를 좀 더 빨리 진행하면서 기능들을 합쳤을 때 발생하는 에러를 더 빨리 발견하게 되고 더 높은 완성도를 가져갈 수 있지 않았을까라는 생각이 드는 과정이 있었습니다. 프로젝트가 끝나가는 시점에서 팀프로젝트 기간 중 작성한 제 개인의 작업일지를 다시 한 번 읽어보고 프로젝트 기간을 되집어 봤을 때 다음부터는 기능들간의 상호작용을 유기적으로 생각하면서 각 기능들 중 우선적으로 구현 될 기능을 생각해봐야 겠다는 점이 제일 큰 소감입니다.
👩🏻💻 이지수
오랜만에 팀프로젝트 작업을 하면서 즐거웠습니다. 협업은 개인 작업과 비교해 기획이나 구현 단계에서 더 많은 리소스가 필요했습니다. 하지만 프로젝트를 발전시키고 문제를 해결하는 과정에서 그 리소스 이상의 가치를 창출할 수 있다는 것을 이번 프로젝트에서 느꼈습니다. 문제 해결을 위해 다같이 고민하고, 서로의 코드를 검토하는 과정에 많은 실력 향상이 있었습니다. 특히 다른 팀원들과 함께 작업을 하고 있다는 것 자체가 큰 힘이 됐습니다.
코드를 작성할 때는 SRP 원칙과 함께 추상화와 모듈화를 생각했습니다. 기본적이지만 중요한 1)인증인가 처리의 보안성을 높이는 방법, 2)이미지 파일을 다룰 때 클라이언트와 서버의 역할, 3)비즈니스로직을 효율적으로 구현하기 위한 코드의 구성, 4)RESTful한 API 작성 등을 고민하였습니다.
S3 버킷에 이미지를 저장하고 최적화하는 주체에 대해 고민이 가장 기억에 남습니다. 처음에는 레이턴시와 리소스 사용을 고려해 클라이언트가 적합하지 않나 생각을 했었는데 클라이언트의 컴퓨팅 성능에 대한 불확실성에 기댈 수 없다는 점. 더불어 분산 서버를 이용하면 성능 개선이 가능하다는 점 등을 이유로 이미지 처리의 주체는 서버가 더 적합하겠다고 생각을 바꾸는 계기가 되었습니다. 아직 정답에 가깝지 않고, 기초적인 고민일지라도 이런 식으로 문제를 발견하고 해결 방법을 생각하는 과정이 성장할 수 있는 기회가 되었습니다.