ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [스프링 팀프로젝트] IPv4 KPT
    스파르타코딩클럽/스프링 팀 프로젝트 - Back Office 2023. 12. 11. 15:05
     

    IPv4 | Built with Notion

    Built with Notion, the all-in-one connected workspace with publishing capabilities.

    teamsparta.notion.site

    1. 프로젝트 개요

    프로젝트 명 : X보다 더 나은 Y

     

    프로젝트 설명 : X와 Threads향을 조금씩 가미한 SNS 백엔드 서버 API 

     

    필수구현

    사용자 인증  (회원가입, 로그인 및 로그아웃)

    프로필관리 (프로필 수정, 비밀번호 수정)

    게시글 CRUD

     

    추가구현

    소셜로그인 (카카오, 네이버)

    백오피스 (admin 권한)

    좋아요

    팔로우

     

    명예의전당

    프로필 사진 업로드

    게시물 멀티미디어 지원 기능

     

     

    2.  Keep  

    1. 소통을 중요시하며 자리 비움이나 문제가 생기면 빠르게 공유하겠습니다.

      :  항상 이슈가 생길 경우 적극적으로 참여하는 자세를 가졌습니다.

      :  PR에 리뷰 승인 2인 이상을 강제로 걸어두었기 때문에

         강제로? 소통을 열심히 하는 긍정적인 현상이 생겼습니다.

     

    2. 대화를 할 때는 상호 존중하며 얘기하겠습니다.

     

    3. 부끄러워도 물어보겠습니다.

     

    4. 친해지기

     

     

    3. Problem

    1. 소셜 로그인 에러 핸들러를 커스텀했는데 커스텀한 핸들러로 에러처리가 안됨.

      해당 핸들러가 처리하지 못하는 예외로 발생시킴

     

    2. 트랜잭션이 실행결과를 롤백할때 외부 서비스인 S3의 작업은 롤백되지 않아서 문제가 된다.

      외부 서비스는 트랜잭션으로 관리할 수 없기 때문에

     

    3. 일반적인 게시글 - 댓글구조가 아닌  게시글 - 게시글 - 게시글처럼 Tree구조와 비슷한 형색이라

     단순히 삭제하면 계층구조가 끊어진다. 

     

    4. 처음에 팔로우 엔티티를 복합키를 사용해서 만들었으나, 후에 해당 키를 활용하는 로직을 충분히

      구현하지 못한것이 아쉽다.   이번 프로젝트를 하며 DB에 대한 이해도가 부족함을 느꼈다.  

     

     

    4. Try

    1. 핸들러가 잡아야하는 로직에서 핸들러가 잡을 수 있는 예외를 발생시킴

     

    2. DB와 S3의 데이터 동기화가 즉시 이루어질 필요가 없기 때문에  배치 프로그램을 만들어서 일시적으로 

      해결하거나,  DB에 로그를 남겨서 탐색 범위를 줄여서 해결할 수 있다.

     

    3. 처음에는 연관관계를 끊어버리고 삭제하는 방식으로 구현했다가

      Post에 isDeleted 옵션을 추가해 자식(답글)이 있다면 상태값만 바꿔주고,

      자식(답글)이 없다면 부모의 부모까지 반복적으로 조회하면서 삭제상태인 부모들을 모두 삭제해주는 방식으로 구현 

     

    4. 데이터베이스가 중요하다고 생각치 못해서 기초적인 수준만 공부하였는데 더 심화하여 학습할 필요성을 느꼈고,  이후에 학습할 생각입니다. 

     

     

     

    5. 끝맺음

     

    박상신 

    잘하시는 분들과 함께 조편성을 받고 처음엔 상당히 당황스러웠습니다.

    내가 여기에 있는게 맞나라는 생각이 많이 들었고,  욕먹지 않기 위해 밤 늦게까지 공부하였습니다.

    팀프로젝트를 마치고 돌아봤을때 엉성하긴 하지만 이전 프로젝트에서 결심했던

    자전거 만들기는 어느정도 성공적이라고 생각합니다.

    좋은 팀원들을 만나서 개발 외적으로 마인드셋이 크게 성장했던 계기가 되었습니다. 

     

    김민중

    같은 기능을 구현하면서도 어떤 기술을 사용하냐에 따라  구현 난이도가 어려워질 수도 있고 쉬워질 수도 있다는 것을 경험했습니다.
    단순 코드적인 부분 뿐만아니라 문제에 대해 잘 맞는 기술을 사용하는 것도 중요하다고 느꼈습니다.
    다음 프로젝트 때는, 기능과 그에 필요한 기술이나 환경까지 고려하여 프로젝트의 완성도를 높이겠습니다!

    김진훈

    팀원분들과 Threads의 기능을 하나씩 확인하면서 기획하는게 재밌었습니다~
    같은 도메인을 함께 개발하는게 처음이었는데, 병합할 때 충돌은 많이 났지만..! 저와 다른 생각을 바로 바로 알 수 있어서 재밌었습니다~
    테스트 코드를 작성하면서 개발하고 싶었는데 일정과 게으름으로 개발하지 못했던걸 반성합니다 ㅠㅠ..
    다음 프로젝트에서 더 발전된 모습으로 협업할 수 있도록 노력하겠습니다!

     

    이민주
    처음으로 자기참조 관계 엔티티를 다룰 수 있어서 어려웠지만 해결해가는 재미가 있었던 것 같다!
    다른 팀원들이 기술적으로 어려운 부분을 맡아주셔서 내가 맡은 역할은 최선을 다하려는 마음가짐으로 임했던것같고 팀원분들의 도움 덕분에 막힌부분도 해결할 수 있었다.
    다음 프로젝트 때는 이번프로젝트에서 배운 점들을 적용해 더 어려운 기능도 도전해보고싶다.

     

     

Designed by Tistory.