Everyday Dev System

너의 의견은 : 투표 게시판, KPT 회고 본문

내배캠 주요 학습/매일 공부

너의 의견은 : 투표 게시판, KPT 회고

chaeyoung- 2023. 7. 24. 17:19

 

프로젝트 시연 영상

 

기획 및 진행 사항 및 결과 참조:

https://www.notion.so/2-c446b07351924a9d8fc2cb6522c76421?pvs=40 

 

2조 (이름좀 바꿔조)

S.A 내용

www.notion.so

 

PPT 자료:

 

 

 

1. 한 주의 흐름


1) 한 일

  • 시연 영상 : https://www.youtube.com/watch?v=jh5lQzd4veA 
  • 레파지토리 : https://github.com/Chaeyounglim/yourOpinion
  • 프로젝트 명 : Your Opinion
  • 필수 작업 (축약)
    • 로그인 및 로그아웃
    • 회원가입
    • 게시글 CRUD
    • 댓글 CRUD
    • 프로필 조회 및 수정
  • 추가 작업 (축약)
    • 프론트엔드 구현
    • 게시글에 따른 투표 기능
    • 대댓글 CRUD
    • 회원 관리자 페이지 
    • 게시글 관리자 페이지 
    • 댓글 관리자 페이지

 

 

2) 느낀 점들

  • 임채영 - 기술적인 부분의 느낀 점은 Thymeleaf 템플릿 활용법과 CSS, JS 부분의 개념이 명확하게 정립되었습니다. 매번 프로젝트를 통해 협업의 중요성과 즐거움을 배우게 되었습니다. 기술적인 부분에서 JPA를 더욱 심화적으로 공부해야겠다고 깨달았습니다. 또한, @ElementCollection 어노테이션을 처음 알게 되어 활용하는 방법을 더욱 찾아볼 필요가 있다고 느꼈습니다.
  • 이민우 - 저번 프로젝트 때 보다 스프링 시큐리티 기능에 대해 좀더 알게 된 것 같고, 프로젝트 주제가 엔티티 관계를 많이 사용하는 주제다 보니  엔티티 관계의 중요성에 대해 한번더 느끼는 경험이였던 것 같다고 합니다.
  • 모성민 - 프로필 및 비밀번호 수정 페이지를 개발할 때 사용자의 정보 보호에 신경 쓰는 중요성을 느끼게 되었다고 합니다. 그리고 팀원들과의 협업 능력과 소통의 중요성을 깨닫게 되었고 팀원들이 자주 회의를 하며 어느곳이 되었고 보완해야하는지  서로간의 어려운점을 소통을 통해 해결해 나가는점에 대해서 많은것을 배웠다고 합니다. 
  • 소원 - 저는 이번 프로젝트를 통해서 인증, 인가에 대해서 명확하게 이해할 수있었고 좋아요 기능을 활용해서 투표 기능을 만들어보았는데요, 예전에는 두루뭉술하게 코드를 이해했다면 이제는 내가 짠 코드에 대해 설명할 수 있는 실력을 키울 수 있어서 이로웠습니다. 그리고 저희 팀 소통이 환상적인 팀이었는데요, 열정넘치는 팀원 분들을 통해 코드에 진심을 다하는 것이 어떤 것인지 배울 수 있었습니다.

 

2.  Keep

  • 하루 2번, 오전, 오후 나눠 규칙적으로 팀원들과의 원활한 회의를 진행하였습니다.
  • Github을 통한 형상관리에 있어서 공유를 잘 해주셔서 충돌이 상대적으로 적었습니다.
  • 변경된 부분 혹은 수정을 원하는 부분에 있어서 피드백을 주셔서 완성도가 향상되었습니다.
  • 서로 질문하고, 격려하고, 적극적으로 피드백을 시도 하였습니다.
  • 각 개인이 맡은 바를 모두 책임감있게 잘 수행하였습니다.
  • 자신의 역할 외에도 서로 도와주면서 완성하였습니다.
  • 진행상황 및 막히는 부분 상황 공유를 원활히 하였습니다.
  • 상대방에 대한 존중이 잘 이루어졌습니다.

 

 

3. Problem

  • 최근 3번 사용된 비밀번호와 겹칠 경우 수정을 막는 로직을 구현하는 것이 쉽지 않았고 보안 상의 취약점을 최대한 배제하면서 기능을 구현해야 하는 점
  • 대댓글 UI에 표현 부분에 노드의 id를 실제 데이터 id로 주어서 특정 노드를 찾을 수 있게 하거 거나 조건을 통해 노드를 hide&show 하는 것, 노드의 id를 통해서 특정 자식 노드를 모두 찾는 등의 기능들을 찾아서 구현했는데 어느정도 봐줄만한 UI를 만든것 같습니다.
  • Entity관계에서 지연 로딩과 CASCADE 속성 부분에서 회원, 게시글, 댓글 삭제 할 때 삭제가 원활히 되지 않아서 어려움을 겪었습니다.
  • 투표 기능을 구현할 때 OpinionA,B로 테이블을 나누고 엔티티의 관계 설정을 이해하고 코드로 구현하는 과정이 어려웠습니다. 그럼에도 직접 구현하고 협업을 하며 익숙해질 수 있었습니다. 다른 분들이 구현하신 코드를 복습하며 저의 코드로 만들 수 있도록 더욱 복습과 연습을 해봐야겠습니다.

 

4. Try

  1. SpringBoot와 html, css, js 에 대해서 아직 부족함을 느끼기 때문에 반복적인 학습을 할 예정입니다.
  2. 토큰을 사용하여 사용자 인증을 하는 부분이 미숙하여 회원가입과 로그인 구현을 복습할 계획입니다.
  3. 로그아웃을 처리하는 방법으로 쿠키값을 제거하였습니다. 그렇지만, 해당 쿠키값이 외부로 유출이 되어 이를 통해 토큰 만료 시간 이전에 로그인을 시도 할 경우 로그인이 수행되는 문제가 있습니다. 하여, 해당 부분을 보안적인 측면에서 어떻게 처리하면 좋을지 고려해 볼 필요가 있습니다.
  4. 댓글 수정 및 삭제 버튼을 프론트엔드와 연동하여 기능을 구현할 예정입니다.
  5. 프론트엔드에서 프로필 정보를 수정하고 저장할 수 있도록 백엔드에 요청해야하는 부분을 코드로 직접 구현하는 것이 어려웠는데 팀원이 작성하신 코드를 복습하고 이해해보며 더 좋은 코드가 있다면 무엇이 있을지 고민해보는 시간을 가질 생각입니다.