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

개발 인생 : 개발자 커뮤니티 회고

chaeyoung- 2023. 7. 7. 16:17

KPT 회고 (notion.site)

 

 

1. 한 주의 흐름


1) 한 일

  • 시연 영상 : https://youtu.be/2LjzWP-4XJE
  • 프로젝트 명 : The Developer Life
  • 필수 작업
    • 로그인 및 로그아웃
    • 회원가입
    • 게시글 CRUD
    • 프로필 조회 및 수정
  • 추가 작업
    • 댓글 CRUD 기능
    • 프론트엔드 구현
    • 카테고리별 게시글 조회
    • '익명 게시글' 카테고리의 게시글의 작성자를 '익명'으로 표시

 

 

2) 느낀 점들

  • 임채영 - 기술적인 부분의 느낀 점은 Thymeleaf 템플릿 활용법과 CSS, JS 부분의 학습이 필요하다고 생각합니다. 회사에 입사하여 협업을 할 때 프론트엔드 개발자와 백엔드 개발자의 충돌을 각자의 입장에서 모두 겪은 것 같습니다. 해당 경험을 통해 서버 개발자도 프론트엔드의 학습이 필요하다는 것을 깨달았습니다. 해당 프로젝트를 진행함으로써 제가 아는 부분과 모르는 부분의 기준이 명확해져서 앞으로 공부하는데에 있어 많은 도움이 될 것 같습니다. 협업에 있어 느낀점은, 항상 프로젝트를 진행함에 있어 팀원들과의 소통이 가장 중요하다고 생각합니다. 다음 프로젝트에 진행함에 있어서도 이번 프로젝트처럼 소통을 더욱 원활히 하기 위해 노력해야겠다고 생각했습니다.

 

2.  Keep

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

 

 

3. Problem

  • 댓글 등록을 할 경우, 해당 페이지를 redirect를 할 때에 정상적으로 잘 작동이 안되었습니다.

        → <form> 태그를 사용하지 않고 <div> 태그로 변경하여 해결하였습니다.

 

  • 로그인 여부를 판단하여 버튼의 활성화와 비활성화를 구분하여야 했는데 원활히 진행이 되지 않았습니다.

       → Client의 jwt 토큰 여부를 확인하여 ‘Login’ 버튼과 ‘Signup’ 버튼, ‘Logout’ 버튼,

           ‘MyPage’ 버튼을 활성화 / 비활성화 하였습니다.

 

  • 프론트엔드 클린 코드 스타일에 대해 전무해서 코드가 길어지고 난잡해져 가독성이 떨어집니다.

       → 많은 사람들의 프론트 단의 코드를 많이 보고 익숙해지는 방법 뿐이라고 생각합니다.

            즉, 해결하려면 시간과 노력이 필요합니다.

 

  • @PathValiable 방법을 통해 데이터 전달이 되지 않아 @RequestParam을 통해 해결하였습니다.

       → Thymeleaf 활용방법을 검색하여 여러 형식을 시도해보니 @PathValiable 방식으로도

           데이터 전달이 잘 되었습니다.

  • 서버에서 List<Object> 타입 데이터로 받아와서 html에 데이터를 출력하는 방법이 안되었습니다.

       → 문자열을 데이터로 수신받아 for문을 수행하기 위해서는 <script th:inline="javascript">

            와 같이 기재해주어야 합니다.

       → 그런 후에 <script> 내에 *let* commentList = [[${commentList}]]; 와 같이 작성하면

           List<Object> 타입 객체를 활용할 수 있습니다.

       → html 파일 내에 <script> 태그에 Thymeleaf 를 활용한 List<Object>를 받기 위한 형식을 작성 하였습니다.

 

 

 

4. Try

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