Thumbnail
BEST
개발 · 프로그래밍 백엔드

스프링 시큐리티 대시보드

(4.7)
209개의 수강평 ∙  3,769명의 수강생
공개되지 않은 강의로
수강이 제한됩니다.
지식공유자: 정수원
총 64개 수업 (20시간 58분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변: 미제공
정수원 프로필
자바 동시성 프로그래밍(Java Concurrency Programming) 강좌를 곧 오픈 합니다.
정수원 5달 전 (5달 전 수정됨)

안녕하세요.  지식공유자 정수원입니다. ^^

저의 강의를 사랑해 주시고 힘이 되어 주시는 수강생분들께 이제 곧 오픈 예정인 새로운 강좌 관련 소식을 전해 드리고자 합니다.

이번에 오픈 할 강좌는

자바 동시성 프로그래밍(Java Concurrency Programming)
(부제: 리액티브 프로그래밍 Part.1)

입니다.

자바의 동시성 프로그래밍은 자바의 여러 기술 중에서도 어렵고 복잡하며 진입장벽이 높은 영역이라 할 수 있습니다.

하지만 현대 소프트웨어 개발에서 멀티스레드 및 동시성 개발 영역은 시스템의 규모가 거대해지고 기술이 발달할수록 더욱 중요한 요소로 떠오르고 있습니다.

그래서 백엔드 개발자라면 반드시 동시성 프로그래밍은 넘어야 할 산이며 자신의 역량을 한 단계 더 끌어올기 위해 필수적으로 거쳐야 할 관문 이라 할 수 있습니다.

이번 강의는 앞으로 제작될 예정인 리액티브 프로그래밍 로드맵에 포함되어 있는 첫 번째 시리즈 강의이며 스프링의 웹 플럭스와 같은 비동기 논블록킹 개념을 깊고 정확하게 이해하기 위한 중요한 기초와 기본을 다지는 밑거름이 될 것입니다. 

아무쪼록 이번 자바 동시성 프로그래밍 강의가 여러분들께 동시성 프로그래밍의 세계로 안내하는 좋은 길잡이가 될 수 있기를 바라겠습니다.

오픈 및 강의 정보는 다음과 같습니다.

- 강의 오픈일 : 11 21 이후 ~ 28 정도로 예상
- 강의 명: 자바 동시성 프로그래밍 - 리액티브 프로그래밍 Part.1
- 강의 : 80
- 강의 자료 PPT: 420

이번 강의에서 다루는 내용은 다음과 같습니다.

섹션 1. 운영 체제 기본
운영 체제의 기본 원리와 멀티태스킹, 프로세스와 스레드의 차이점을 학습합니다. 
또한 Parallel & Concurrent, Context Switch, CPU Bound & I/O Bound, 사용자 모드 & 커널 모드 등 핵심적인 운영 체제 개념을 통해 동시성 프로그래밍의 기초를 이해하고, 스케줄링의 기본 원칙을 배웁니다

섹션 2. Java Thread Fundamentals - 스레드 생성 및 실행 구조
자바에서 스레드를 생성, 실행, 종료 방법을 자세히 배웁니다. 스레드의 생명주기를 각 상태별로 시뮬레이션 하면서 각 상태마다 어떤 특징과 실행흐름으로 가지고 있는지 단계별로 학습합니다.

섹션 3. Java Thread Fundamentals - 스레드 기본 API
자바의 스레드 관련 API에 대한 심층적인 개념과 구조를 설명합니다. 
sleep, join, interrupt, priority 등 멀티스레드 구현에 있어 반드시 알아야 할 개념과 네이티브 메서드 실행에 의한 JVM 과 OS 간 연결 구조 및 흐름에 대해 심도있게 학습합니다.

섹션 4. Java Thread Fundamentals - 스레드 활용
실제 프로젝트에서 스레드를 효과적으로 사용하는 방법을 배웁니다.
중단 및 복구 등의 주제를 다루며, 스레드 그룹과 스레드 로컬, 스레드 예외처리 등에 대해 학습합니다.

섹션 5. Synchronization Fundamentals - 동기화 개념
동기화의 기본 개념과 멀티스레딩 환경에서의 중요성을 깊이 있게 학습합니다.
동기화와 CPU 와의 관계, Critical Seciton, 안저한 스레드 구성 등 동기화 기법을 이해하기 위한 기초적인 개념을 심도있게 학습합니다.

섹션 6. Synchronization Fundamentals - 동기화 기법
동기화의 다양한 기법과 그 적용 방법을 심층적으로 다룹니다.
동기화 기법인 뮤텍스, 세마포어, 모니터, Spin Lock 등 락의 개념과 동기화를 사용한 데이터 보호 및 일관성 유지 전략을 배웁니다.

섹션 7. Java Synchronization
자바에서 제공하는 동기화 메커니즘을 심층적으로 학습합니다.
Synchronized 의 개념, 조건 변수, volatile, 교착상태 등을 포함하여 자바에서 제공하는 다양한 동기화 메커니즘을 다룹니다.

섹션 8. Java Locks
자바의 락(Lock) 인터페이스와 다양한 형태의 클래스들을 알아보고 Lock 사용법 및 Lock 을 통한 동기화 문제를 해결하는 방법을 학습합니다. 
특히 쓰기락과 읽기락의 특징과 장단점 등을 살펴보고 락의 조건변수 활용법과 실무 예제를 통한 정확한 사용방법을 익힐 수 있도록 합니다.

섹션 9. Java 동기화 도구
자바에서 제공하는 다양한 동기화 도구들을 학습합니다. 
Atomic Variables (단일연산변수), Atomic * FieldUpdater(단일연산필드업데이트), 카운트다운 래치, 사이클릭 배리어 등의 도구를 사용한 실질적인 적용 방법을 학습합니다

.섹션 10. 자바 동시성 프레임워크
자바에서 제공하는 Executor, ExecutorService 및 Executors 클래스들의 개념과 특징을 이해하고 스레드 풀을 사용하여 멀티스레드 애플리케이션을 효율적으로 관리하고 최적화하는 방법을 배웁니다. 
또한 Future 인터페이스를 통해 비동기 작업의 결과를 어떻게 처리하고 관리하는지에 대한 실무적인 지식을 제공합니다. 
이러한 개념들을 실제 사례와 실습을 통해 적용함으로써, 복잡한 동시성 문제를 해결하고, 응답성과 성능이 우수한 자바 애플리케이션을 개발할 수 있게 됩니다.

섹션 11. ThreadPoolExecutor
ThreadPoolExecutor의 원리와 사용 방법을 자세히 배웁니다. 
이 섹션에서는 스레드 풀의 생성, 관리, 최적화 방법을 다루며, 스레드 풀을 사용한 효율적인 리소스 관리와 예외 처리 관리 방법 등에 대해 학습하며 전체 아키텍처와 흐름도에 대해 살펴 봅니다

섹션 12: CompletableFuture
자바의 비동기 프로그래밍 기능인 CompletableFuture에 대해 깊이 있게 다룹니다. 
자바 8에서 도입된 이 강력한 클래스를 통해, 비동기 프로그래밍의 기본 개념부터 시작하여, 실제 작업 흐름을 구성하고 관리하는 방법을 배울 수 있습니다. 
각 세션은 CompletableFuture의 다양한 메서드와 사용 사례를 상세히 설명하며, 예외 처리, 결과 조합, 그리고 비동기 작업 연쇄 등에 대한 실용적인 기법들을 학습합니다.

다른 댓글 보기(11)
정수원 프로필
스프링 시큐리니 OAuth2 강의가 새롭게 오픈했습니다.~~!!
정수원 2022.10.17

안녕하세요^^

스프링 시큐리티 OAuth2 (Spring Boot 기반으로 개발하는 Spring Security OAuth2)

강좌가 드디어 오픈되었습니다

예상보다 다소 늦어졌지만 오픈 소식이 더 기쁩니다^^

오픈 기념으로 새 강의 포함하여 저의 모든 강의를 30% 할인 이벤트가 진행중이오니 할인된 가격으로 수강하시길 바랍니다.

이번 스프링 시큐리티 OAuth2 강좌는 인터넷 표준으로 지정된 OAuth 2.0 의 기술을 다루고 있습니다.

이 강좌를 완강하신 후에는 OAuth 2.0 의 기본적인 기술 뿐 아니라 OAuth 2.0 기술을 활용하여 더욱 확장된 기능을 구현할 수 있는 역량을 기르는데 중점을 두었다고 할 수 있습니다.

OAuth 2.0 기술을 활용한 어플리케이션 개발에 관심이 있거나 실무적으로 현업에서 프로젝트를 진행하는 모든 수강생 여러분들에게 이 강좌가 도움이 될 수 있기를 진심을 바랍니다

감사합니다.

다른 댓글 보기(4)
정수원 프로필
스프링 시큐리티 OAuth2 강의가 곧 오픈 됩니다~
정수원 2022.10.04

안녕하세요. ^^

스프링 시큐리티 OAuth2 강의가 곧 오픈 예정에 있습니다.

스프링 시큐리티 1편 강의에 이은 2편 강의라고 할 수 있습니다.

공통분모가 존재하기는 하지만 주제는 확연히 다르고 1편강의의 사전 지식을 필요로 합니다.


강의를 제작하면서 매번 느끼는 거지만 이번 강의 역시 처음 설계했던 것 보다 많은 시간과 에너지가 소요된 것 같습니다. 거의 1년만에 세상에 출시가 되네요~~
열심히 준비한만큼 이번 강의가 수강생분들 모두에게 좋은 결실로 다가갔으면 좋겠습니다.

오픈 예정일은 10 월 14 ~ 16 일경 정도 예상하고 있습니다.

 - 강의명: 스프링 시큐리티 OAuth2
 - 강의 수: 110강 내외
 - 강의 자료 PPT: 420장

이번 강의에서 다루는 내용은 다음과 같습니다.

1. 스프링 시큐리티 OAuth2 핵심 이해

OAuth2.0 표준 기술과 이를 바탕으로 하여 스프링 시큐리티 OAuth2 의 핵심 개념인 OAuth2 Client, Resource Server, Authorization Server 의 세가지 축을 중심으로 강의가 진행됩니다.

1) OAuth 2.0 Authorization Framework
RFC 표준 기술인 OAuth 2.0 인가 프레임워크의 전반적인 개념과 원리, 구조 등의 내용을 살펴봅니다.
스프링 시큐리티 OAuth2 의 본격적인 기술을 학습하기 앞서 OAuth 2.0 의 표준 기술에 대한 기초와 기본적인 이론을 먼저 이해하고 실습을 통해 정확한 개념을 숙지함으로서 스프링 시큐리티 OAuth2 의 내용을 어려움 없이 따라 갈 수 있도록 합니다.

