김영한の実戦データベース - 基本編
yh
実務に必ず必要なSQLとデータベースの基本を学習します。 開発者だけでなく、企画者やデータアナリストの方々も、SQLを深く学習します。
초급
SQL, MySQL, DBMS/RDBMS
스프링 부트의 내부 동작 원리
스프링 부트 라이브러리 만들기
스프링 부트가 제공하는 핵심 기능 이해
스프링 부트를 활용한 모니터링
백엔드 개발자를 위한 스프링 부트 끝판왕!
실무에 필요한 내용을 모두 담았습니다.
🚩 본 강의는 "김영한의 스프링 완전 정복 시리즈" 마지막 강의입니다. 스프링이 처음이신 분께서는 수강 전 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 로드맵을 먼저 확인해주세요. (로드맵 바로가기)
스프링 프레임워크는 지난 20년 동안 발전해온 매우 거대한 기술입니다.
실무에서 발생하는 대부분의 기술 문제를 해결하고 높은 안정성과 유연성을 제공합니다. 그래서 자바를 사용하는 대부분의 메이저 회사는 스프링을 사용합니다. 스프링은 자바 진영에서 사용되는 사실상 표준 기술입니다.
그런데 스프링 프레임워크는 기능도 너무 많고 광범위해서 어디서부터 어떻게 시작해야 할지 막막합니다.
또 너무 많은 유연성을 제공해서, 어떤 기술들을 함께 사용해야 할지 선택하기 어렵습니다. 기능이 점점 증가하면서 더 많은 설정들이 필요해지기 시작했습니다. 그래서 많은 개발자들이 스프링은 무겁고 불편하다고 느끼기 시작했습니다.
스프링 부트(Spring Boot)는 이름 그대로 부트(Boot)에서 시작합니다. 스프링 부트는 스프링을 매우 쉽고 편리하게 시작할 수 있도록 도와주는 기술로, 개발자에게 수많은 편의 기능을 제공합니다. 스프링 부트의 등장으로 거대하고 불편하게만 느껴졌던 스프링을 매우 쉽고 편리하게 시작할 수 있게 되었습니다.
이제 스프링으로 진행하는 대부분의 프로젝트는 스프링 부트를 필수로 사용합니다. 스프링 기술은 스프링 부트의 등장으로 비로소 완성되었습니다.
스프링 부트는 5가지 핵심 기능을 제공하여 스프링 프레임워크를 편리하게 사용하도록 도와줍니다. 이번 강의 역시 이 5가지 핵심 기능에 집중합니다.
01
내장 서버
별도의 서버를 설치할 필요 없이 손쉽게 웹 애플리케이션을 개발하고 배포할 수 있습니다.
02
자동 라이브러리 관리
수많은 라이브러리를 베스트 프랙티스 기반으로 자동으로 선택하고 관리함으로써 프로젝트를 쉽고 빠르게 시작할 수 있습니다.
03
자동 구성
복잡한 스프링 설정을 자동화함으로써 개발자들이 쉽고 빠르게 애플리케이션을 개발할 수 있습니다.
04
외부 설정
애플리케이션을 개발 환경 ↔ 운영 환경처럼 서로 다른 환경에서 사용할 때 필요한 외부 설정값을 편리하게 조회할 수 있습니다.
05
모니터링 & 관리 기능
애플리케이션의 수많은 지표들을 자동으로 수집/모니터링/관리할 수 있는 기능을 제공합니다.
스프링 기술을 더욱 강력하게
5가지 스프링 부트 핵심 기능 마스터
실무에서 꼭 사용하는 스프링 부트의 핵심 기능을 예제 코드를 통해 익힐 수 있도록 알려드립니다.
실무에 필요한 스프링 부트를 강의 하나로 모두 정리해드립니다.
스프링 부트는 매우 편리하지만 너무 다양한 기능을 제공합니다. 무작정 넓게 배워도 안되고, 또 너무 깊이있게 들어가도 실무에 크게 도움이 되지 않습니다. 그래서 실무에서 중요하게 생각하는 핵심 원리와 자주 사용하는 기능을 예제 코드를 통해서 자연스럽게 이해할 수 있도록 강의를 준비했습니다.
크게 중요하지 않거나 실무에서 자주 사용하지 않는 기능은 과감하게 제외했습니다. 그리고 많은 분들이 궁금해하시는 스프링 부트를 활용한 효과적인 모니터링 방법도 함께 포함했습니다.
예제 코드를 통해 자연스럽게 원리를 이해할 수 있습니다.
여러분은 예제 코드를 통해서 자연스럽게 스프링 부트의 마법 같은 원리를 이해할 수 있습니다. 이 강의는 스프링 부트가 없던 시절부터 시작합니다. 그리고 점진적으로 스프링 부트를 도입하면서 스프링 부트의 핵심 개념과 강점을 코드를 통해서 자연스럽게 이해할 수 있습니다.
백엔드 개발 실무에서 필요한 스프링 부트를 복잡한 이론 대신, 예제 코드를 구현하는 과정을 통해서 원리를 자연스럽게 이해할 수 있도록 실무 베스트 프랙티스를 전수해드립니다.
📢 주의! 스프링을 학습한 경험이 있는 분들께 적합한 과정입니다.
💡 스프링 부트를 코드를 통해 쉬우면서도 깊이있게 이해하고 싶은 백엔드 개발자 및 취업 준비생을 위한 강의입니다. 뿐만 아니라 이미 실무에서 스프링 부트를 사용하고 있지만 스프링 부트의 핵심 원리를 제대로 이해하며 사용하고 싶은 분들께도 도움이 되는 내용으로 구성되어 있습니다.
스프링 부트가 등장한 이유와 스프링 부트 전반에 대해서 소개합니다.
오랜 과거로 돌아가서 톰캣 같은 웹 서버를 직접 설치하고 웹 애플리케이션을 WAR 파일로 빌드해서 배포하는 방법부터, 지금처럼 스프링 부트와 내장 톰캣을 사용해서 JAR 파일 하나로 편리하게 웹 서버를 사용하는 방법을 단계별로 설명합니다. 어떤 이유로 이렇게 발전해왔는지 이해하고, 그 과정 속에서 자연스럽게 스프링 부트의 내장 서버가 어떻게 동작하는지 원리를 이해하게 됩니다.
다양한 라이브러리들을 직접 선택하고 관리하는 방법의 어려움을 알아보고, 스프링 부트가 이런 문제점을 어떻게 해결하는지 알아봅니다. 그리고 스프링 부트 스타터 라이브러리에 대해서도 알아봅니다.
스프링 부트는 수많은 기능을 자동화합니다. 가장 대표적인 기능이 바로 자동 구성(Auto Configuration) 입니다. 이 기능 덕분에 개발자는 수많은 스프링 빈들을 직접 등록하지 않아도 됩니다. 하지만 어떤 원리로 자동 구성이 되는지 이해하지 못하면 스프링 부트를 사용하다 문제가 발생했을 때 근본적인 문제를 해결하기 어렵습니다.
강의에서는 스프링 부트의 핵심 기능이라 할 수 있는 자동 구성의 원리를 예제를 통해 손쉽게 이해할 수 있습니다. 그리고 이러한 자동 구성을 직접 만들어서 제공하는 방법도 알아봅니다.
스프링 부트 없이 직접 외부 설정을 사용하는 방법부터 시작합니다. (OS 환경변수, 자바 시스템 속성, 커맨드 라인 인수 등) 그리고 이렇게 직접 외부 설정을 사용할 때 발생하는 문제점들을 알아보고, 스프링 부트가 이런 문제점들을 어떻게 해결하는지 단계별로 하나하나 학습합니다. 더 나아가서 Environment, @Value, @ConfigurationProperties의 등장 이유와 활용법도 예제를 통해 학습합니다.
실제 운영 환경에서 서비스를 운영하려면 단순 기능 요구사항을 넘어 애플리케이션을 모니터링하는 부분이 매우 중요합니다. 스프링 부트 액츄에이터가 제공하는 다양한 기능 및 모니터링 기능을 학습합니다.
“전투에서 실패한 지휘관은 용서할 수 있지만 경계에서 실패하는 지휘관은 용서할 수 없다”는 말이 있습니다. 이 말을 서비스를 운영하는 개발자에게 비춰 보면 장애는 언제든지 발생할 수 있더라도 그만큼 모니터링을 잘 해야 한다는 뜻입니다.
최근 실무에서 주로 많이 사용하는 모니터링 툴인 프로메테우스와 그라파나를 활용해 어떻게 모니터링 환경을 구축하는지 설명합니다. 이렇게 구축한 모니터링 환경에서 실제 CPU, 메모리, DB 커넥션 사용을 늘려가면서 모니터링 툴을 통해 문제를 파악하는 방법도 알아봅니다.
모니터링에 필요한 지표를 애플리케이션에 직접 심고 모니터링 대시보드를 통해서 확인하는 방법을 설명합니다. 마이크로미터라는 편리한 툴을 통해서 애노테이션 하나로 추적하고 싶은 비즈니스 로직의 호출 수, 평균 실행 시간, 최대 실행 시간을 측정하는 방법도 알아봅니다. 그리고 실무에서 올바르게 모니터링 하는 방법도 알려드립니다.
이 강의는 "스프링 완전 정복 시리즈"를 끝맺는 마지막 강의입니다. 본 로드맵은 스프링 정복을 목표로 하는 자바 백엔드 개발자를 대상으로 실제 실무에 쓰이는 스프링의 핵심을 완전히 마스터 할 수 있도록 하는 것을 목표로 합니다.
"스프링 완전 정복 시리즈"를 모두 끝마치신 분들께는 최신 실무 기술로 웹 애플리케이션을 만들어보면서 학습할 수 있는 "스프링 부트와 JPA 실무 완전 정복 로드맵"을 추천합니다.
강의 목록
학습 대상은
누구일까요?
스프링 부트를 깊이있게 이해하고 싶은 개발자
스프링 부트를 코드로 쉽게 이해하고 싶은 개발자
개발자 취업 준비생
실무에서 스프링 부트를 사용하지만 스프링 부트의 핵심 원리를 제대로 이해하고 사용하고 싶은 개발자
선수 지식,
필요할까요?
자바 언어
스프링 학습 경험
552,455
명
수강생
36,040
개
수강평
8,948
개
답변
5.0
점
강의 평점
24
개
강의
교육자
전: 우아한형제들 기술이사, 카카오, SK플래닛
진짜 실무에 필요한 제대로 된 개발자가 될 수 있도록, 교육하는 것이 저의 목표입니다.
EO 인터뷰 영상
개발바닥 - 시골 청년 개발왕 되다
전체
107개 ∙ (15시간 45분)
해당 강의에서 제공:
5. 스프링 프레임워크의 등장
13:59
6. 스프링 부트의 등장
16:08
7. 웹 서버와 스프링 부트 소개
06:27
8. 톰캣 설치
04:49
9. 프로젝트 설정
06:31
10. WAR 빌드와 배포
11:30
13. 서블릿 컨테이너 초기화1
07:33
14. 서블릿 컨테이너 초기화2
20:01
15. 스프링 컨테이너 등록
13:29
17. 정리
04:58
전체
414개
5.0
414개의 수강평
수강평 9
∙
평균 평점 5.0
5
私は初めてnode.js開発者として就職し、1年間ブラック企業で最大3ヶ月まで月給も押され、夕方、週末することなく酷使された。結局、健康に問題が生じて休むことになり、残りの選択肢で溶接学院に入って溶接技術を学ぶか、市場がもっと広いJava/Spring開発者に転向するかという気路で本当に最後だと思うとともに、ヤングハン様のスプリング講義を申請と受講しました。 その過程でお金がなかったので、一週間にラーメンを何個ずつ分けて食べればいいかを悩んで約8ヶ月以上勉強しながら講義を受講し、現在はそれなりの中堅ITサービス企業に入社して製法時間が過ぎました。 ヨンハン様の講義のおかげでしっかり基礎を築くことができ、現在は会社でそれなりに認められるスタッフに成長し、チームでも信頼できる開発者に成長しました。 (個人的に福祉や年俸より良いのは、現在ではない未来を眺めながら暮らせるようになった点が一番良くないかと思いますwww) 毎講義ごとに初心者の立場で深く考えなければ出られない段階別の手順や文書資料に感動を感じる時が多かったです。今の英韓様講義たちが私にそうしたように、今後もその時代の私のように迷子になって悩む人々に手を差し出せる講義を作っていただければと思います。ありがとうございます!
xellos 残してくれた受講評を10回以上読んでみました。 過去の私と似た話なので心にたくさん残りますね。 これまで本当に優れた新入社員の中で就職を準備しながら、8ヶ月という時間を本当に凝集力を持って使用された方々を見てきました。 xellosさんもそんな方の中に一人でしょう。 年齢と経験を離れて自分の人生で8ヶ月という長い瞬間を凝集力を込めて没頭して生き出すこと自体が本当に尊敬する部分だと思います。 結局、他の誰かの数年以上の価値のある8ヶ月の時間を過ごしたでしょう。 xellos様 そんな時間を過ごしていただき、また私を信じて一緒にいただきありがとうございます。 xellosは今始まります。いつも技術的謙遜さを持って成長することを応援します。 私もこれまで私が経験して積み重ねてきた知識と知恵を分かち合い、より多くの開発者の方々がうまく成長できるように貢献します。 ありがとうございます。
수강평 17
∙
평균 평점 4.8
5
講義が発売されるやいなや購入し、三日休の時間まで動員して全講義を全部見ました。 すでに知っている部分もあり、新しく会う部分もあり、楽しい時間でした。 一般的なビデオ講義を見ると、文脈や流れなしで〜〜こうだ〜と見せて終わる場合が多いのに 以前は(地獄仏半島)こうしていましたが、途中でコースがありました。 良い代替案として、現在は〜〜そうだ〜〜と見せるのに講義を見るずっと一言が多かったですね。 そうなんだ! 多くのバックエンドのスプリング開発者が、スプリングブートに対する漠然とした恐れや難しさをこの講義を通して勝てばいいと考えています。 フレームワークに対する使い方を講義する内容は多くの講師が試して出しているが、プログラム視点ではなくシステム運用観点で活用すべき部分についての詳細な内容と実習内容までコンテンツで溶かす講義はこの講義が唯一ではないか。したいです。 最近の求職発表欄を見ると、サービス運用経験~という項目が必須要素として含まれ始めていますが、まだジュニアの方はこの講義を通じて障害対応に対する間接経験をぜひ得ていきたいと思います。 長い講義で私に残ったのは、ピンポイントピンポイント...エコーが鳴ります。 インストールに行きます。みんな幸せで楽しい開発者ライフになってください。
Sang Do Parkさん13年目の開発者と言われたので、ストーリーで共感される部分が多かったと思いますㅎㅎ 今回は特にシステム運営の観点から、開発者の方々がこのようなシステム運営とモニタリング方法もあるという部分も知ってほしいと思い、後半はちょっと欲を出してみました。ただ、ほとんどはそうではない状況なので、こんな部分をぜひ一度共有して方向をつかみたいと思いました。 Sang Do Parkさんが残してくれた受講評を見たら、それでも欲を出せるようにしたと思います。
수강평 9
∙
평균 평점 4.9
5
いよいよみんな聞きましたね。いつも信じて見るキム・ヨンハン様講義本当によく聞きました。 私が在職中の会社はSIなので、ちゃんとモニタリングしてみたことがありませんでした。ただ、顧客会社で障害があった連絡が来たら、その時から直すだけだった。 ところが今回の講義を聞きながらモニタリングがどれほど重要か、そしてSpring Bootを利用すればモニタリングをどれだけ簡単に扱えるかが分かってよかったです。これは実務に適用しようと思います。 "次に"チャプターでやった話が私にはたくさん来ますね。 メジャーサービス会社に引っ越したい3年次SIバックエンドジュニア開発者として悩みが多いんですよ。 一生懸命勉強はしていますが、いちいち実務ではやった開発(主にCRUD)を繰り返しているため、履歴書に使える内容はありません。履歴書に何を書きたくても作業していた内容が "アドミンページを開発した", "自動配布スクリプトを製作した"こういうことしかないので書くことができません。それなりに性能改善をしたことを書いてみても、これが果たして履歴に使えるのかも疑問がある場合が多いです。同時に、もうわずか2年3ヶ月になったジュニア開発者だけですが、私があまりにも多くを期待しているかと思います。私がネカラク船に行ってから2年3ヶ月が過ぎたら、何かすごいキャリアを積んだのでしょうか? このような考えをしてみると、残るのは悩みだけで、退勤してから勉強しても積み重ねるのはまた心配だけです。 3年目のバックエンド開発者に望むレベルは代替どのくらいでしょうか? 離職失敗したくなくて死ぬように走っていますがこれを知らないので出口が見えないトンネルを走る感じです。もちろん分かっても出口がすぐ見えないでしょうが、それでも漠然とした恐れはなくなると思います。
Bada Kangさん 最初から一度に大きな目標を持つのも良いですが、持続して勉強して努力すれば実力が積み重ね続け、それを基に少しより良い環境に移動するのも良い方法です。着実に実力を積んで面接を見ながら持続的なフィードバックを受けなければ方向もより早く捕まえることができるでしょう。 次のビデオを見ると役に立ちます。 https://youtu.be/QHlyr8soUDM 応援します!
수강평 5
∙
평균 평점 4.6
5
まだ全部聞いたわけではありませんが、やはりキム・ヨンハン講師様です。 講義集中がとても上手になり講義映像も3年前に部屋の姿が出てきた映像でもう講義も固守になって 背景も削除してインストラクターだけ出てくる.. いつもありがとうございます。
オ・スンウ様一生懸命準備しましたが、やっぱりとおっしゃってくれてありがとうございます^^ 私も何度も撮影をしてみると少しずつ発展をすることになりますね。このように応援してくださっておかげで私もここまで来ることができました。誠にありがとうございます。
수강평 14
∙
평균 평점 4.4
5
まだ講義はすべて聞いていませんが、ヨンハン様講義は常にスプリングだった、JPAだった最初から次第に上がる方法で簡単に説明してくださるので、常に聞くのがとても良いです。今回の機会にブートが知ってセッティングしてくれるという概念だけ知っていた私にどのようにセッティングをしてくれ、どんな不便さに代わってくれるか確かに分かった機会でしたね! 一つ一つ簡単に説明していただくのがとても良いです!良い川のたくさん作ってください!
wnsqud70さんスプリングブートについて一つずつ知識を積み重ねながらよくお届けしたかったのですが、準備したやり方がありますね^^頑張っていただきありがとうございます。
₩99,000