[꼼꼼한 개발자] 꼼코더

48. [개발일지] - [피파 온라인 4 프로젝트] - 13. 유저의 매치 기록 조회 기능 (2) (엄청난 DTO의 양, 서비스 코드, 테스트 코드, 느낀점) 본문

개발일지/피파 온라인 4 프로젝트

48. [개발일지] - [피파 온라인 4 프로젝트] - 13. 유저의 매치 기록 조회 기능 (2) (엄청난 DTO의 양, 서비스 코드, 테스트 코드, 느낀점)

꼼코더 2023. 5. 27. 21:46
반응형

🐶 이전 기능

이전에 '유저의 매치 기록' 기능 결과는 '매치 ID'가 리스트업 됐었다.

그럼 이제 '매치 ID'가 무엇을 의미하는지 알아보자

 


 

🕵🏻‍♀️ 공식 문서 확인

'매치 ID'를 가지고 아래 URL로 요청하면 '매치 상세 정보'를 조회할 수 있다고 확인된다.

https://api.nexon.co.kr/fifaonline4/v1.0/matches/{matchid} 

매치 ID로 매치 상세 정보를 조회할 수 있음을 보여주는 공식 문서 화면

 

그럼 '매치 ID' 1개로 테스트 후 결과를 확인해 보자.

 

매치 ID로 요청한 상세 응답 결과 일부 화면 (1)매치 ID로 요청한 상세 응답 결과 일부 화면 (2)매치 ID로 요청한 상세 응답 결과 일부 화면 (3)

 

..?? 보이는가?? 상세정보.. 일부만 봤음에도 정말 엄청난 양의 데이터 종류이다..(정말로 상세하다..넥슨 👏🏻)

따라서 나는 "너무 막막하다.."라는 생각을 5초 동안 하다 정신차리고 바로 스크롤을 내려봤다.

매치 상세 응답 데이터가 방대함을 보여주는 화면

 

DTO..?? 그렇다 이렇게 넥슨에서 친절하게  총 '9 가지'의 DTO를 활용하라고 안내해 주었다..^^

 

자 그럼 이제 뭘 해야할까!?

이제는 슬슬 빠르게 감이 잡힌다..! 머릿속에 흐름 구조가 잘 그려진다! (정말 신난다)

DTO 만들기 -> 서비스 코드 -> 테스트 코드 -> 컨트롤러 코드 -> 출력 코드 순으로 개발해보도록 해보자! 

 

 


 

🧑🏻‍💻 DTO 클래스 작성

너무 많아지 DTO의 개수로 인하여 폴더를 구조화하여 분리했다.

대표적으로 2가지의 DTO 사진을 넣어봤다.
'위 응답 데이터'를 보면 배열 속 많은 DTO의 계층구조가 있어 헷갈리지 않게 코드 상단에 주석처리를 잘해보았다.

매치 응답을 위한 DTO 클래스 구조 코드 화면 (1)매치 응답을 위한 DTO 클래스 구조 코드 화면 (2)매치 응답을 위한 DTO 클래스 구조 코드 화면 (3)

 

 

🧑🏻‍💻 서비스 코드 작성

닉네임으로 유저 고유 식별자 조회 -> 고유 식별자로 매치 ID조회(여기까지 개발) -> 매치 ID로 매치 상세기록 조회 순이기 때문에

상세기록 조회 기능개발을 마쳤다. 

매치 상세 정보를 조회하는 서비스 코드 화면 (1)매치 상세 정보를 조회하는 서비스 코드 화면 (2)매치 상세 정보를 조회하는 서비스 코드 화면 (3)

 

🧑🏻‍💻 테스트 코드

이제 익숙하게 서비스 코드 작성으로 넘어가게 됐다. 😄

결과도 이상 없이 잘 확인된다!

매치 상세 정보 서비스 테스트 실행 화면 (1)매치 상세 정보 서비스 테스트 실행 화면 (2)

 

자 이제 저 많은 데이터를 가져오긴 했는데.. 이제 어떻게 하지.??

 

 

 

🧹 느낀 점

  • DTO 클래스가 너무 많아서 솔직히 '이번 기능은 그냥 넘어갈까' 했지만 '포기하고 도망가기 싫어' 끝까지 붙잡고 했었다. 너무 뿌듯하다.
  • DTO 클래스별로 설명 주석을 작성하는데 은근 시간이 많이 걸렸다. 하지만 '추후 재확인에 더 많은 시간이 걸릴 바엔 지금 고생하자'라는 마인드로 작성했다. (역시 뿌듯했다.)
  • 테스트 코드 작성으로 정말 자연스럽게 넘어가게 되었다. 예전에는 테스트 코드하면 겁부터 냈는데 이번 프로젝트를 통해 정말 많은 좋은 습관을 얻는 거 갖다.
  • 얼른 남은 블로그 정리 후 다음 거 개발하러 가고 싶다