2) OAuth2 Client
 OAuth 2.0 의 클라이언트 모듈로서 클라이언트에서 인가 서버와 연동할 수 있는 여러 유형의 권한 부여 타입과 요청 API를 소개하며 인가서버로부터 발급받은 토큰을 사용하여 리소스 서버로의 접근제어를 어떻게 구현하는가에 대한 내용을 학습합니다.
또한 구글, 페이스북, 깃헙, 네이버 , 카카오 등 OAuth 2.0 Authorization Server 서비스 제공자와의 연동을 통해 소셜 로그인 기능을 구현하는 방법을 소개합니다.
그리고 인증 프로토콜인 OpenID Connect 를 소개하며 인증 처리를 위한 다양한 옵션 설정방법과 흐름을 이해합니다.

3) OAuth2 Resource Server
사용자의 자원을 보호하고 있는 서버로서 API 서버 로서의 역할을 하게 됩니다.
리소스 서버가 자원을 보호하는 방법을 살펴보고 Access Token 을 포함한 요청에 대해서 토큰의 유효성을 검증하는 방법과 권한체계를 제어하는 흐름에 대해 학습합니다.

OAuth2 서비스 제공자에서 발급하는 Access Token 이 JWT 포맷으로 생성된 토큰일 경우 Scope(범위) 를 추출하는 내용을 살펴보고 리소스 서버에서 Access Token 에 포함된 Scope 를 분석하여 권한여부를 어떻게 판별하는지 내용을 학습합니다.

