[0804] KPT 회고

nikevapormax·2022년 8월 4일
0

KPT

목록 보기
6/7

최종 프로젝트 중간

KEEP(유지하고 싶은 부분)

  • 기획
    • 기능명세서 + 피그마 + ERD + 컨벤션 등
    • 기획에 맞춰 구현한 후 보완점 및 추가점을 찾아 반영하는 부분
  • 기본 구현 완성 후 추가 기능 구현
    • 필요한 최소 기능을 목표치로 잡아서 구현
    • 구현된 부분에 대한 리팩토링 진행
    • 테스트 코드 작성을 통해 완성도 있는 기능 구현
  • API 및 DB 설계에 대한 로직
    • 기획에 최대한 맞추며 나중에 바뀌는 상황이 오더라도 유연하게 대처
  • REST-ful 을 위한 성장
    • backend, frontend 분리
    • serializer 활용
  • 배포 : ubuntu command, nginx
  • Docker

PROBLEM(문제점 및 해결방안)

  • 카카오계정에서 사용자값을 받아 회원가입 연결
    • 해결 방안 :
      • 페이지가 넘어가면 정보값 리셋
      • login.html에서 정보값을 보여주고 회원가입하는 것으로 대체
  • 카카오로그인 payload 실패
    • 해결 방안 :
      • 인가설정을 위해 ipark 서버 전용 토큰 발행
  • 브라우저를 종료해도 access token, payload, refresh token가 유지됨
    • 해결 방안 :
      • html을 종료하면 access token, payload, refresh token이 삭제되도록 함
      • 다른 html로 넘어가도 access token, payload, refresh token이 삭제되는 문제 발생
      • 다른 html로 넘어가는 경우, 새로고침, 뒤로가기를 할 때 유지되도록 조건을 부여해 브라우저를 종료할 때에만 삭제되도록 조치
  • 서비스를 사용하는 도중 access token이 만료되면 사용자가 undefined로 변함
    • 해결 방안 :
      • refresh token을 활용해 payload의 exp가 만료되면 access token을 갱신해 지속적으로 사용할 수 있도록 조치
  • 공원 상세정보 get -> sessionStorage -> 새로고침 안됨 -> 상세페이지 로드 함수 실행
    • 해결 방안 :
      • 댓글, 북마크 기능의 변동사항 바로 보기 힘듦 -> 프론트에서 조작 후 함수 재실행
  • 공원의 옵션과 지역을 동시선택해 검색하면 둘 중 하나의 값만 반영
    • 해결 방안 :
      • django의 Q 객체가 제대로 작동하지 않아 filter를 두 번 사용하였지만 결과 동일
      • model에 through table을 선언해 중간 테이블을 사용하였고, 동시선택에 대한 결과값 얻음
      • try except문을 활용해 공원 검색 결과가 없을 때 발생하는 500 에러 해결
  • 지도를 사용하기 위해 html에서 pyscript와 folium을 활용
    • 해결 방안 :
      • 지도는 제대로 나왔으나 작동 시간이 너무 길어 UX에 악영향을 줄 것으로 판단
      • 네이버 지도 api를 활용해 html에 지도 삽입
  • 페이지네이션 : 페이지네이션에 필요한 page_num 뿐만 아니라 게시물을 태그별로 보여주기 위한 tag_id까지, parameter 두개 동시 처리 필요
    • 해결 방안 :
      • indexOf 함수를 사용하여 특정 문자를 찾아 줌
      • id값을 str로 변환하고 이 id 값에 “http”가 포함되어 있으면 매개변수의 값을 변경
      • 로그인한 user와 로그인을 하지 않은 user를 구분하기 위해 if문 추가 작성
  • 페이지네이션 : 다음페이지로 넘어갈때 토큰값이 같이 넘어오지 않는 오류 and 로그인을 하지 않은 유저가 내가쓴 게시물에 들어가지는 오류
    • 해결 방안 :
      • 조건 추가, “access”값이 undefined인 경우
        • token값을 빈 딕셔너리로 저장
      • “access”값이 undefined인 경우 그리고 (and) id 값이 3일 경우
        • alert창을 띄우고 커뮤니티페이지로 리턴
  • 상단바의 “내가 쓴 게시물”을 클릭해 커뮤니티 페이지로 이동 시, 해당 사용자의 게시글만 따로 불러오지 못하는 오류
    • 해결 방안
      • sessionStorage를 사용하여 “내가 쓴 게시물에서 이동할 때”와 “일반적으로 커뮤니티 페이지에 접근할 때” 사이에 차이를 만들어 줌.
        • “내가 쓴 게시물” 버튼 클릭 시 session에 값을 담아줌.
        • 조건문을 사용하여 커뮤니티 페이지에서 게시글을 로드할 때 세션에 값이 담겨 있다면 사용자가 작성한 글만 노출. / 그렇지 않다면 모든 게시물 노출.
        • sessionStorage에 담긴 값은 사용 후 즉시 삭제.

TRY(다음을 위한 노력)

  • 공부
    • JWT
    • Javascript
    • 배포
    • github 브랜치
  • 데이터 전송 최적화, Query 최적화 (페이지 로딩 시간 줄이기)
  • 프로젝트 기획에 맞추어 웹 앱의 특성 추가
  • test code
  • 사용자 피드백에 맞춰 프로젝트 업그레이드
  • 최종발표까지의 기능 업그레이드
    • USER
      • 비밀번호 변경 시 사용자의 정보를 통해 사용자 인증 진행
        • 사용자 이메일을 통한 인증 방식으로 보완 예정
      • refresh token을 통한 access token 갱신 자동화
        • 현재는 사용자가 서비스를 사용하는 도중 access token이 만료되면 undefined로 표기
        • 다른 페이지로 이동하거나 새로고침을 하면 access token이 갱신되지만, 이로 인한 불편함을 줄일 수 있도록 보완할 예정
    • PARK
      • 공원 상세페이지 함수가 아닌 get을 통해 정보 로드
      • 공원정보와 댓글,북마크를 분리
      • url 파라미터로 변경
      • 지도 km → 분
      • 추천된 주차장의 주차요금
    • COMMUNITY
      • 사용자들이 댓글로 아닌 실시간 채팅으로 대화할 수 있도록 보완할 예정
  • 피드백
    • 기본적인 alert 사용 지양
    • 사람들이 공원에 있는지 없는지 실시간으로 확인할 수 있으면 좋겠음
    • 댓글달고 새로고침이 되지 않아서 직접 해야되는 불편함이 있어보임
    • 공원을 사용자가 직접 선택하면서 해야되는 것이 번거로워 보임
    • 도메인을 사용자가 접근하기 쉽게 하면 좋을 것 같음
      front.ilovepark.net → www.ilovepark.net
profile
https://github.com/nikevapormax

0개의 댓글