당니의 개발자 스토리

강좌 소개 본문

스프링/실전! 스프링 부트와 JPA 활용1

강좌 소개

clainy 2024. 3. 26. 15:59

안녕하세요. 실전 스프링 부트와 JPA 활용 강의 오신 여러분을 환영합니다.

제 이름은 김영한이고 여기 있는 Java ORM 표준 JPA 프로그래밍 책의 저자입니다.

스프링 부트는 복잡하고 어려운 스프링 기술을 간결하고 쉽게 사용할 수 있도록 도와주는 기술입니다. JPA는 강력한 Java ORM 표준 기술입니다. 이 두 기술을 합치면 높은 개발 생산성을 유지하면서 빠르게 웹 어플리케이션을 개발할 수 있습니다.

그래서 Java 진영에서는 두 기술로 웹 어플리케이션을 개발하는 것이 현재 세계적인 추세입니다.

저도 대부분의 실무 프로젝트에서 이 두 기술의 조합으로 프로젝트를 진행하고 있습니다.


이번 강의 목표는 딱 하나인데요.

Spring BootJPA 같은 최신 Java 기술을 활용해서 여러분이 실무에서 웹 어플리케이션을 제대로 개발할 수 있게 도와드리는 것이 이번 강의의 목표입니다.

그래서 실무에 가까운 복잡한 예제를 준비했습니다. 막 장난감 같은 그런 게시판 예제가 아니라 실무에서 만날 수 있는 정말 다양한 상황을 고려한 진짜 예제를 같이 만들어 가실 거예요.

그러면 실무에 복잡한 상황에서도 이 기술들을 활용해서 문제를 해결할 수 있습니다. 개발이라는 것이 게시판처럼 단순했던 적이 별로 없잖아요.

그리고 이 강의의 특징은 처음부터 끝까지 하나의 예제를 코딩으로 쭉 완성하는 거예요. 그냥 코딩으로 따라오시면 됩니다.

일단 좀 모르는 부분이 있어도 개발자는 일단 코딩으로 따라오면 몸이 익히는 게 있거든요. 이 강의를 통해서 큰 그림을 몸으로 익힐 수가 있습니다.

강의가 끝나고 나면 이제 내가 실무를 하는데 '아 이런 부분이 부족하구나', 이런 디테일한 기술은 뭘 공부해야 되는지 다 정리를 하실 수가 있을 거예요. 그리고 저는 스프링과 JPA를 활용해서 결제, 정산, 주문 같은 정말 다양한 실무 시스템을 개발해 왔습니다.

저의 실무 노하우를 최대한 열심히 전달해드리도록 하겠습니다.

이 강의는 크게 웹 어플리케이션을 개발하는 1편과 API를 개발하고 성능을 최적화하는 2편의 다른 두 강의로 구성이 되어있습니다.

이번 강의는 1편 웹 어플리케이션 개발인데요. 개발이라는 게 사실 요구사항 분석부터 설계하고 아키텍처 구성하고 비즈니스 로직 만들고 테스트하고 웹 계층 개발하고 이게 사실 하나의 큰 중심 흐름이라고 볼 수 있잖아요. 이 하나의 큰 중심 흐름을 저와 같이 쭉 관통하면서 웹 어플리케이션을 완성하게 됩니다.

간략하게 하나씩 설명을 해드리면,

Spring Boot, JPA, Hibernate, Gradle, Tomcat 그리고 Vue 템플릿으로 Thymeleaf 같은 프로젝트, 그러니까 최신 Java 기술들을 환경을 세팅해서 동작하는지 확인을 하고요.

그 다음에는 회원, 상품, 주문, 도메인요구사항을 간략하게 분석합니다.

그리고 이 요구사항이 분석된 걸 바탕으로 도메인 모델을 설계하고요.

그리고 엔티티를 설계하고,

테이블을 설계합니다.