4) OAuth2 Authorization Server 
시중에는 오픈 소스를 포함한 다양한 Authorization Server 상용 제품 및 서비스가 있습니다.
이러한 이유로 스프링 시큐리티 개발팀에서 Authorization Server 프레임워크 프로젝트를 중단하기도 했지만 수많은 개발자들의 빗발치는 요청으로 Authorization Server 프로젝트가 완전히 새로운 설계로 다시금 탄생했습니다.
본 강좌에서는 새로운 아키텍처로 재 탄생한 Authorization Server 프로젝트를 기준으로 강의를 제작했으며 OAuth2 Client 와 Resource Server 와의 연동을 통한 인가서버로서의 기능에 대한 상세한 내용을 살펴보며  자체적으로 인가서버를 구축하여 서비스할 수 있는 지식을 갖추도록 하는데 중점을 두었습니다.

Authorization Server 기능을 처리하는 주요 클래스를 알아보고 커스트마이징 할 수 있는 방법을 알아봅니다.
또한 OAuth 2.0 표준 엔드포인트에 대한 사양을 살펴보고 각 엔드포인트마다 설정된 필터들의 구조와 처리과정을 학습합니다.

2. 학습 커리큘럼

Spring Security Fundamentals
스프링 시큐리티의 핵심 기초를 살펴봅니다.
초기화 과정에 대한 자세한 내용과 원리를 알아보고 HttpBasic, Cors 와 같은 요소을 다루게 됩니다.

