BEST
개발 · 프로그래밍

/

백엔드

실전! 스프링 데이터 JPA

스프링 데이터 JPA는 기존의 한계를 넘어 마치 마법처럼 리포지토리에 구현 클래스 없이 인터페이스만으로 개발을 완료할 수 있습니다. 그리고 반복 개발해온 기본 CRUD 기능도 모두 제공합니다. 스프링 데이터 JPA 실무 노하우를 전해드립니다.

(5.0) 수강평 853개

수강생 15,396명

Thumbnail

스프링 부트 강의 오픈 예정 소식!

안녕하세요. 여러분^^!
드디어 스프링 부트 강의가 오픈 준비에 돌입했습니다. 오랜기간 기다려주시고 응원해주셔서 진심으로 감사합니다.

출시일은 2월 27일(월)입니다.

* 제목: 스프링 부트 - 핵심 원리와 활용

* 출시일: 2월 27일(월)

* 강의 수: 104강

* 강의 자료: PDF 362장

* 강의 시간: 15시간 45분

스프링 완전 정복 로드맵 3년의 완성

이번 스프링 부트 강의를 마지막으로 스프링 완전 정복 로드맵이 완성됩니다. 돌이켜보니 이 로드맵을 완성하는데, 2020년 1월부터 준비해서 무려 3년이라는 긴 시간이 흘렀습니다.

3년이라는 오랜 시간 동안 정말 많은 개발자분들이 마음을 담은 수강평을 남겨주셨습니다. 이 로드맵으로 열심히 공부해서 취업에 성공하신 분들, 본인이 가고 싶은 회사에 이직하신 분들, 또 백엔드 개발의 즐거움을 알게 되고 개발자로 더 성장하신 분들 등등, 많은 분들이 진심을 담아 남겨주신 수강평 덕분에 저도 포기하지 않고 스프링 로드맵을 완성할 수 있었습니다. 마음을 나누어 주신 모든 개발자 분들께 진심으로 고마움을 전합니다.

이번 스프링 부트 강의는 로드맵의 마지막이니 만큼 최선을 다해서 준비했습니다.

실무에 필요한 스프링 부트는 이 강의 하나로 모두 정리해드리겠습니다.

스프링 로드맵: https://www.inflearn.com/roadmaps/373

 

강의 소개

스프링 프레임워크의 성장

스프링 프레임워크는 지난 20년 동안 발전해온 매우 거대한 기술입니다.
실무에서 발생하는 대부분의 기술 문제를 해결하고 높은 안정성과 유연성을 제공합니다. 그래서 자바를 사용하는 대부분의 메이저 회사는 스프링을 사용합니다. 스프링은 자바 진영에서 사용되는 사실상 표준 기술입니다.

거대하고 불편한 스프링 프레임워크

그런데 스프링 프레임워크는 기능도 너무 많고 광범위해서 어디서부터 어떻게 시작해야 할지 막막합니다.
또 너무 많은 유연성을 제공해서, 어떤 기술들을 함께 사용해야 할지 선택하기 어렵습니다. 기능이 점점 증가하면서 더 많은 설정들이 필요해지기 시작했습니다. 그래서 많은 개발자들이 스프링은 무겁고 불편하다고 느끼기 시작했습니다.

스프링 부트 - 스프링 기술의 완성

이런 문제를 해결하기 위해 스프링 부트가 등장했습니다.
스프링 부트는 이름 그대로 부트에서 시작합니다. 스프링 부트는 스프링을 매우 쉽고 편리하게 시작할 수 있도록 도와주는 기술입니다. 그리고 개발자들에게 수 많은 편의 기능을 제공해줍니다. 스프링 부트의 등장으로 거대하고 불편하게만 느껴졌던 스프링을 매우 쉽고 편리하게 시작할 수 있게 되었습니다. 이제 스프링으로 진행하는 대부분의 프로젝트는 스프링 부트를 필수로 사용합니다. 스프링 기술은 스프링 부트의 등장으로 비로소 완성되었습니다. 

스프링 부트가 제공하는 5가지 핵심 기능

스프링 부트는 다음 5가지 핵심 기능을 제공해서 스프링 프레임워크를 편리하게 사용하도록 도와줍니다. 강의에서도 이 5가지 핵심 기능에 집중합니다.

내장 서버: 별도의 서버 설치 없이 손쉽게 웹 애플리케이션을 개발하고 배포
자동 라이브러리 관리: 베스트 프랙티스를 기반으로 수 많은 라이브러리를 자동으로 선택하고 관리, 덕분에 프로젝트를 쉽고 빠르게 시작
* 자동 구성: 복잡한 스프링 설정을 자동화해서 개발자들이 쉽고 빠르게 애플리케이션을 개발할 수 있음
* 외부 설정: 애플리케이션을 개발 환경, 운영 환경처럼 서로 다른 환경에서 사용할 때 필요한 외부 설정값을 편리하게 조회
* 모니터링과 관리 기능: 애플리케이션의 수 많은 지표들을 자동으로 수집하고 모니터링하고 관리할 수 있도록 기능 제공

강의 목표

실무에 필요한 스프링 부트는 이 강의 하나로 모두 정리해드립니다.
스프링 부트는 매우 편리하지만 너무 다양한 기능을 제공합니다. 그래서 무작정 넓게 배워도 안되고, 또 너무 깊이있게 들어가도 실무에 크게 도움이 되지 않습니다. 그래서 실무에서 중요하게 생각하는 핵심 원리와 자주 사용하는 기능을 예제 코드를 통해서 자연스럽게 이해할 수 있도록 강의를 준비했습니다. 크게 중요하지 않거나 실무에서 자주 사용하지 않는 기능은 과감하게 제외했습니다. 그리고 많은 분들이 궁금해하시는 스프링 부트를 활용한 효과적인 모니터링 방법도 함께 포함했습니다.