그리고 마지막으로 JPA로 이 엔티티와 테이블ORM으로 맵핑합니다.


JPA라는 게 ORM 기술인데, ORM 기술은 DB에서 쿼리 없이 자바 객체를 편하게 저장하고 꺼내는 기술이다.


그리고 나서, 이제 애플리케이션 아키텍처를 간단하게 구성한 다음에

핵심 비즈니스 로직을 개발합니다. 회원, 상품, 주문의 도메인을 개발하고 이것들의 핵심 비즈니스 로직을 개발하고, 그리고 테스트 케이스로 이것들을 검증합니다. 이 과정을 거치면 자연스럽게 도메인 주도 설계에 대해서 이해하실 수가 있습니다.

그리고 마지막으로 이것의 기반 위에 웹계층을 올립니다. 그러니까 우리가 소위 아는 Controller랑 Thymeleaf를 올려서 HTML이 렌더링되게 만들어서 웹브라우저에서 동작하게 할 거예요. 이렇게 해서 1편 웹 어플리케이션 예제를 완성하게 됩니다.


2편은 API 개발과 성능 최적화인데요.

최근에는 등록, 수정, 조회 같은 걸 주로 REST API로 개발 많이 하죠. 그래서 REST API를 개발하는 걸 보여드릴 거고, 스프링 부트랑 JPA로 이런 API들을 개발할 때 어떤 실무 노하우들을 쭉 전수를 해드릴 겁니다.

그리고 2편의 꽃이라고 할 수 있는 정수는 바로 성능 최적화예요. JPA로 할 수 있는 극한의 조회 성능 최적화 노하우를 다 전수를 해드릴 겁니다. 복잡한 예제를 6단계로, 단계별로 튜닝하는 걸 보여드릴 거에요.

뭐 예를 들면은 쿼리가 막 수십번 나가던 게, SQL이 수십번 실행 되던 게 이제 JPA 성능 튜닝 몇 번만으로, 간단한 코드 조정 몇 개만으로 수십 번 나가던 쿼리들이 한 번 했더니 다섯 번, 그 다음 세 번 마지막에는 한 번의 SQL로 굉장히 빠르게 조회 결과가 나오는 기법들을 다 알려드릴 겁니다.

여러분 이 성능 최적화 부분에 대해서 한번 쭉 따라 하시게 되면 JPA 실무 성능 문제의 거의 90%를 해결하실 수 있을 겁니다.


이제 학습 방법인데요.

참고로 이 강의는 Spring Boot나 JPA 자체는 자세하게 설명하지 않아요. 제목 자체가 활용편이잖아요.

그래서 이 기술들을 어느정도 아시는 분들이 이 기술들을 최대한 잘 활용할 수 있게, 그래서 실무에서 웹 어플리케이션을 잘 만들 수 있게 도와드리는 것이 강의의 목표예요.

 

따라서 기본적으로 Spring이나 JPA에 대해서 어느정도 이해가 있는 분들이 이 강의를 듣는 것을 권장합니다. 그런데 아직 Spring이나 JPA를 잘 몰라도 하나에 쭉 따라할 수 있는 예제가 있기 때문에 처음부터 끝까지 따라하시면 Java로 '아 웹 어플리케이션을 이렇게 개발하는구나', '이렇게 완성해 가는구나' 라는 전체적인 감을 잡을 수가 있습니다.

이후에 본인이 부족하다고 생각하는 디테일한 기술들에 대해서 습득하는 식으로 학습을 하셔도 됩니다.

가장 중요한 건 제대로 된 웹 어플리케이션을 처음부터 끝까지 직접 코딩을 하면서 한번 따라오시는 거예요.

이 과정을 쭉 거치게 되면 실무에서 Spring Boot와 JPA를 활용해서 어떻게 개발하는 게 제대로 좋게 개발하는 건지 길이 보이실 겁니다.

'스프링 > 실전! 스프링 부트와 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.31