[백엔드] 스프링 부트와 JPA 활용 1 - 프로젝트 환경설정

유승선 ·2022년 7월 12일
1
post-thumbnail

프로젝트 생성

특별한거 없이 start.spring.io 를 가서 해당 자바 버전과 함께 최신 버전을 다운로드 받아서 build.gradle 을 인텔리제이에 실행시켰다. 주의할 점은 Java의 현재 버전이 몇인지 build.gradle 에서 확인 해주고 처음 생성했던 파일의 버전과 맞게 설정해준다. 그 후에 TOMCAT 이 잘 작동된다면 성공


Lombok 을 활용하게 된다면은 이런식으로 @Getter @Setter 해서 데이터를 set 하고 get 하는게 가능해진다


라이브러리 살펴보기

핵심 라이브러리 정도만 이해하고 테스트 라이브러리에서 junit 을 활용하는 정도만 알아두면 좋을거같다. AOP 그리고 데이터베이스 관련 라이브러리 등 build.gradle 에서 라이브러리를 다운받았을때 모든 의존관계에 파일들을 전부 포함시켰다.


View 환경 설정

입문때 배웠던 View 환경설정에 연장선 이었다

이건 내가 처음 입문 프로젝트를 정리했을때 장 정리되어있는데, 다시 봐도 괜찮을거같다. @Controller 을 달았기 때문에 hello라는 컨텐츠로 웹사이트에 들어가게되면 스프링 부트는 컨트롤러를 보고 model.attribute(attributeName, attributeValue) 를 각자 key, value 형식으로해서 return 값에 적은 이름의 html 파일을 resources:templates 에서 찾게된다. html은 생략됐지만 원래는 있는거와 똑같다.

정적인 view 페이지 또한 만들 수 있는데, 그러기위해서는

이렇게도 접근 다능하다. 물론 이런 경우에는

진짜 이렇게 하나만 완성이 되서 바로 로컬호스트에 들어가자마자 실행이 되는것이다.


JPA와 DB 설정, 동작확인

앞서서 H2 데이터베이스를 다운로드 하고 실행하는데 있어서 ~jpashop 이 생성이 안되길래 별 뻘짓을 다 했지만 예전 강의에서 생성해두었던 ~test 로 변경을 해서 실행했다.

리소스에 이렇게 yml 파일을 적어서 데이터 베이스를 연동했던게 꽤 신기하게 느껴졌다. 역시 JPA 를 더 알면은 위에 설정들을 다 이해할 수 있었겠지만, 아쉽게도 잘 이해는 못했다. 다만 알아두면 좋은 점 중 하나는 jpa: hibernate: ddl-auto: create 같은 경우는 기존에 테이블을 전부 DROP 해준다음에 새로 만들어 준다는것을 배웠다.

간단한 멤버 클래스 만들기, @Entity, @ID, @GeneratedValue 같은 부분이 좀 생소하게 느껴져서 다시 공부해봐야겠다.

@Repository 같은경우는 콤포넌트 스캔을 위해 사용되는것은 좀 알거같다. 다만 EntityManager 와 @PersistentContext는 뭔지 잘 모르기때문에 공부할 필요가 있어보인다

테스트 케이스를 만들었었고, @Transactional 은 JPA를 활용하는데 있어서 중요한 문구 같다. @RunWith 까지는 잘 모르겠지만 그 외에 Assertions를 활용한 멤버 확인같은 경우 익숙해서 보기 반가웠었다. 위에 테스트 케이스를 활용하면은 데이터베이스에 테이블이 잘 만들어진것을 확인할 수 있었다.

다만! 테스트케이스에서의 @Transactional 은 key, value 값이 생성되는것을 rollback 해줘서 테케가 끝나고 나서도 아무것도 생성되지 않은것을 확인했다.

  1. Ctrl + Alt + V 하면은 변수가 자동 생성된다
  2. soutv + tab 을 하면은 내가 원하는 변수 자동출력이 된다

배운점

  1. JPA 기초 강의를 한번 보자
  2. 아직 모르는 어노테이션이 많다
profile
성장하는 사람

1개의 댓글

comment-user-thumbnail
2022년 7월 14일

나도 같은 문제가 있었다. 그 때 모든 종속성에 모든 파일을 포함시킨 AOP 및 데이터베이스 관련 라이브러리와 같은 build.gradle에서 라이브러리를 다운로드했습니다. 선배들에게 더 많은 것을 가르쳐달라고 요청하십시오.

답글 달기