OAuth 2.0 Authorization Framework
OAuth 2.0 표준 기술에 대한 상세 사양에 대해 학습합니다.
OAuth 2.0 에서 표현되는 다양한 용어를 먼저 이해하고 권한부여 흐름의 타입에 대한 개념 정리와 keycloak 오픈 소스를 활용해 인가 프레임워크의 전반적인 흐름을 이해합니다.

OAuth 2.0 Client - oauth2Login()
클라이언트 앱의 기능을 자동화하며 권한부여 흐름의 타입인 Authorization Code 방식으로 인가서버와의 연동방법을 학습하며 사용자 승인과 승인 이후 Access Token 을 받아와 인증/인가 처리에 이르기까지의 전 과정을 살펴보고 내부구조에 대해 학습하게 됩니다.

OAuth 2.0 Client - oauth2Client()
oauth2Login() API 에서 제공하는 권한부여 흐름의 타입인 Authorization Code 외에 Resource Owner Password 와 Client Credentials 타입으로 인가서버와 연동하는 방법을 살펴보며 DefaultOAuth2AuthorizedClientManager, @RegisteredOAuth2AuthorizedClient 의 사용방법을 알아보고 이를 통해 클라이언트 권한부여 흐름을 이해합니다.

OAuth 2.0 Client - OAuth 2.0 Social Login
OAuth2 서비스 제공자로 구글, 페이스북, 깃헙, 네이버, 카카오 등이 있는데 이중 구글, 네이버, 키클록으르 사용하여 로그인 인증하는 방식과 인증 이후 후속처리에 대한 구현방법을 살펴봅니다.

OAuth 2.0 Resource Server API - jwt()
리소스 서버를 구성하는 방법과 Access Token 요청을 처리하는 JwtDecoder 의 기능을 살펴보고 토큰 검증의 성공이후 생성되는 인증관련 객체의 구조와 사용방법을 학습합니다.
또한 Access Token 의 유효성을 검증할 때 사용되는 MAC & RSA 알고리즘 방식이 무엇이며 어떤 처리절차에 의해 검증이 이루어지는지 살펴봅니다.

OAuth 2.0 Resource Server - 리소스 서버 권한 구현
Access Token 요청을 처리하는 필터와 JwtDecoder 에 의해 추출된 Scope 를 권한으로 변환하고 변환된 권한으로 자원의 접근여부를 제어하는 방법에 대해 학습합니다.

