스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다.

안녕하세요. 여러분
데이터베이스 설계 2편 강의가 드디어 오픈 했습니다.
오픈 기념으로 저의 모든 강의를 30% 할인합니다 🙂
제목: 김영한의 실전 데이터베이스 설계 2편 – 실무에서 반드시 마주치는 9가지 설계 패턴
<강의 내용>
설계 1편에서 데이터 모델링의 정석을 다졌다면, 이제는 현업에서 반드시 마주치게 되는 복잡하고 까다로운 요구사항들을 해결해야 할 때입니다.
실제 프로젝트 설계를 시작하면, 우리는 필연적으로 다음과 같은 난제들과 마주하게 됩니다.
공통 코드를 어떻게 설계해야 할까?
'무한 계층 구조의 카테고리, 어떻게 설계해야 조회 성능을 망치지 않을까?'
'데이터 변경 이력, 도대체 어떤 방식으로 남겨야 최선일까?'
'회원이 탈퇴하면 데이터를 바로 지워도 될까? 아니면 남겨둬야 하나?'
'통계 쿼리만 돌리면 DB가 느려지는데, 어떻게 구조를 개선해야 할까?'
'상품마다 제각각인 수많은 옵션 값들은 어떻게 저장해야 하지?'
'요즘 많이 쓴다는 JSON, 관계형 DB에는 어떻게 녹여내는 게 좋을까?'
"놀랍게도 실무에서 겪는 데이터베이스 문제는 대부분 비슷합니다. 복잡해 보이는 실무의 난제들도 결국 9가지 핵심 유형으로 귀결됩니다.
이 강의는 바로 이런 고민들에 대한 명쾌한 해답을 드립니다.
이번 강의에서는 수많은 프로젝트를 거치며 철저히 검증된 저의 실전 설계 노하우를 아낌없이 공개합니다. 막막했던 문제들을 9가지 해법으로 저와 함께 예제를 통해 하나씩 정복해 봅시다.
이 강의를 통해 여러분은 실무 현장에서 바로 사용하게 될 '9가지 핵심 설계 패턴'을 완벽하게 마스터하게 됩니다.
공통 코드 설계: 시스템의 표준과 확장을 책임지는 견고한 코드 관리 체계
계층 구조 설계: 카테고리, 조직도 같은 복잡한 트리 구조를 효율적으로 처리하는 모델링
데이터 변경 추적: 누가, 언제, 무엇을 변경했는지 기록하는 전략
데이터 변경 이력: 데이터의 과거 상태를 보존하고 시점별로 조회하는 이력 관리 패턴
SOFT DELETE: 데이터의 복구 가능성과 무결성을 보장하는 논리적 삭제 기법
통계 테이블 설계: 대용량 데이터 환경에서도 성능 저하 없는 고속 집계 전략
상속 관계 설계: 부모, 자식 구조를 관계형 DB에서 사용하는 전략
동적 설계 (EAV):상품 옵션처럼 수시로 변하는 속성을 유연하게 수용하는 설계
JSON 데이터 설계: NoSQL의 유연함을 관계형 데이터베이스에 녹여내는 현대적인 설계 기법
여기에 더해, 단순히 이론을 나열하는 것을 넘어 각 패턴의 확실한 장단점과 실무 선택 기준은 물론, 성능 최적화 기법까지 실무에 필요한 모든 노하우를 담았습니다.
마지막으로 "실무 설계는 정해진 정답을 찾는 것이 아니라, 상황에 맞는 최선의 트레이드오프(Trade-off)를 선택하는 과정입니다. 이 강의를 통해 여러분의 시야를 진짜 실무 레벨로 높여드리겠습니다. 그리고 그 어떤 프로젝트를 마주하더라도, 주저 없이 자신 있게 설계할 수 있는 진정한 설계 전문가로 만들어 들어드리겠습니다."
저의 수 많은 실전 경험과 오랜 고민의 결과를 이 강의에 담았습니다.
여러분께 도움이 되었으면 합니다.<전체 학습 목차>
1. 강의 소개와 수업 자료
2. 공통 코드 설계
- 공통 코드가 필요한 이유
- 공통 코드 테이블 설계
- 공통 코드를 더 범용성 있게 - 그룹화 설계
- 공통 코드와 추가 속성
- 공통 코드의 단점
- 공통 코드의 단점 해결 방안1
- 공통 코드의 단점 해결 방안2
- 공통 코드 vs 애플리케이션 ENUM 1
- 공통 코드 vs 애플리케이션 ENUM 2
- 공통 코드 vs 애플리케이션 ENUM 3
- 공통 코드 설계와 비즈니스 설계의 차이
- 정리
3. 계층 구조 설계
- 계층 구조 설계가 필요한 이유
- 인접 리스트 모델
- 계층 구조 조회의 어려움
- CTE와 재귀 쿼리 1
- CTE와 재귀 쿼리 2
- 폐쇄 테이블 모델 1
- 폐쇄 테이블 모델 2
- 정리
4. 데이터 변경 이력 설계1
- 데이터 변경 이력 설계가 필요한 이유
- 변경 추적 컬럼 - 기본
- 변경 추적 컬럼 - 변경 사유
- 변경 추적 컬럼 - 감사(Audit) 컬럼
- 정리
5. 데이터 변경 이력 설계2
- 컬럼에 이전 값 보관 방식
- 현재 테이블로 이력 관리 - 시작
- 현재 테이블로 이력 관리 - 단점 1
- 현재 테이블로 이력 관리 - 단점 2
- 현재 테이블로 이력 관리 - 유효 기간
- 전체 행 스냅샷 이력 테이블 - 시작
- 전체 행 스냅샷 이력 테이블 - 주의점
- 전체 행 스냅샷 이력 테이블 - 유효 기간
- 전체 행 스냅샷 이력 테이블 - 한계
- 컬럼 단위 변경 로그 테이블
- 공통 이력 테이블
- 정리
6. SOFT DELETE
- SOFT DELETE가 필요한 이유
- SOFT DELETE - is_deleted 컬럼 방식
- SOFT DELETE - deleted_at 컬럼 방식 1
- SOFT DELETE - deleted_at 컬럼 방식 2
- SOFT DELETE vs HARD DELETE
- SOFT vs HARD vs STATUS
- SOFT DELETE와 이력 테이블
- SOFT DELETE와 인덱스 설계
- 정리
7. 통계 테이블 설계
- 통계 데이터와 성능 문제
- 통계 테이블 설계
- 주간, 월간 통계의 효율적인 처리
- 실시간 통계와 하이브리드 설계
- 멱등성 설계
- 마이크로 배치
- UPSERT 최적화
- 정리
8. 상속 관계 설계
- 상속 관계 설계 - 문제 상황
- 구현 클래스마다 테이블 전략
- 구현 클래스마다 테이블 전략의 장단점
- 단일 테이블 전략
- 단일 테이블 전략의 장단점
- 조인 전략
- 조인 전략의 장단점
- 정리
9. 동적 설계 - EAV
- EAV 설계 - 기존 방식의 한계와 새로운 접근법
- EAV 패턴 소개
- EAV 실습 - 쇼핑몰 상품 속성 관리
- EAV 패턴 개선 - 속성 정의 테이블
- EAV의 장단점과 사용 시 주의사항
- EAV 실무 활용 사례
- 정리
10. JSON 설계
- EAV의 한계와 JSON의 필요성
- JSON 문법
- MySQL에서 JSON 사용하기 1
- MySQL에서 JSON 사용하기 2
- JSON 활용 - 다양한 실무 사례 1
- JSON 활용 - 다양한 실무 사례 2
- JSON 인덱스와 성능 최적화 1
- JSON 인덱스와 성능 최적화 2
- JSON 설계의 장단점과 한계
- JSON 사용 가이드라인
- 관계형 데이터베이스 vs NoSQL
- 정리
안녕하세요. 여러분
드디어 <데이터베이스 설계 2편: 실무에서 반드시 마주치는 9가지 설계 패턴> 강의가 오픈 준비 막바지에 들어갔습니다. 이번 강의는 오는 1월 28일에서 31일 사이에 정식 출시될 예정입니다.
실무에서 필연적으로 마주하게 되는 9가지 핵심 패턴을 통해 최적의 실무 데이터베이스 설계 방법을 익히고, 어떤 상황에서도 자신 있게 설계를 주도하는 진정한 전문가로 거듭나실 수 있도록 돕겠습니다.
<강의 내용>
제목: 김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
설계 1편에서 데이터 모델링의 정석을 다졌다면, 이제는 현업에서 반드시 마주치게 되는 복잡하고 까다로운 요구사항들을 해결해야 할 때입니다.
실제 프로젝트 설계를 시작하면, 우리는 필연적으로 다음과 같은 난제들과 마주하게 됩니다.
공통 코드를 어떻게 설계해야 할까?
'무한 계층 구조의 카테고리, 어떻게 설계해야 조회 성능을 망치지 않을까?'
'데이터 변경 이력, 도대체 어떤 방식으로 남겨야 최선일까?'
'회원이 탈퇴하면 데이터를 바로 지워도 될까? 아니면 남겨둬야 하나?'
'통계 쿼리만 돌리면 DB가 느려지는데, 어떻게 구조를 개선해야 할까?'
'상품마다 제각각인 수많은 옵션 값들은 어떻게 저장해야 하지?'
'요즘 많이 쓴다는 JSON, 관계형 DB에는 어떻게 녹여내는 게 좋을까?'
"놀랍게도 실무에서 겪는 데이터베이스 문제는 대부분 비슷합니다. 복잡해 보이는 실무의 난제들도 결국 9가지 핵심 유형으로 귀결됩니다.
이 강의는 바로 이런 고민들에 대한 명쾌한 해답을 드립니다.
이번 강의에서는 수많은 프로젝트를 거치며 철저히 검증된 저의 실전 설계 노하우를 아낌없이 공개합니다. 막막했던 문제들을 9가지 해법으로 저와 함께 예제를 통해 하나씩 정복해 봅시다.
이 강의를 통해 여러분은 실무 현장에서 바로 사용하게 될 '9가지 핵심 설계 패턴'을 완벽하게 마스터하게 됩니다.
공통 코드 설계: 시스템의 표준과 확장을 책임지는 견고한 코드 관리 체계
계층 구조 설계: 카테고리, 조직도 같은 복잡한 트리 구조를 효율적으로 처리하는 모델링
데이터 변경 추적: 누가, 언제, 무엇을 변경했는지 기록하는 전략
데이터 변경 이력: 데이터의 과거 상태를 보존하고 시점별로 조회하는 이력 관리 패턴
SOFT DELETE: 데이터의 복구 가능성과 무결성을 보장하는 논리적 삭제 기법
통계 테이블 설계: 대용량 데이터 환경에서도 성능 저하 없는 고속 집계 전략
상속 관계 설계: 부모, 자식 구조를 관계형 DB에서 사용하는 전략
동적 설계 (EAV):상품 옵션처럼 수시로 변하는 속성을 유연하게 수용하는 설계
JSON 데이터 설계: NoSQL의 유연함을 관계형 데이터베이스에 녹여내는 현대적인 설계 기법
여기에 더해, 단순히 이론을 나열하는 것을 넘어 각 패턴의 확실한 장단점과 실무 선택 기준은 물론, 성능 최적화 기법까지 실무에 필요한 모든 노하우를 담았습니다.
마지막으로 "실무 설계는 정해진 정답을 찾는 것이 아니라, 상황에 맞는 최선의 트레이드오프(Trade-off)를 선택하는 과정입니다. 이 강의를 통해 여러분의 시야를 진짜 실무 레벨로 높여드리겠습니다. 그리고 그 어떤 프로젝트를 마주하더라도, 주저 없이 자신 있게 설계할 수 있는 진정한 설계 전문가로 만들어 들어드리겠습니다."
저의 수 많은 실전 경험과 오랜 고민의 결과를 이 강의에 담았습니다.
여러분께 도움이 되었으면 합니다.
<전체 학습 목차>
1. 강의 소개와 수업 자료
2. 공통 코드 설계
- 공통 코드가 필요한 이유
- 공통 코드 테이블 설계
- 공통 코드를 더 범용성 있게 - 그룹화 설계
- 공통 코드와 추가 속성
- 공통 코드의 단점
- 공통 코드의 단점 해결 방안1
- 공통 코드의 단점 해결 방안2
- 공통 코드 vs 애플리케이션 ENUM 1
- 공통 코드 vs 애플리케이션 ENUM 2
- 공통 코드 vs 애플리케이션 ENUM 3
- 공통 코드 설계와 비즈니스 설계의 차이
- 정리3. 계층 구조 설계
- 계층 구조 설계가 필요한 이유
- 인접 리스트 모델
- 계층 구조 조회의 어려움
- CTE와 재귀 쿼리 1
- CTE와 재귀 쿼리 2
- 폐쇄 테이블 모델 1
- 폐쇄 테이블 모델 2
- 정리4. 데이터 변경 이력 설계1
- 데이터 변경 이력 설계가 필요한 이유
- 변경 추적 컬럼 - 기본
- 변경 추적 컬럼 - 변경 사유
- 변경 추적 컬럼 - 감사(Audit) 컬럼
- 정리5. 데이터 변경 이력 설계2
- 컬럼에 이전 값 보관 방식
- 현재 테이블로 이력 관리 - 시작
- 현재 테이블로 이력 관리 - 단점 1
- 현재 테이블로 이력 관리 - 단점 2
- 현재 테이블로 이력 관리 - 유효 기간
- 전체 행 스냅샷 이력 테이블 - 시작
- 전체 행 스냅샷 이력 테이블 - 주의점
- 전체 행 스냅샷 이력 테이블 - 유효 기간
- 전체 행 스냅샷 이력 테이블 - 한계
- 컬럼 단위 변경 로그 테이블
- 공통 이력 테이블
- 정리6. SOFT DELETE
- SOFT DELETE가 필요한 이유
- SOFT DELETE - is_deleted 컬럼 방식
- SOFT DELETE - deleted_at 컬럼 방식 1
- SOFT DELETE - deleted_at 컬럼 방식 2
- SOFT DELETE vs HARD DELETE
- SOFT vs HARD vs STATUS
- SOFT DELETE와 이력 테이블
- SOFT DELETE와 인덱스 설계
- 정리7. 통계 테이블 설계
- 통계 데이터와 성능 문제
- 통계 테이블 설계
- 주간, 월간 통계의 효율적인 처리
- 실시간 통계와 하이브리드 설계
- 멱등성 설계
- 마이크로 배치
- UPSERT 최적화
- 정리8. 상속 관계 설계
- 상속 관계 설계 - 문제 상황
- 구현 클래스마다 테이블 전략
- 구현 클래스마다 테이블 전략의 장단점
- 단일 테이블 전략
- 단일 테이블 전략의 장단점
- 조인 전략
- 조인 전략의 장단점
- 정리9. 동적 설계 - EAV
- EAV 설계 - 기존 방식의 한계와 새로운 접근법
- EAV 패턴 소개
- EAV 실습 - 쇼핑몰 상품 속성 관리
- EAV 패턴 개선 - 속성 정의 테이블
- EAV의 장단점과 사용 시 주의사항
- EAV 실무 활용 사례
- 정리10. JSON 설계
- EAV의 한계와 JSON의 필요성
- JSON 문법
- MySQL에서 JSON 사용하기 1
- MySQL에서 JSON 사용하기 2
- JSON 활용 - 다양한 실무 사례 1
- JSON 활용 - 다양한 실무 사례 2
- JSON 인덱스와 성능 최적화 1
- JSON 인덱스와 성능 최적화 2
- JSON 설계의 장단점과 한계
- JSON 사용 가이드라인
- 관계형 데이터베이스 vs NoSQL
- 정리안녕하세요. 여러분
데이터베이스 설계 1편 강의가 드디어 오픈 했습니다.오픈 기념으로 저의 모든 강의를 30% 할인합니다 🙂
제목: 김영한의 실전 데이터베이스 설계 1편 – 현대적 데이터 모델링 완전 정복
강의 수: 83개
강의 시간: 16시간 11분
강의 PDF 자료: 약 400장
[강의 소개]
데이터베이스는 모든 애플리케이션의 기반입니다.
하지만, 제대로 설계하지 못하면 프로젝트는 금방 한계에 부딪히고, 유지보수는 지옥이 됩니다.이번 강의는 단순히 테이블을 만드는 법이 아니라, 실무에서 통하는 현대적 데이터베이스 설계 방법을 체계적으로 알려드립니다. 그리고 저의 수 많은 실전 경험과 오랜 고민의 결과를 이 강의에 담았습니다.
[강의 핵심 포인트]
개념적 → 논리적 → 물리적 모델링
3단계 접근으로 DB 설계를 완전 정복합니다.실무에 바로 쓰는 설계 노하우
이론에만 머무르지 않고, 쇼핑몰 프로젝트를 예제로 활용합니다.잘못된 설계의 함정 피하기
왜 ERD가 중요한지, 왜 정규화가 필요한지, 그리고 언제 역정규화를 해야 하는지 실습을 통해 깨닫게 됩니다.키와 관계 설계의 본질
자연 키 vs 대리 키, 일대일·일대다·다대다 관계, 식별 관계 vs 비식별 관계까지 깊게 다룹니다.최신 DB 설계 트렌드 반영
수십 년 전 교과서에 머무르지 않고, 현대적 데이터 모델링 방법론을 제시합니다.[배우게 될 것들]
요구사항 분석과 핵심 엔티티 도출
ERD 작성 및 용어 사전 관리
정규화(1NF ~ BCNF)와 그 한계
인덱스와 성능 고려한 물리적 모델링
쇼핑몰 프로젝트 전체 DB 설계 실습
[강의 대상]
개발자: 코드 짜기 전에 제대로 된 DB를 설계하고 싶은 분
기획자/분석가: 데이터 흐름과 구조를 근본적으로 이해하고 싶은 분
취업 준비생: 면접에서 차별화된 DB 설계 역량을 보여주고 싶은 분
주니어 개발자: 실무에서 바로 쓸 수 있는 설계 원칙을 배우고 싶은 분
시니어 개발자/리드: 팀의 데이터베이스 설계 품질을 끌어올리고 싶은 분
[강의 전체 목차]
1. 강의 소개와 수업 자료
* 1-A. 윈도우 - MySQL 설치 안내
* 1-B. macOS - 설치 안내
2. 설계의 중요성
* 데이터베이스 설계의 첫걸음
* 잘못된 설계가 부르는 재앙
* 설계의 3단계 - 개념, 논리, 물리
* 정리
3. 개념적 모델링
* 요구 사항 분석과 핵심 요소 식별
* 엔티티란?
* 엔티티 분류1
* 엔티티 분류2
* 속성과 식별자
* 카디널리티와 참여도
* ERD 완성하기
* 연관 엔티티 - 다대다 관계 해결
* 용어 사전
* 정리
4. 개념적 모델링 - 실습
* 실전 요구 사항 분석
* 실전 개념적 모델링 - 시작
* 실전 개념적 모델링 - ERD 작성
* 실전 개념적 모델링 - 용어 사전 작성
* 정리
5. 논리적 모델링1 - 키
* 다양한 종류의 키
* 자연 키 vs 대리 키1 - 자연 키
* 자연 키 vs 대리 키2 - 대리 키
* 자연 키 vs 대리 키3 - 성능 트레이드 오프
* 자연 키 vs 대리 키4 - 현대적인 설계
* 복합키 설계
* 다대다 관계와 복합키
* 정리
6. 논리적 모델링2 - 참여도와 일대다 관계
* 논리적 모델링 - 관계
* 참여도
* 일대다(1:N) 다대일(N:1) 관계 - 외래 키 위치1
* 일대다(1:N) 다대일(N:1) 관계 - 외래 키 위치2
* 일대다(1:N) 다대일(N:1) 관계 - 조인과 뻥튀기
* 정리
7. 논리적 모델링3 - 일대일, 다대다 관계
* 일대일(1:1) 관계 - 시작
* 일대일(1:1) 관계 - 외래 키 위치
* 일대일(1:1) 관계 - [실습] 관계 확장의 유연성
* 일대일(1:1) 관계 - 주 테이블에 FK
* 다대다(M:N) 관계 - 관계형 모델의 한계
* 다대다(M:N) 관계 - 연결 테이블
* 다대다(M:N) 관계 - 속성
* 다대다(M:N) 관계 - 개념적, 논리적 모델링
* 정리
8. 논리적 모델링4 - 식별 관계, 비식별 관계
* 식별 관계 vs 비식별 관계 - 개념
* 식별 관계 vs 비식별 관계 - 일대다(1:N)
* 식별 관계의 문제점
* 식별 관계 vs 비식별 관계 - SQL 쿼리, 성능
* 식별 관계 vs 비식별 관계 - 일대일(1:1)
* 식별 관계 vs 비식별 관계 - 다대다(M:N) 1
* 식별 관계 vs 비식별 관계 - 다대다(M:N) 2
* 식별 관계 vs 비식별 관계 - 현대적인 설계 트렌드
* 정리
9. 논리적 모델링 - 실습
* 실전 논리적 모델링 - 시작
* 실전 논리적 모델링 - ERD 작성
10. 정규화
* 정규화 - 시작
* 제1 정규형
* 제2 정규형
* 제3 정규형
* BCNF 정규형
* 실무와 정규화
* 정리
11. 물리적 모델링
* 물리적 모델링 개요
* 테이블과 컬럼 변환 규칙1 - 기본 규칙
* 테이블과 컬럼 변환 규칙2 - 축약어와 단수 복수
* 데이터 타입1 - 문자, 숫자, PK 타입
* 데이터 타입2 - 날짜와 시간 타입
* 역정규화
* 테이블 정의서
* 정리
12. 물리적 모델링 - 실습
* 물리적 모델링 - 실습 시작
* 인덱스 설계 - 실습
* 역정규화 - 실습
* 쇼핑몰 테이블 정의서
* 쇼핑몰 DDL과 DB 만들기
* 물리적 모델 - ERD 자동 생성
* 쇼핑몰 기능 확인1
* 쇼핑몰 기능 확인2
* 정리
감사합니다.
안녕하세요. 여러분
데이터베이스 설계 1편 강의가 드디어 오픈 준비에 들어갔습니다.이번에 출시할 설계 1편은 9월 16일 ~ 9월 19일 사이에 출시 예정입니다.
데이터베이스 로드맵 - 강의 출시 예정 일정
설계 1편 – 현대적 데이터 모델링 완전 정복 - 9월 중순 출시 예정
설계 2편 - 실무 설계 패턴과 활용 기법 마스터 - 2025년 연말 출시 예정
성능 최적화와 고급 기능편 - 2026년 연초 출시 예정
제목: 김영한의 실전 데이터베이스 설계 1편 – 현대적 데이터 모델링 완전 정복
강의 수: 83개
강의 시간: 16시간 11분
강의 PDF 자료: 약 400장
강의 소개
데이터베이스는 모든 애플리케이션의 기반입니다.
하지만, 제대로 설계하지 못하면 프로젝트는 금방 한계에 부딪히고, 유지보수는 지옥이 됩니다.이번 강의는 단순히 테이블을 만드는 법이 아니라, 실무에서 통하는 현대적 설계 방법을 체계적으로 알려드립니다. 그리고 저의 수 많은 실전 경험과 오랜 고민의 결과를 이 강의에 담았습니다.
강의 핵심 포인트
* 개념적 → 논리적 → 물리적 모델링
3단계 접근으로 DB 설계를 완전 정복합니다.
* 실무에 바로 쓰는 설계 노하우
이론에만 머무르지 않고, 쇼핑몰 프로젝트를 예제로 활용합니다.
* 잘못된 설계의 함정 피하기
왜 ERD가 중요한지, 왜 정규화가 필요한지, 그리고 언제 역정규화를 해야 하는지 실습을 통해 깨닫게 됩니다.
* 키와 관계 설계의 본질
자연 키 vs 대리 키, 일대일·일대다·다대다 관계, 식별 관계 vs 비식별 관계까지 깊게 다룹니다.
* 최신 DB 설계 트렌드 반영
수십 년 전 교과서에 머무르지 않고, 현대적 데이터 모델링 방법론을 제시합니다.
배우게 될 것들
요구사항 분석과 핵심 엔티티 도출
ERD 작성 및 용어 사전 관리
정규화(1NF ~ BCNF)와 그 한계
인덱스와 성능 고려한 물리적 모델링
쇼핑몰 프로젝트 전체 DB 설계 실습
강의 대상
개발자: 코드 짜기 전에 제대로 된 DB를 설계하고 싶은 분
기획자/분석가: 데이터 흐름과 구조를 근본적으로 이해하고 싶은 분
취업 준비생: 면접에서 차별화된 DB 설계 역량을 보여주고 싶은 분
주니어 개발자: 실무에서 바로 쓸 수 있는 설계 원칙을 배우고 싶은 분
시니어 개발자/리드: 팀의 데이터베이스 설계 품질을 끌어올리고 싶은 분
강의 전체 목차
1. 강의 소개와 수업 자료
* 1-A. 윈도우 - MySQL 설치 안내
* 1-B. macOS - 설치 안내
2. 설계의 중요성
* 데이터베이스 설계의 첫걸음
* 잘못된 설계가 부르는 재앙
* 설계의 3단계 - 개념, 논리, 물리
* 정리
3. 개념적 모델링
* 요구 사항 분석과 핵심 요소 식별
* 엔티티란?
* 엔티티 분류1
* 엔티티 분류2
* 속성과 식별자
* 카디널리티와 참여도
* ERD 완성하기
* 연관 엔티티 - 다대다 관계 해결
* 용어 사전
* 정리
4. 개념적 모델링 - 실습
* 실전 요구 사항 분석
* 실전 개념적 모델링 - 시작
* 실전 개념적 모델링 - ERD 작성
* 실전 개념적 모델링 - 용어 사전 작성
* 정리
5. 논리적 모델링1 - 키
* 다양한 종류의 키
* 자연 키 vs 대리 키1 - 자연 키
* 자연 키 vs 대리 키2 - 대리 키
* 자연 키 vs 대리 키3 - 성능 트레이드 오프
* 자연 키 vs 대리 키4 - 현대적인 설계
* 복합키 설계
* 다대다 관계와 복합키
* 정리
6. 논리적 모델링2 - 참여도와 일대다 관계
* 논리적 모델링 - 관계
* 참여도
* 일대다(1:N) 다대일(N:1) 관계 - 외래 키 위치1
* 일대다(1:N) 다대일(N:1) 관계 - 외래 키 위치2
* 일대다(1:N) 다대일(N:1) 관계 - 조인과 뻥튀기
* 정리
7. 논리적 모델링3 - 일대일, 다대다 관계
* 일대일(1:1) 관계 - 시작
* 일대일(1:1) 관계 - 외래 키 위치
* 일대일(1:1) 관계 - [실습] 관계 확장의 유연성
* 일대일(1:1) 관계 - 주 테이블에 FK
* 다대다(M:N) 관계 - 관계형 모델의 한계
* 다대다(M:N) 관계 - 연결 테이블
* 다대다(M:N) 관계 - 속성
* 다대다(M:N) 관계 - 개념적, 논리적 모델링
* 정리
8. 논리적 모델링4 - 식별 관계, 비식별 관계
* 식별 관계 vs 비식별 관계 - 개념
* 식별 관계 vs 비식별 관계 - 일대다(1:N)
* 식별 관계의 문제점
* 식별 관계 vs 비식별 관계 - SQL 쿼리, 성능
* 식별 관계 vs 비식별 관계 - 일대일(1:1)
* 식별 관계 vs 비식별 관계 - 다대다(M:N) 1
* 식별 관계 vs 비식별 관계 - 다대다(M:N) 2
* 식별 관계 vs 비식별 관계 - 현대적인 설계 트렌드
* 정리
9. 논리적 모델링 - 실습
* 실전 논리적 모델링 - 시작
* 실전 논리적 모델링 - ERD 작성
10. 정규화
* 정규화 - 시작
* 제1 정규형
* 제2 정규형
* 제3 정규형
* BCNF 정규형
* 실무와 정규화
* 정리
11. 물리적 모델링
* 물리적 모델링 개요
* 테이블과 컬럼 변환 규칙1 - 기본 규칙
* 테이블과 컬럼 변환 규칙2 - 축약어와 단수 복수
* 데이터 타입1 - 문자, 숫자, PK 타입
* 데이터 타입2 - 날짜와 시간 타입
* 역정규화
* 테이블 정의서
* 정리
12. 물리적 모델링 - 실습
* 물리적 모델링 - 실습 시작
* 인덱스 설계 - 실습
* 역정규화 - 실습
* 쇼핑몰 테이블 정의서
* 쇼핑몰 DDL과 DB 만들기
* 물리적 모델 - ERD 자동 생성
* 쇼핑몰 기능 확인1
* 쇼핑몰 기능 확인2
* 정리
감사합니다.
안녕하세요. 여러분
드디어 데이터베이스 입문, 기본편 두 강의가 오픈했습니다.
처음 데이터베이스에 입문하는 분들도 부담없이 배울 수 있도록 데이터베이스 입문 강의를 무료로 제공하기로 결정했습니다.
김영한의 실전 데이터베이스 로드맵
김영한의 실전 데이터베이스 입문 - SQL부터 차근차근 (오픈)
김영한의 실전 데이터베이스 - 기본편 (오픈)
김영한의 실전 데이터베이스 - 설계편 (2025년 하반기 예정)
김영한의 실전 데이터베이스 - 성능 최적화와 고급 기능편 (2025년 하반기 예정)
강의 대상
참고로 이번 강의는 개발자뿐만 아니라 기획자, 데이터 분석가 분들도 들을 수 있도록 쉽게 구성했습니다.
개발자: 데이터베이스 기초를 탄탄히 다지고 싶은 주니어, 비전공자, 취업 준비생
기획자/마케터: 데이터 기반 의사결정이 필요한 분
데이터 분석가: SQL 역량을 쌓고 싶은 입문자
[개발자 관점에서 로드맵 소개]
개발자라면 전체 로드맵을 모두 따라오시는 것을 추천합니다.
많은 개발자 분들이 공감하시겠지만, 결국 뛰어난 애플리케이션은 잘 설계된 데이터베이스 위에서 탄생합니다. 애플리케이션 코드만으로는 결코 해결할 수 없는 문제들이 바로 이 데이터베이스 영역에 있기 때문입니다. 이 로드맵은 그 나머지 절반의 핵심 역량을 채워서 여러분을 한 차원 높은 개발자로 만들어 줄 겁니다.
입문편: 먼저, '입문편'을 통해 데이터베이스와 SQL 기초를 다집니다.
기본편: 기본편에서는 주니어 개발자에게 반드시 필요한 데이터베이스 기본기를 다룹니다.
조인, 서브쿼리, 유니온, 케이스 문을 통해 어떤 복잡한 비즈니스 요구사항도 SQL로 풀어내는 능력을 갖추게 됩니다.
인덱스의 동작 원리를 제대로 파악해 실무에 꼭 필요한 SQL 성능 최적화의 기본기를 다집니다.
트랜잭션과 데이터 무결성을 깊이 이해해서, 데이터가 깨지지 않는 안정적인 애플리케이션을 만들 수 있습니다.
설계편: 설계편은 여러분을 한 단계 더 높은 수준의 개발자로 만들어 줄 겁니다. 좋은 데이터베이스 설계가 어떻게 애플리케이션의 유지보수성과 확장성을 결정하는지 배우고, 실무에서 마주할 복잡한 요구사항을 체계적으로 모델링하는 능력을 키우게 됩니다.
성능 최적화와 고급 기능편: 성능 최적화와 고급 기능편은 대용량 트래픽을 다루는 고급 개발자로 가는 마지막 관문입니다. 아무도 해결하지 못하는 데이터베이스 성능 병목을 찾아내고, 서비스의 한계를 끌어올리는 고급 기술들을 마스터하게 될 것입니다.
이 로드맵을 마스터하면, 여러분이 '단순히 기능을 구현하는 개발자'를 넘어 애플리케이션과 데이터베이스 양쪽을 모두 깊이 있게 이해하고 최적화해서, 어떤 문제 상황에서도 해결의 실마리를 찾아내는 진짜 실력있는 개발자로 성장하게 될 것입니다.
[기획, 데이터 분석가 관점에서 로드맵 소개]
기획자나 데이터 분석가라면 입문편과 다음 기본편까지 듣는 것을 추천합니다.
입문편: 입문편을 통해 SQL 기초를 익히면, 더 이상 데이터를 요청하고 기다릴 필요 없이 원하는 답을 즉시 얻는 속도와 독립성을 갖게 됩니다.
기본편: 기본편에서는 한 걸음 더 나아갑니다.
조인, 서브쿼리, 유니온, 케이스 문 같은 고급 SQL을 활용해 여러 곳에 흩어진 데이터를 합치고, 나만의 기준으로 재가공하며 분석의 깊이를 더하게 됩니다.
이 두 과정만으로도 여러분은 데이터에 기반해 서비스를 개선하고, 조직을 설득하고, 개발팀과 원활히 소통하는 핵심 인재로 거듭날 것입니다.
만약 데이터 기반의 프로덕트를 직접 리드하고 싶다면, 심화 과정으로 '설계편'을 학습해서 데이터 구조에 대한 이해를 넓히는 것도 좋은 선택이 될 수 있습니다.
기획자와 분석가분들께 이 로드맵의 입문편과 기본편은 데이터로 일하는 방식을 완전히 바꾸어 줄 겁니다.
입문편 - 섹션 목차
1. 강의 소개와 수업 자료
2. 데이터베이스 소개
3. 데이터베이스 시작
4. SQL - 데이터 관리
5. SQL - 조회와 정렬
6. SQL - 데이터 가공
7. SQL - 집계와 그룹핑
기본편 - 섹션 목차
1. 강의 소개와 수업 자료
2. 조인1 - 내부 조인
3. 조인2 - 외부 조인과 기타 조인
4. 서브쿼리
5. UNION
6. CASE 문
7. 뷰(View)
8. 인덱스1
9. 인덱스2
10. 데이터 무결성
11. 트랜잭션
12. 저장 프로시저, 함수, 트리거
로드맵 진행 관련 질문들을 모아서 답변드려요.
1. 데이터베이스 로드맵 진행 기본 순서
- 기본적인 순서는 자바 -> 데이터베이스 -> 스프링 -> 스프링 부트와 JPA 활용 순서입니다.
2. 데이터베이스 로드맵 진행 추천 순서
가장 효과적인 진행 순서는 데이터베이스 입문편과 기본편을 스프링 로드맵의 스프링 DB1 직전에 학습하는 것입니다.
따라서 다음 순서로 학습하는 것입니다.
- ...
- 스프링 MVC2
- 데이터베이스 입문
- 데이터베이스 기본편
- 스프링 DB 1편
- 스프링 DB 2편
- ...
스프링 부트와 JPA 활용 로드맵을 진행할 때는 최소한 데이터베이스 기본편까지는 듣고 진행하시는 것을 권장합니다.
데이터베이스 설계편, 성능 최적화와 고급기능은 출시가 되면 다시 한번 정리해서 알려드리겠습니다.
3. mysql 베이스로 학습진행하나요? 오라클로 진행하나요?
실습은 MySQL을 중심으로 진행되지만, 강의 내용은 MySQL뿐만 아니라 RDBMS 전체를 아우르는 보편적인 지식을 전달하는 데 초점을 맞춥니다. 그래서 특정 데이터베이스에 얽매이지 않는 폭넓은 이해를 목표로 합니다.
비유를 하자면 이 강의에서 우리는 MySQL이라는 자동차를 운전하는 법을 배울 것입니다. 하지만 단순히 특정 모델의 자동차 조작법만 익히는 것이 아니라, 액셀, 브레이크, 핸들처럼 어떤 자동차(RDBMS)를 타든 기본적으로 알아야 할 운전 원리(RDBMS의 핵심 개념)를 배우는 데 중점을 둘 것입니다. 그래서 다른 RDBMS를 다룰 때도 큰 도움이 될 거에요.
감사합니다.
안녕하세요. 여러분
드디어 데이터베이스 입문, 기본편 두 강의가 오픈 준비에 들어갔습니다.
오랜기간 기다려주시고 응원해주셔서 감사합니다!
출시 예정일은 7월 30일 ~ 8월 1일로 예상됩니다.
김영한의 실전 데이터베이스 로드맵
김영한의 실전 데이터베이스 입문 - SQL부터 차근차근 (오픈)
김영한의 실전 데이터베이스 - 기본편 (오픈)
김영한의 실전 데이터베이스 - 설계편 (2025년 하반기 예정)
김영한의 실전 데이터베이스 - 성능 최적화와 고급 기능편 (2025년 하반기 예정)
강의 대상
참고로 이번 강의는 개발자뿐만 아니라 기획자, 데이터 분석가 분들도 들을 수 있도록 쉽게 구성했습니다.
개발자: 데이터베이스 기초를 탄탄히 다지고 싶은 주니어, 비전공자, 취업 준비생
기획자/마케터: 데이터 기반 의사결정이 필요한 분
데이터 분석가: SQL 역량을 쌓고 싶은 입문자
[개발자 관점에서 로드맵 소개]
개발자라면 전체 로드맵을 모두 따라오시는 것을 추천합니다.
많은 개발자 분들이 공감하시겠지만, 결국 뛰어난 애플리케이션은 잘 설계된 데이터베이스 위에서 탄생합니다. 애플리케이션 코드만으로는 결코 해결할 수 없는 문제들이 바로 이 데이터베이스 영역에 있기 때문입니다. 이 로드맵은 그 나머지 절반의 핵심 역량을 채워서 여러분을 한 차원 높은 개발자로 만들어 줄 겁니다.
입문편: 먼저, '입문편'을 통해 데이터베이스와 SQL 기초를 다집니다.
기본편: 기본편에서는 주니어 개발자에게 반드시 필요한 데이터베이스 기본기를 다룹니다.
조인, 서브쿼리, 유니온, 케이스 문을 통해 어떤 복잡한 비즈니스 요구사항도 SQL로 풀어내는 능력을 갖추게 됩니다.
인덱스의 동작 원리를 제대로 파악해 실무에 꼭 필요한 SQL 성능 최적화의 기본기를 다집니다.
트랜잭션과 데이터 무결성을 깊이 이해해서, 데이터가 깨지지 않는 안정적인 애플리케이션을 만들 수 있습니다.
설계편: 설계편은 여러분을 한 단계 더 높은 수준의 개발자로 만들어 줄 겁니다. 좋은 데이터베이스 설계가 어떻게 애플리케이션의 유지보수성과 확장성을 결정하는지 배우고, 실무에서 마주할 복잡한 요구사항을 체계적으로 모델링하는 능력을 키우게 됩니다.
성능 최적화와 고급 기능편: 성능 최적화와 고급 기능편은 대용량 트래픽을 다루는 고급 개발자로 가는 마지막 관문입니다. 아무도 해결하지 못하는 데이터베이스 성능 병목을 찾아내고, 서비스의 한계를 끌어올리는 고급 기술들을 마스터하게 될 것입니다.
이 로드맵을 마스터하면, 여러분이 '단순히 기능을 구현하는 개발자'를 넘어 애플리케이션과 데이터베이스 양쪽을 모두 깊이 있게 이해하고 최적화해서, 어떤 문제 상황에서도 해결의 실마리를 찾아내는 진짜 실력있는 개발자로 성장하게 될 것입니다.
[기획, 데이터 분석가 관점에서 로드맵 소개]
기획자나 데이터 분석가라면 입문편과 다음 기본편까지 듣는 것을 추천합니다.
입문편: 입문편을 통해 SQL 기초를 익히면, 더 이상 데이터를 요청하고 기다릴 필요 없이 원하는 답을 즉시 얻는 속도와 독립성을 갖게 됩니다.
기본편: 기본편에서는 한 걸음 더 나아갑니다.
조인, 서브쿼리, 유니온, 케이스 문 같은 고급 SQL을 활용해 여러 곳에 흩어진 데이터를 합치고, 나만의 기준으로 재가공하며 분석의 깊이를 더하게 됩니다.
이 두 과정만으로도 여러분은 데이터에 기반해 서비스를 개선하고, 조직을 설득하고, 개발팀과 원활히 소통하는 핵심 인재로 거듭날 것입니다.
만약 데이터 기반의 프로덕트를 직접 리드하고 싶다면, 심화 과정으로 '설계편'을 학습해서 데이터 구조에 대한 이해를 넓히는 것도 좋은 선택이 될 수 있습니다.
기획자와 분석가분들께 이 로드맵의 입문편과 기본편은 데이터로 일하는 방식을 완전히 바꾸어 줄 겁니다.
입문편 - 섹션 목차
1. 강의 소개와 수업 자료
2. 데이터베이스 소개
3. 데이터베이스 시작
4. SQL - 데이터 관리
5. SQL - 조회와 정렬
6. SQL - 데이터 가공
7. SQL - 집계와 그룹핑
기본편 - 섹션 목차
1. 강의 소개와 수업 자료
2. 조인1 - 내부 조인
3. 조인2 - 외부 조인과 기타 조인
4. 서브쿼리
5. UNION
6. CASE 문
7. 뷰(View)
8. 인덱스1
9. 인덱스2
10. 데이터 무결성
11. 트랜잭션
12. 저장 프로시저, 함수, 트리거
로드맵 진행 관련 질문들을 모아서 답변드려요.
1. 데이터베이스 로드맵 진행 기본 순서
- 기본적인 순서는 자바 -> 데이터베이스 -> 스프링 -> 스프링 부트와 JPA 활용 순서입니다.
2. 데이터베이스 로드맵 진행 추천 순서
가장 효과적인 진행 순서는 데이터베이스 입문편과 기본편을 스프링 로드맵의 스프링 DB1 직전에 학습하는 것입니다.
따라서 다음 순서로 학습하는 것입니다.
- ...
- 스프링 MVC2
- 데이터베이스 입문
- 데이터베이스 기본편
- 스프링 DB 1편
- 스프링 DB 2편
- ...
스프링 부트와 JPA 활용 로드맵을 진행할 때는 최소한 데이터베이스 기본편까지는 듣고 진행하시는 것을 권장합니다.
데이터베이스 설계편, 성능 최적화와 고급기능은 출시가 되면 다시 한번 정리해서 알려드리겠습니다.
3. mysql 베이스로 학습진행하나요? 오라클로 진행하나요?
실습은 MySQL을 중심으로 진행되지만, 강의 내용은 MySQL뿐만 아니라 RDBMS 전체를 아우르는 보편적인 지식을 전달하는 데 초점을 맞춥니다. 그래서 특정 데이터베이스에 얽매이지 않는 폭넓은 이해를 목표로 합니다.
비유를 하자면 이 강의에서 우리는 MySQL이라는 자동차를 운전하는 법을 배울 것입니다. 하지만 단순히 특정 모델의 자동차 조작법만 익히는 것이 아니라, 액셀, 브레이크, 핸들처럼 어떤 자동차(RDBMS)를 타든 기본적으로 알아야 할 운전 원리(RDBMS의 핵심 개념)를 배우는 데 중점을 둘 것입니다. 그래서 다른 RDBMS를 다룰 때도 큰 도움이 될 거에요.
감사합니다.
안녕하세요. 여러분 드디어 자바 고급3편 자바 로드맵의 마지막 강의를 오픈했습니다.
김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
강의 시간: 16시간 40분
강의 수: 97강
강의 PDF 자료: 387 페이지
[강의 소개]
람다, 스트림, 함수형 프로그래밍 같은 최신 자바에서 자주 사용되는 새로운 문법과 기술들을 학습합니다. 이번 강의를 통해 여러분이 람다, 스트림, 함수형 프로그래밍 같은 기술을 단순히 아는 것을 넘어서 실무에 이 기술들을 어떻게 적용해야 하는지, 깊이있게 이해하고, 또 활용할 수 있게 가르쳐 드리겠습니다.
[강의 내용 요약]
주요 강의 내용은 다음과 같습니다.
1. 람다가 필요한 이유
깔끔하고 간결한 코드를 위해, 그리고 병렬 처리와 같은 고급 기능을 쉽게 활용하기 위해 람다가 지금의 자바에서 얼마나 중요한 역할을 하는지 알아봅니다.
2. 람다
실제 코드 예제를 통해 람다의 정의와 문법, 활용 팁을 배우게 됩니다. 기존 방식과 어떻게 다른지, 또 어떤 점이 매력적인지 명확하게 이해하실 수 있습니다.
3. 함수형 인터페이스
람다와 함께 쓰이는 필수 개념인 함수형 인터페이스! 함수형 프로그래밍이 가능한 이유와 자바 표준 API에 내장된 다양한 함수형 인터페이스들을 간편하게 활용하는 방법을 전해 드립니다.
4. 람다 활용
실무 코드에서 람다를 어떻게 적용할 수 있을까요? 반복되는 패턴과 복잡한 로직을 단순화시키는 람다의 핵심 활용법을 예제와 함께 익혀봅시다.
5. 람다 vs 익명 클래스
어떤 상황에서 람다가 더 효율적이고, 어떤 경우엔 익명 클래스를 써야 하는지 비교 분석합니다.
6. 메서드 참조
자바 8부터 추가된 메서드 참조 문법은 함수형 프로그래밍의 깔끔함을 한 단계 업그레이드해 줍니다. 메서드 참조 문법이 어떻게 동작하고, 실용적인 활용 예시는 무엇인지 알려드립니다.
7. 스트림 API1 - 기본
스트림 API는 람다와 함께 자바 컬렉션을 다루는 새로운 패러다임을 보여줍니다. 처음 접하는 분들도 이해하기 쉽게, 스트림 구조와 기본 사용법을 알기 쉽게 정리해 드립니다.
8. 스트림 API2 - 기능
필터링, 매핑, 정렬, 리듀스 등 스트림에서 제공하는 핵심 기능들을 차근차근 살펴봅니다. 코드를 보다 더 직관적이고 함축적으로 작성하는 방법을 익힐 수 있습니다.
9. 스트림 API3 - 컬렉터
효율적인 데이터 수집과 가공을 위해 스트림에서 활용하는 Collector의 개념을 학습합니다. collect(), grouping, partitioning 등, 실무에서 꼭 필요한 스킬들을 익히실 수 있습니다.
10. Optional
null 처리를 깔끔하게 해결해 주는 Optional을 제대로 활용해봅시다. isPresent(), orElse(), orElseThrow() 등 실전에서 잦은 NPE 문제를 예방할 수 있는 다양한 방법을 다룹니다.
11. 디폴트 메서드
자바 인터페이스의 새로운 면모인 디폴트 메서드를 살펴봅니다.
인터페이스를 확장할 때 호환성을 유지하는 방법과 함께, 올바른 사용법을 알아봅니다.
12. 병렬 스트림
고성능을 위한 병렬 처리! ForkJoin 풀 부터, 스트림 API를 통한 멀티코어 활용 노하우와 병렬 스트림에서 발생할 수 있는 주의사항들을 함께 배워 보세요.
13. 함수형 프로그래밍
람다, 스트림 API, Optional 등 자바 8 이후로 추가된 기능들은 모두 함수형 프로그래밍 패러다임을 반영하고 있습니다. 객체지향 언어와 함수형 패러다임의 조화를 통해, 더 효율적인 코드를 작성하는 방법을 알려드립니다.
감사합니다.
안녕하세요. 여러분 드디어 2년에 걸쳐서 자바 로드맵을 완성했습니다.
자바 로드맵의 마지막 강의인 김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
오픈 일정이 3월 25일(화) ~ 3월 28(금) 사이에 오픈하는 것으로 확정 되었습니다.
강의 시간: 16시간 40분
강의 수: 97강
강의 PDF 자료: 387 페이지
[강의 소개]
람다, 스트림, 함수형 프로그래밍 같은 최신 자바에서 자주 사용되는 새로운 문법과 기술들을 학습합니다.
이번 강의를 통해 여러분이 람다, 스트림, 함수형 프로그래밍 같은 기술을 단순히 아는 것을 넘어서 실무에 이 기술들을 어떻게 적용해야 하는지, 깊이있게 이해하고, 또 활용할 수 있게 가르쳐 드리겠습니다.
[강의 내용 요약]주요 강의 내용은 다음과 같습니다.
1. 람다가 필요한 이유
깔끔하고 간결한 코드를 위해, 그리고 병렬 처리와 같은 고급 기능을 쉽게 활용하기 위해 람다가 지금의 자바에서 얼마나 중요한 역할을 하는지 알아봅니다.
2. 람다
실제 코드 예제를 통해 람다의 정의와 문법, 활용 팁을 배우게 됩니다. 기존 방식과 어떻게 다른지, 또 어떤 점이 매력적인지 명확하게 이해하실 수 있습니다.
3. 함수형 인터페이스
람다와 함께 쓰이는 필수 개념인 함수형 인터페이스!
함수형 프로그래밍이 가능한 이유와 자바 표준 API에 내장된 다양한 함수형 인터페이스들을 간편하게 활용하는 방법을 전해 드립니다.4. 람다 활용
실무 코드에서 람다를 어떻게 적용할 수 있을까요?
반복되는 패턴과 복잡한 로직을 단순화시키는 람다의 핵심 활용법을 예제와 함께 익혀봅시다.5. 람다 vs 익명 클래스
어떤 상황에서 람다가 더 효율적이고, 어떤 경우엔 익명 클래스를 써야 하는지 비교 분석합니다.
6. 메서드 참조
자바 8부터 추가된 메서드 참조 문법은 함수형 프로그래밍의 깔끔함을 한 단계 업그레이드해 줍니다. 메서드 참조 문법이 어떻게 동작하고, 실용적인 활용 예시는 무엇인지 알려드립니다.
7. 스트림 API1 - 기본
스트림 API는 람다와 함께 자바 컬렉션을 다루는 새로운 패러다임을 보여줍니다. 처음 접하는 분들도 이해하기 쉽게, 스트림 구조와 기본 사용법을 알기 쉽게 정리해 드립니다.
8. 스트림 API2 - 기능
필터링, 매핑, 정렬, 리듀스 등 스트림에서 제공하는 핵심 기능들을 차근차근 살펴봅니다. 코드를 보다 더 직관적이고 함축적으로 작성하는 방법을 익힐 수 있습니다.
9. 스트림 API3 - 컬렉터
효율적인 데이터 수집과 가공을 위해 스트림에서 활용하는 Collector의 개념을 학습합니다. collect(), grouping, partitioning 등, 실무에서 꼭 필요한 스킬들을 익히실 수 있습니다.
10. Optional
null 처리를 깔끔하게 해결해 주는 Optional을 제대로 활용해봅시다. isPresent(), orElse(), orElseThrow() 등 실전에서 잦은 NPE 문제를 예방할 수 있는 다양한 방법을 다룹니다.
11. 디폴트 메서드
자바 인터페이스의 새로운 면모인 디폴트 메서드를 살펴봅니다.
인터페이스를 확장할 때 호환성을 유지하는 방법과 함께, 올바른 사용법을 알아봅니다.
12. 병렬 스트림
고성능을 위한 병렬 처리! ForkJoin 풀 부터, 스트림 API를 통한 멀티코어 활용 노하우와 병렬 스트림에서 발생할 수 있는 주의사항들을 함께 배워 보세요.
13. 함수형 프로그래밍
람다, 스트림 API, Optional 등 자바 8 이후로 추가된 기능들은 모두 함수형 프로그래밍 패러다임을 반영하고 있습니다. 객체지향 언어와 함수형 패러다임의 조화를 통해, 더 효율적인 코드를 작성하는 방법을 알려드립니다.
[전체 목차]
1. 람다가 필요한 이유
* 프로젝트 환경 구성
* 람다가 필요한 이유1
* 람다가 필요한 이유2
* 람다가 필요한 이유3
* 함수 vs 메서드
* 람다 시작2. 람다
* 람다 정의
* 함수형 인터페이스
* 람다와 시그니처
* 람다와 생략
* 람다의 전달
* 고차 함수
* 문제와 풀이1
* 문제와 풀이2
* 문제와 풀이3
* 정리3. 함수형 인터페이스
* 함수형 인터페이스와 제네릭1
* 함수형 인터페이스와 제네릭2
* 람다와 타겟 타입
* 기본 함수형 인터페이스
* 특화 함수형 인터페이스
* 기타 함수형 인터페이스
* 문제와 풀이
* 정리4. 람다 활용
* 필터 만들기1
* 필터 만들기2
* 맵 만들기1
* 맵 만들기2
* 필터와 맵 활용1
* 필터와 맵 활용2
* 스트림 만들기1
* 스트림 만들기2
* 스트림 만들기3
* 스트림 만들기4
* 정리5. 람다 vs 익명 클래스
* 람다 vs 익명 클래스1
* 람다 vs 익명 클래스2
* 정리6. 메서드 참조
* 메서드 참조가 필요한 이유
* 메서드 참조1 - 시작
* 메서드 참조2 - 매개변수1
* 메서드 참조3 - 임의 객체의 인스턴스 메서드 참조
* 메서드 참조4 - 활용1
* 메서드 참조5 - 활용2
* 메서드 참조6 - 매개변수2
* 정리7. 스트림 API1 - 기본
* 스트림 API 시작
* 스트림 API란?
* 파이프라인 구성
* 지연 연산
* 지연 연산과 최적화8. 스트림 API2 - 기능
* 스트림 생성
* 중간 연산
* FlatMap
* Optional 간단 설명
* 최종 연산
* 기본형 특화 스트림9. 스트림 API3 - 컬렉터
* 컬렉터1
* 컬렉터2
* 다운 스트림 컬렉터1
* 다운 스트림 컬렉터2
* 정리10. Optional
* 옵셔널이 필요한 이유
* Optional의 생성과 값 획득
* Optional 값 처리
* 즉시 평가와 지연 평가1
* 즉시 평가와 지연 평가2
* 즉시 평가와 지연 평가3
* orElse() vs orElseGet()
* 실전 활용1 - 주소 찾기
* 실전 활용2 - 배송
* 옵셔널 - 베스트 프랙티스
* 정리11. 디폴트 메서드
* 디폴트 메서드가 등장한 이유
* 디폴트 메서드 소개
* 디폴트 메서드의 올바른 사용법
* 정리12. 병렬 스트림
* 단일 스트림
* 스레드 직접 사용
* 스레드 풀 사용
* ForkJoin 패턴
* ForkJoin 프레임워크1 - 소개
* ForkJoin 프레임워크2 - 작업 훔치기
* 작업 훔치기 알고리즘
* ForkJoin 프레임워크3 - 공용 풀
* 자바 병렬 스트림
* 병렬 스트림 사용시 주의점
* 별도의 풀 사용
* 정리13. 함수형 프로그래밍
* 프로그래밍 패러다임
* 함수형 프로그래밍이란?
* 자바와 함수형 프로그래밍1
* 자바와 함수형 프로그래밍2
* 자바와 함수형 프로그래밍3
* 정리감사합니다.






