![[인프런 워밍업 클럽 3기 - 백엔드 프로젝트] 2주차 발자국](https://cdn.inflearn.com/public/files/blogs/b1fa3746-cd5b-4f99-81fc-81d7c26bb7b7/인프런워밍업.png)
[인프런 워밍업 클럽 3기 - 백엔드 프로젝트] 2주차 발자국
인프런 워밍업 클럽 본격적으로 실습에 들어가게 되는 주였다.
또 온라인 라이브도 있었다.
✅ 강의
2주차 강의부터는 본격적으로 프로젝트를 구현하는 내용이었다.
repository를 개발하고 테스트 코드도 작성해보며 성능 개선까지 해보았다.
서비스와 컨트롤러도 개발하여 API를 만들고 직접 확인해보았다. 또한 테스트 코드도 작성하였다.
Thymeleaf를 활용해 화면단의 템플릿을 부트스트랩을 통해 가져오고 수정하여 프로젝트에 맞게 구현하였다.
컨트롤러의 앞단에서 동작하는 인터셉터를 구현하였다.
✅ 미션
2주차 미션은 미션3, 4 두가지 였다.(마감기준보다는 시작기준으로..ㅎㅎ)
[미션3] REST API 설계하기
[미션4] 조회 REST API 만들기
[미션3]은 내가 미니 프로젝트로 하기로 결정한 플레이리스트 공유 프로젝트에서 사용될 간단한 CRUD를 예상하고 API를 설계해서 제출했다.
고민 포인트가 하나 있었다면, 플레이리스트 생성할 때 필연적으로 음원 목록들의 id가 배열로 들어갈 것이기 때문에 음원 목록 조회까지 잊지 말아야했다는 점이다. 또 사용자 본인만의 플레이리스트를 조회하고 싶은 니즈가 있을 것이고, 전체의 모든 플레이리스트를 보고 싶은 니즈가 있을 것 같아서 조회 API를 두 개 둬봤다. 문서는 Postman documentation을 활용해 제출했다. ㅎㅎ
[미션4]는 발자국을 작성하는 지금 시점에서 아직 다 마치지는 못했다. 플레이리스트 조회의 경우 강의에서처럼 데이터베이스 초기화 코드를 통해 임의로 넣어서 테스트 해볼 수 있겠지만, 뭔가 직접 CRUD를 완성한 뒤 조회하고 싶었다. 그래서 이번 조회 API 과제에서는 음원 목록을 조회하는 API를 먼저 다루는 것으로 결정했다.
여기서 음원 목록을 어떻게 다룰것이냐라는 고민도 있었는데, 음원은 어딘가의 오픈 API로 끌어오거나 크롤링으로 가져오면 베스트일 것 같았다. 하지만 이번에는 그렇게까지는 하지 않고 간단하게 xml 파일에 음원 목록을 몇개 정리해서 데이터베이스 초기화 코드에서 읽고 넣어주는 것으로 결정했다. xml 파일은 gpt의 도움을 받았다 ㅎㅎ
간단하게 jackson-dataformat-xml을 사용해서 다음과 같이 코드를 작성했다.
// track 초기화 - xml 파일로 데이터 추가 val xmlMapper = XmlMapper() val inputStream = javaClass.getResourceAsStream("/track-data.xml") ?: throw IllegalStateException("track-data.xml not found") val tracks = xmlMapper.readValue<List<Track>>(inputStream) trackRepository.saveAll(tracks)
스프링 애플리케이션 실행 후 결과를 확인해보면 다음과 같이 데이터가 잘 등록된 것을 확인할 수 있었다.
마지막으로 음원 목록 조회 API 코드까지 완성 후 포스트맨으로 테스트한 결과이다.
이제 남은 건 테스트 코드 작성이다...! 빨리 마무리하고 미션 제출해야겠다....🏃♂
🍀 마무리
확실히 강의를 들으면서 프로젝트를 따라가는 것과, 내가 생각하는 프로젝트에 적용해보는 것은 확연히 달랐다. 강의를 들으면서 할 때는 술술 넘어가던 부분이 혼자 프로젝트에 적용해보려고 하니 또 기억이 안나고, 잘 안되기도 했다..! 그래서 이 워밍업 클럽을 통해 강의 + 나만의 프로젝트를 해볼 수 있어서 참 좋고 얻어가는게 많을 것 같다. 다음주도 화이팅!!
댓글을 작성해보세요.