OAuth 2.0 Resource Server - opaque()
원격 토큰 검사 프로세스로서 Access Token 의 활성화 여부를 인가서버와 직접 통신하여 알아보는 방법을 학습합니다.

Spring Authorization Server - 주요 도메인 클래스
인가서버를 구성하는 주요 도메인 클래스의 종류와 개념, 역할 등을 학습하며 이 클래스들이 스프링 MVC 에서 어떤 방식으로 참조 및 활용이 가능한지 학습합니다.

Spring Authorization Server - 엔드포인트 프로토콜
인가서버의 핵심기능인 여러 유형의 엔드포인트 프로토콜에 대해 학습합니다.
권한 부여 요청을 시작한 엔드포인트 부터 사용자 정보를 요청하는 엔드포인트까지의 전 과정을 도식과 흐름을 통해 자세하게 살펴보게 됩니다.

OAuth 2.0 Client + Resource Server + Authorization Server 연동
스프링 시큐리티에서 제공하는 각 OAuth2 의 모듈들을 연계 및 연동하는 방법을 알아보고 이를 통해 OAuth2 서비스 제공자로서의 기능을 수행하는 구체적인 항목들을 예제를 통해 살펴보게 됩니다.

3. 아키텍처/흐름/원리 이해

스프링 프레임워크 프로젝트 가운데 스프링 시큐리티는 기술 아키텍처, 동작원리, 흐름 이해 등의 내부 소스 레벨의 구현에 대한 전반적인 이해가 굉장히 중요합니다.

주어진 API 위주로 사용하다가 예기치 못한 오류나 이슈상황에 부딪치게 되면 구글 검색해서 해결방안을 찾게 되지만 스프링 시큐리티 OAuth2 에 관한 자료들이 많지 않고 대부분 비슷한 사례들이 반복해서 나오는 수준이기 때문에 스프링 시큐리티 OAuth2 의 내부 구조와 동작원리를 정확하게 이해하지 못하거나 분석이 되지 못한다면 서비스 운영에 많은 어려움을 겪게 됩니다.

그렇기 때문에 본 강좌에서는 다양한 도식 및 Flow 와 디버깅을 통한 정확하고 상세한 설명을 통해 단순한 API 사용법과 기능 예제를 넘어 스프링 시큐리티 OAuth2 의 구조와 흐름을 완전분석하고 이해함으로서 어떤 상황에서도 유연한 대처가 가능한 지식을 갖추도록 하는데 중점을 두고 있으며 본 강사가 개설한 강의들의 패턴 및 공통적인 특징이라 할 수 있습니다.

다른 댓글 보기(14)
정수원 프로필
스프링 배치 (Spring Boot 기반으로 개발하는 Spring Batch) 강좌를 오픈하였습니다.!!~~
정수원 2021.10.08

안녕하세요  

스프링 배치 (Spring Boot 기반으로 개발하는 Spring Batch)

강좌가 오픈되었습니다

예상보다 다소 늦어졌지만 오픈 소식이 더 기쁩니다^^

오픈 기념으로 30% 할인 이벤트가 진행중이오니 할인된 가격으로 수강하시길 바랍니다.

이번 스프링 배치 강좌는 스프링 배치의  Fundamental 에 역점을 두고 강의를 준비하였습니다.

즉 물고기를 잡는 방법에 대해 많은 시간을 할애하였습니다.

그래서 이 강좌를 완강하신 후에는 스프링 배치의 기본적인 기술 뿐 아니라 스프링 배치의 기술을 활용하여

더욱 확장된 기능을 구현할 수 있는 역량을 기르는데 중점을 두었다고 할 수 있습니다.

아무쪼록 배치 어플리케이션 개발에 관심이 있거나 실무적으로 현업에서 프로젝트를 진행하는 모든 수강생 여러분들에게 이 강좌가 도움이 될 수 있기를 진심을 바래 봅니다.

감사합니다.

 

정수원 프로필
스프링 배치 강좌 두 번째 오픈 공지 드립니다.
정수원 2021.09.24

[정수원] 스프링 배치(Spring Boot 기반으로개발하는 Spring Batch)

