🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

[인프런 워밍업 클럽 3기 - 백엔드 프로젝트] 2주차 발자국

[인프런 워밍업 클럽 3기 - 백엔드 프로젝트] 2주차 발자국

인프런 워밍업 클럽 본격적으로 실습에 들어가게 되는 주였다.
또 온라인 라이브도 있었다.

 

강의

2주차 강의부터는 본격적으로 프로젝트를 구현하는 내용이었다.

  • repository를 개발하고 테스트 코드도 작성해보며 성능 개선까지 해보았다.

  • 서비스와 컨트롤러도 개발하여 API를 만들고 직접 확인해보았다. 또한 테스트 코드도 작성하였다.

  • Thymeleaf를 활용해 화면단의 템플릿을 부트스트랩을 통해 가져오고 수정하여 프로젝트에 맞게 구현하였다.

  • 컨트롤러의 앞단에서 동작하는 인터셉터를 구현하였다.

 

미션

2주차 미션은 미션3, 4 두가지 였다.(마감기준보다는 시작기준으로..ㅎㅎ)

  • [미션3] REST API 설계하기

  • [미션4] 조회 REST API 만들기

    [미션3]은 내가 미니 프로젝트로 하기로 결정한 플레이리스트 공유 프로젝트에서 사용될 간단한 CRUD를 예상하고 API를 설계해서 제출했다.

    image
    고민 포인트가 하나 있었다면, 플레이리스트 생성할 때 필연적으로 음원 목록들의 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)
    

     

     

     

  • 스프링 애플리케이션 실행 후 결과를 확인해보면 다음과 같이 데이터가 잘 등록된 것을 확인할 수 있었다.image

 

  • 마지막으로 음원 목록 조회 API 코드까지 완성 후 포스트맨으로 테스트한 결과이다.

    image

 

이제 남은 건 테스트 코드 작성이다...! 빨리 마무리하고 미션 제출해야겠다....🏃‍♂

 

🍀 마무리

확실히 강의를 들으면서 프로젝트를 따라가는 것과, 내가 생각하는 프로젝트에 적용해보는 것은 확연히 달랐다. 강의를 들으면서 할 때는 술술 넘어가던 부분이 혼자 프로젝트에 적용해보려고 하니 또 기억이 안나고, 잘 안되기도 했다..! 그래서 이 워밍업 클럽을 통해 강의 + 나만의 프로젝트를 해볼 수 있어서 참 좋고 얻어가는게 많을 것 같다. 다음주도 화이팅!!

 

 

댓글을 작성해보세요.

채널톡 아이콘