[이미지 검색 Project] TDD 기반으로 Spring - MySQL 연결하기

YoungHo-Cha·2021년 9월 27일
1

project

목록 보기
1/3

개인적으로 하는 토이 프로젝트에 api 요청을 수행하는 기능을 구현할 것이다.

나의 전반적인 설계를 다루고, 기록하자!


🚗목차

  • Git Strategy
  • Test 준비
  • Select 테스트 및 구현

🌈Git Strategy

해당 프로젝트는 "Git Flow" 전략으로 구현된다.

현재 main, develop, feature 브랜치로 총 3개가 존재한다.

그림으로 보면 다음과 같다.

브랜치를 생성하는 과정은 다음 링크에서 작성했다!
-> 브랜치 생성 글

오늘은 "feature/db_spring_link-ChaYoungHo" 브랜치에서 Select 기능을 구현할 예정이다.


🌈Test 준비하기.

  1. 먼저 스프링 부트 프로젝트 생성 사이트에서 프로젝트를 생성하고 gradle로 열어준다.(나는 intelliJ 사용)

  1. 테스트를 생성해준다.


🌈Select 테스트 하기

1. 먼저 생성한 테스트를 Run 해본다.

통과

2. Repository, service가 있다는 가정 하에 코드를 작성해보자.

결과는 역시

symbol 에러가 뜬다!
왜? 정의를 안했으니까.

3. 필요한 객체들을 정의하러가자.

  • 프로덕트 생성


  • repository 생성

  • 서비스 생성

4. 테스트 진행!

null pointer Exception으로 테스트 fail이다.

이유는 Product Service의 findAll() 메서드에서 null이 반환되었다!

당연하지. mysql이랑 연결을 안했으니까.

연결하러 가자!

5. mysql과 연결하기

  • application.properties를 삭제하고 application.yml을 생성한다.


  • yml에 mysql DB 설정을 기입하자.

    driver-class-name : jdbc 드라이버 설정
    url : db, 포트, ip, 기타 설정
    username : mysql에 접속할 계정
    password : 해당 계정의 비밀번호

  • 그리고 jpa를 사용하니까 jpa설정도 추가하자.

  • Test시 서버도 올려주어야 해서, 서버 설정도 했다.

6. 테스트 해보자!

성공!
Assertions을 Null -> notNull로 수정했다.


🌈마치며

테스트를 실행하면서, 수많은 에러를 경험했다.. 대부분 어노테이션 누락으로 인한.. 그리고 코드를 약간씩 수정했다.

다음번 글은 DB에 get한 데이터가 없을 시, python(네이버와 api 통신하는 서버)에 api요청을 보내는 기능을 구현하자!

profile
관심많은 영호입니다. 궁금한 거 있으시면 다음 익명 카톡으로 말씀해주시면 가능한 도와드리겠습니다! https://open.kakao.com/o/sE6T84kf

0개의 댓글