안녕하세요. 여러분

스프링 배치 강좌가 곧 오픈합니다.

  • 제목: 스프링 배치(Spring Boot 기반으로 개발하는 Spring Batch)
  • 강의 수: 108개 
  • 강의 자료 : 약 400 개 ppt 화면
  • 강의 시간 : 약 45 시간

강의 목표

 

이번 스프링 배치 강좌는 초급에서 중.고급에 이르기까지 스프링 배치의 기본 개념부터 API 사용법과 내부 아키텍처 구조를 심도있게 다룹니다. 그리고 스프링 배치 각 기능의 흐름과 원리를 학습하게 되고 이를 바탕으로 다양한 배치 어플리케이션 개발을 위한 실무적 감각을 익히게 됩니다.

 

 

강의 주제

  • 스프링 배치 핵심 도메인 이해
    • 각 도메인들의 용어적 개념과 도메인들간의 관계를 이해함으로써 간단한 Job부터 복잡한 Job 까지 원하는 Job 을 체계적으로 구성하는 방법을 익히게 됩니다.
  • 스프링 배치 Job, Step, Flow 이해 및 API 활용
    • Job 과 Step 의 여러 유형들에 대해 살펴보고 Job, Step, Flow 를 조합하여 배치잡을 구성하는 방법을 학습함으로서 스프링 배치의 가장 기본이 되는 Job 의 구성 및 활용을 자유자재로 구현할 수 있는 능력을 기르게 됩니다.

  • 스프링 배치 Chunk 기반 프로세스 이해 및 활용
    • 청크 기반 프로세싱의 기본적인 개념과 원리를 학습하고 내부 아키텍처까지 파악합니다.
    • 그리고 다양한 예제를 통해 청크 기반 프로세싱을 통한 데이터 처리의 활용법을 정복하게 됩니다

  • 스프링 배치 예외 및 오류 제어
    • 내결함성을 가진 배치 어플리케이션을 어떻게 구성할 수 있는지 학습하게 됩니다.
    • 이와 관련된 기술인 Skip 과 Retry 기능에 대한 자세한 내용과 실습을 진행합니다

  • 스프링 배치 멀티 스레드 프로세싱 이해 및 활용
    • 자바의 스레드 모델에 대한 기본적인 개념과 스프링 배치에서 제공하는 멀티 스레드 관련된 기술들을 먼저 이해하고 여러 멀티 스레드 유형의 배치처리 기술들을 익히게 됩니다

  • 스프링 배치 이벤트 리스너 다루기
    • 리스너 개념과 리스너 생성, 등록, 활용등의 내용을 학습합니다.
  • 스프링 배치 TDD 및 운영 API 활용
    • 스프링 배치에서 TDD 환경을 구성하는 방법과 활용에 대해서 학습하고 배치의 실시간적 시작, 중단, 재시작을 위한 클래스들에 대해 학습합니다.
  • 스프링 배치 실전 프로젝트
    • 강좌에서 학습한 내용을 바탕으로 실전에서 응용할 수 있는 프로젝트 예제를 만들어 봅니다.
      이로써 다양한 배치 어플리케이션을 구축하는데 각 기능과 기술적인 내용을 실무적인 관점에서 바라보는 능력을 키우게 됩니다.

 

감사합니다.

다른 댓글 보기(7)
정수원 프로필
스프링 배치 강좌가 곧 오픈 됩니다.
정수원 2021.08.24

안녕하세요 

새로운 강좌가 곧 오픈 예정에 있습니다.

강의 주제는 스프링 배치 (스프링 부트 기반으로 개발하는 스프링 배치) 입니다.

예정된 계획보다 다소 늦게 오픈되지만 그만큼 좋은 내용으로 여러분들께 제공하고자 노력했습니다.

예상 일정은 9월 중순경으로 보고 있습니다.

아무쪼록 이 강좌를 수강하시는 모든 분들에게 유익하고 도움이 되어지길 진심으로 바라겠습니다.

조금만 더 기다려 주십시오

감사합니다.^^

다른 댓글 보기(9)