당니의 개발자 스토리
라이브러리 살펴보기 본문
라이브러리 살펴보기
자 여러분 이번 시간에는 라이브러리를 한번 살펴 보겠습니다.
저희가 gradle을 가지고 라이브러리 의존관계를 세팅을 하고 있죠.

여기 보시면 뭐 이런 라이브러리들을 받았었는데요. 하나씩 크게 크게 어떤 중요한 것들이 있는지 보겠습니다.
예를 들어서, 'org.springframework.boot:spring-boot-starter-data-jpa' 라는 걸 쓰면, JPA나 Hibernate, 스프링과 관련된 다른 것들을 갖다가 쓰겠죠.
그러면 이제 도대체 어디까지 라이브러리를 어떤 식으로 쓰고 있는 거지? 알아보고 싶으면, 몇 가지 방법이 있는데

터미널을 열어서 우리의 jpashop 폴더에 들어온 다음에, ./gradlew dependencies까지만 적어줘도

의존관계를 쭉쭉 적어줍니다.
일단 이것들을 하나씩 크게크게 보겠습니다.

먼저, 위의 명령어를 통해서 compileClasspath 부터 보면,

우리가 spring-boot-starter-data-jpa를 썼단 말이에요. 지금 보기가 너무 복잡하기 때문에 인텔리제이로 가겠습니다. 우측 가장자리에 Gradle을 누르고 Dependecy에서 예쁘게 볼 수 있습니다.

지금 web을 보면, 중요한 게 있습니다.

spring-boot-starter-tomcat이 들어있죠. 우리 웹 서버가 띄워졌잖아요. 자동으로 8080 포트로 된거.

여기 보면 '아 embed 톰캣을 가지고 있구나' 라고 보시면 됩니다.
그리고 또 하나,

spring-boot-starter-web이 spring-webmvc를 의존하고 있죠. 엄청 중요하겠죠? 이것도 의존하고 있는 걸 확인할 수가 있습니다. 그래서 web만 갖다 쓰면, Tomcat과 Spring Web mvc를 다 쓸 수 있게 되는 이유가 이것 때문에 그런 거고요.
그 다음에 템플릿 엔진인 thymeleaf를 쓸 건데,

여기 보시면 thymeleaf와 관련된 라이브러리들은 세팅이 되어 있고, thymeleaf 버전이 3.2.2니까 3버전의 thymeleaf를 쓴다고 보시면 됩니다.
그 다음에 제일 중요한 data-jpa를 보시면,

spring-boot-starter-aop는 AOP와 관련된 것들이고, 그 다음에 spring-boot-starter-jdbc는 결국 데이터베이스 커넥션이나 그런 거를 다 갖다 써야 되기 때문에

여기 보시면 라이브러리들이 세팅이 되는 걸 확인할 수 있습니다.
여기서 이제 중요한 게 HikariCP라고 커넥션 툴입니다. 스프링 부트 2.0 부터 HikariCP가 기본이거든요. 물론 세팅을 바꿀 수 있지만, 저도 운영에서 HikariCP를 많이 쓰는데 아주 좋습니다.
그 다음에

그 다음에 spring-jdbc가 있는데, Spring Data JPA을 쓰면 spring-jdbc도 다 가져다 쓰기 때문에 이 안에 뭐가 들어있냐면 Spring Transaction이나 Spring-JDBC Template 이런 것들이 다 들어있거든요. 그래서 이런 것들을 다 쓰실 수가 있습니다.
(4:00 부터 나머지는 강의 참고하기)




그래서 이제 핵심 라이브러리가

스프링 MVC, 스프링 ORM, JPA, Hibernate, 스프링 데이터 JPA가 있습니다. 물론, 스프링 데이터 JPA는 이번 강의에서 쓰진 않을 겁니다.

그 다음 기타 라이브러리에 H2 데이터베이스 클라이언트가 있습니다. 여기 보면,

H2 데이터베이스가 있고요. 가끔 이 버전이 안맞아서 문제가 될 때가 있거든요. 좀 뒤에 설명드릴 건데 다운로드 받는 h2 데이터베이스 버전이랑 접근하는 클라이언트 버전이랑 안맞으면 좀 충돌 날 때가 있습니다. 그래서 버전을 맞춰주시는 게 좋습니다.
그리고 커넥션 풀은 HikariCP 쓴다고 말씀드렸죠.
WEB에 관련된 건 thymeleaf를 뷰 템플릿으로 쓰고, 로깅은 SLF4J 라는 인터페이스의 LogBack 라는 구현체를 꽂아서 쓴다. 라고 보시면 됩니다. 그리고 테스트는 방금 보신대로 하면 됩니다.
그리고 제가 계속 강조하고 있는 것처럼 스프링 데이터 JPA는 스프링과 JPA를 먼저 이해하고 사용해야 하는 응용 기술이에요. 물론 학습 스타일에 따라서 다른 접근 방법이 있을 수 있지만, 어쨌든 jpa 기반과 스프링의 기반을 이해하고 그 다음에 사용할 수 있는 기술인 것은 맞아요.
자 라이브러리를 살펴보는 것은 여기까지 말씀드렸구요.
다음 시간에는 실제 thymeleaf 템플릿 엔진을 세팅해서 View 환경을 한번 설정해보겠습니다.
'스프링 > 실전! 스프링 부트와 JPA 활용1' 카테고리의 다른 글
| JPA와 DB 설정, 동작확인 (0) | 2024.04.13 |
|---|---|
| H2 데이터베이스 설치 (0) | 2024.04.02 |
| View 환경 설정 (0) | 2024.03.31 |
| 프로젝트 생성 (0) | 2024.03.31 |
| 강좌 소개 (0) | 2024.03.26 |