예제 코드를 통한 자연스러운 이해
여러분은 예제 코드를 통해서 자연스럽게 스프링 부트의 마법 같은 원리를 이해할 수 있습니다. 이 강의는 부트가 없던 시절부터 시작합니다. 그리고 점진적으로 부트를 도입하면서 부트의 핵심 개념과 강점을 코드를 통해서 자연스럽게 이해할 수 있습니다.
실무에서 필요한 스프링 부트를 복잡한 이론이 아니라, 예제 코드를 통해서 자연스럽게 이해하며, 실무 베스트 프랙티스를 전수해드립니다.

주의!

스프링 부트는 스프링 프레임워크를 편리하게 사용하도록 도와주는 기술입니다. 따라서 스프링 프레임워크를 먼저 학습하는 것이 더 중요합니다. 이 강의에서는 스프링으로 애플리케이션을 만드는 내용 보다는 스프링 부트 자체의 기능들에 초점을 맞춥니다. 그리고 여러분이 스프링을 학습해본 경험이 있다고 가정합니다. 아직 스프링에 익숙하지 않거나 스프링을 처음부터 학습하고 싶다면 -> 김영한의 스프링 완전 정복 로드맵을 참고해주세요.

다루는 내용

스프링 부트 소개
스프링 프레임워크 vs 스프링 부트
스프링 부트가 등장한 이유와 스프링 부트 전반에 대해서 소개합니다.

스프링 부트와 웹 서버
오랜 과거로 돌아가서 톰캣 같은 웹 서버를 직접 설치하고 웹 애플리케이션을 WAR 파일로 빌드해서 배포하는 방법부터, 지금처럼 스프링 부트와 내장 톰캣을 사용해서 JAR 파일 하나로 편리하게 웹 서버를 사용하는 방법을 단계별로 설명합니다. 어떤 이유로 이렇게 발전해왔는지 이해하고, 그 과정속에서 자연스럽게 스프링 부트가 포함하고 있는 내장 서버가 어떻게 동작하는지 원리를 이해하게 됩니다.

스프링 부트 스타터와 라이브러리 관리
다양한 라이브러리들을 직접 선택하고 관리하는 방법의 어려움을 알아보고, 스프링 부트가 이런 문제점을 어떻게 해결하는지 알아봅니다. 그리고 스프링 부트 스타터 라이브러리에 대해서도 알아봅니다.

자동 구성(Auto Configuration)
스프링 부트는 수 많은 기능을 자동화합니다. 그 중에서 가장 대표적인 기능이 바로 자동 구성(Auto Configuration) 입니다.
이 기능 덕분에 개발자는 수 많은 스프링 빈들을 직접 등록하지 않아도 됩니다. 하지만 어떤 원리로 자동 구성이 되는지 이해하지 못하면, 스프링 부트를 사용하다 문제가 발생했을 때, 근본적인 문제를 해결하기 어렵습니다.
강의에서는 스프링 부트의 핵심 기능이라 할 수 있는 자동 구성의 원리를 예제를 통해서 손쉽게 이해할 수 있습니다. 그리고 이러한 자동 구성을 직접 만들어서 제공하는 방법도 알아봅니다.

외부 설정과 프로필
스프링 부트 없이 직접 외부 설정을 사용하는 방법부터 시작합니다. 예를 들어서 OS 환경변수, 자바 시스템 속성, 커맨드 라인 인수를 직접 사용하는 방법을 알아봅니다. 그리고 이렇게 직접 외부 설정을 사용할 때 발생하는 문제점들을 알아보고, 스프링 부트가 이런 문제점들을 어떻게 해결하는지 단계별로 하나하나 학습합니다. 더 나아가서 Environment, @Value, @ConfigurationProperties의 등장 이유와 활용법도 예제를 통해 학습합니다.

스프링 부트 액츄에이터
실제 운영 환경에서 서비스를 운영하려면 단순히 기능 요구사항을 넘어서, 애플리케이션을 모니터링하는 부분이 매우 중요합니다. 스프링 부트 액츄에이터가 제공하는 다양한 기능과 또 모니터링 기능을 학습합니다.

마이크로미터, 프로메테우스, 그라파나를 활용한 모니터링

"전투에서 실패한 지휘관은 용서할 수 있지만 경계에서 실패하는 지휘관은 용서할 수 없다"라는 말이 있습니다. 이것을 서비스를 운영하는 개발자에게 비추어 보면 장애는 언제든지 발생할 수 있지만, 그만큼 모니터링을 잘 해야 한다는 뜻입니다.
최근 실무에서 주로 많이 사용하는 모니터링 툴인 프로메테우스와 그라파나를 활용해서 어떻게 모니터링 환경을 구축하는지 설명합니다. 이렇게 구축한 모니터링 환경에서 실제 CPU, 메모리, DB 커넥션 사용을 늘려가면서 모니터링 툴을 통해 문제를 파악하는 방법도 알아봅니다.

모니터링 활용
모니터링에 필요한 지표를 애플리케이션에 직접 심고 모니터링 대시보드를 통해서 확인하는 방법을 설명합니다. 마이크로미터라는 편리한 툴을 통해서 애노테이션 하나로 추적하고 싶은 비즈니스 로직의 호출 수, 평균 실행 시간, 최대 실행 시간을 측정하는 방법도 알아봅니다. 그리고 실무에서 올바르게 모니터링 하는 방법도 알려드립니다.

 

댓글