What I Learn Today

Start Date : 2022/02/07 ~

Learn/Company

[TIL #29] 5월 업무 일정 회고 (feat. 웹소설 API)

HannaDev 2022. 5. 30. 00:07

<<< 목차 >>>
[1] 웹소설 1차 - 상세 목차 API 일정 회고 => 상세 목차 API => 구현 4일 + PR 수정 3일 => 총 7일+a 소요
[2] 웹소설 1차 - 5월 4주차 일정 회고 => 구현 및 PR 에 따른 수정 6일+a


[1] 웹소설 1차 - 상세 목차 API 일정 회고

  • 일정을 회고합니다. (구현 4일 + PR 수정 3일 => 총 7일+a 소요)

 

[일정 회고]

5/9 (월) ~5/10 (화) +사전 작업

  • 대시보드 clip 목록 조회 API 구현
    • 레이어드 구조로 구현 => PR => 피드백 & 수정
  • [A] 테스트를 위한 웹소설 clip 데이터 insert API 구현
    • Webnovel dummy (호접몽전 복제) <<< 데이터 생성

5/11 (수) +1일 차

  • [A] 를 통한 테스트용 데이터 세팅
    • Webnovel dummy (호접몽전 복제) : 하루에 clip 한 개 open, 기다무 무료 clip 하나 open, 기다무 무료 clip 하나 close…. 등의 테스트가 용이한 데이터로 설계 및 세팅
  • 상세 목차 API 구현 시작
    • 클라 + 서버 설계 논의 (2h+)
    • 스팩 확장
      • 여러 이슈로 Contents-info API 에서 Clip 목록 분리하기로 결정
      • 클라 로직을 서버 측으로 가져오기로 결정 (OPEN, LOCK, DDAY)
      • 전체 다운로드 버튼 로직도 클라에서 서버 측으로 이관 결정
  • 상세 목차 API 구현률 Zero 로 회귀

5/12 (목) +2일 차

  • 어제 논의한 내용을 바탕으로 재생 관련 API 리딩 + 요구사항 분석 및 파악
  • 상세 목차 API - 페이징 구현
  • 상세 목차 status 로직 파악 및 분해 - 조립

5/13 (금) +3일 차

  • 양방향 + center 커서 구현
  • 연재상태 - clip 함수 구현
    • 테스트 코드 도입 - 로직 검증
  • 로직 구조 변경 (리팩토링)

5/15 (월) +4일 차

  • 상세 목차 API - 재생률 구현
  • PR 요청 및 알파 환경 배포
  • 클라 측 피드백에 따른 커서 수정
    • 양끝단 커서 null 처리는 나중으로 미룸

5/16 (화) +5일 차

  • PR 피드백에 따른 수정 - 1일 차
  • 시리즈 Hotfix 작업

5/17 (수) +6일 차

  • PR 피드백에 따른 수정 - 2일 차
  • 시리즈 Hotfix 배포 (⑅˃◡˂⑅)
  • 상세 목차 API - 커서 보완 
  • pagination 회의 참여 (2h) + 회식 참여 (3h)

5/18 (목) +7일 차

  • PR 피드백에 따른 수정 - 3일 차
    • PR - 1차 완료 (*ˊᵕˋo💐o
  • 재생 관련 API 수정할 부분 파악 및 코드 리딩
    • Contents-info API
    • Play-Data API

=> 상세 목차 API => 구현 4일 + PR 수정 3일 => 총 7일+a 소요


[일감 재분배] - 22/05/29 (일) 기준

  • 대시보드 CUD => 이관
  • 요일별 연재 / 요일별 랭킹 => 이관

  • 전체 재생 / 전체 다운로드 버튼 상태 로직 <= 나에게로 이관
  • 검색 API <= 나에게로 이관

[2] 웹소설 1차 - 5월 4주차 일정 회고

  • 일정을 회고합니다. (구현 및 PR 에 따른 수정 6일+a)

 

[일정 회고]

5/20 (금) +1일 차

  • 재생 관련 Contents-info API 수정
  • Clip code list API 구현 (전체 다운로드 관련 API)
  • 전체 재생 / 전체 다운로드 버튼 상태 로직 구현
    • 클라 로직 → 서버로 이전
    • 과장님께 로직 컨펌

5/23 (월) +2일 차

  • 전체 재생 / 전체 다운로드 버튼 상태 로직 구현 => PR 요청
    • 질문 및 의문점 클라 측과 소통 - 로직 수정
  • 상세 목차 API - PR 에 따른 수정 (clip status 함수 구조 변경)
    • can_play 를 기준으로 분해 - 재조립

5/24 (화) +3일 차

  • 다운로드 관련 API 및 함수 - PR 피드백 및 수정
  • [B] 상세 목차 API - 성능 개선
  • Play-data API 수정

5/25 (수) +4일 차

  • Play-data API 수정 및 Swagger 문서 업데이트
  • 대시보드 - clip 목록 조회 API 등 조율
    • 알파 환경 → 권한 오류 (2h) → 갑자기 시간 지나니 권한 있음으로 해결됨 (원인 파악 X)
    • 중간 중간 날짜 패턴화 로직 구상 도와드림~~ (feat. 과장님)
  • [B] 성능 개선 부분 관련하여 clip image 가져오는 로직 구조 변경
  • 최근 재생 목록 API 요구사항 분석 및 파악
    • 쿼리 구상…

5/26 (목) +5일 차

  • 최근 재생 목록 API 쿼리 구상
    • Visual Explain 돋보기로 성능 분석 (재생 기록을 많이 가지고 있는 사용자일 수록 시간 cost 상승)
    • SQL 쿼리 구현
  • 최근 재생 목록 API 구현 - DAO 부분에서 STOP (4h)
    • MySQL 상에서 구상한 쿼리를 ORM 문법에 맞춰 변환하는 과정에서 삽질 시작…( ・ั﹏・ั)
    • Select 문에 Scalar Query 를 사용하고 싶다 => 되지 않는다 => 다른 방법들 시도 => 되지 않는다 => 생각… => 뭔가 삽질을 하고 있는 것 같다

5/27 (금) +6일 차

  • 최근 재생 목록 API 구현
    • 상무님께 질문 - DB 2번 갔다 오기 (이렇게 하면 2번째 부분은 캐싱으로 대체도 가능해진다)
  • 최근 재생 목록 API - 커서 구현
  • 최종 기능 확인 및 PR 요청

=> 구현 및 PR 에 따른 수정 6일+a


22/05/29 (일) 기준 칸반 보드 Ticket

 

> 한 줄 요약

  • 상세 목차... 어려웠다... (내 작업들은 왜 다 알고리즘 문제같지 기분 탓인가)

> 적용할 점

  • 일정 미리미리 산정해서 혼자 못 다할 경우 도움을 요청하자
  • 회사 생활에서 마감은 매우 중요!
  • 구현 전 설계할 시 뭐부터 해야될 지 모르겠다면 처음과 끝 (controller, dao) 부터 생각해서 이어가자