【AI 자막】 Kotlin 및 Spring Boot 를 사용하여 RESTFUL API 구축하기
Kotlin 언어를 배우고 Kotlin SpringBoot 를 사용하여 Restful API를 구축하는 완벽한 실습 접근 방식의 강의입니다.
Description
[꼭 읽어주세요] 한글 AI 자막 강의란?
유데미의 한국어 [자동] AI 자막 서비스로 제공되는 강의입니다.
강의에 대한 질문사항은 Pragmatic Code School 강사님이 확인하실 수 있도록 Q&A 게시판에 영어로 남겨주시기 바랍니다.
Kotlin은 현대적이고 간결하며 안전한 프로그래밍 언어이며 오늘날 가장 인기 있는 JVM 언어 중 하나입니다.
또한 Java 및 다른 언어와 상호 운용이 가능하며 생산적인 프로그래밍을 위해 여러 플랫폼 간에 코드를 재사용할 수 있는 다양한 방법을 제공합니다.
이 강의에서는 SpringBoot 프레임워크를 사용하여 서버 측 개발을 위한 Kotlin을 사용하는 데 중점을 둡니다. 이 강의는 아래 두 가지 주제를 다루는 순수 실습 중심 과정입니다:
Java 개발자에게 필요한 Kotlin 기초를 다룹니다.
SpringBoot 및 Kotlin 을 사용하여 RestFul API 구축하기
섹션 1: 강의 시작하기
이 섹션에서는 이 강의를 최대한 활용하기 위해 필요한 강의 목표와 사전 요구 사항에 대해 설명합니다.
섹션 2: Kotlin 프로그래밍 언어 시작하기
이 섹션에서는 Kotlin 프로그래밍 언어를 소개하고, 왜 Kotlin이 엔터프라이즈 개발을 위한 강력한 언어인지 알려드립니다.
Kotlin 소개
Kotlin은 JVM과 어떻게 작동하나요?
섹션 3: Kotlin 기초 사항
이 섹션에서는 Kotlin의 기초 사항에 대해 살펴봅니다.
Kotlin의 val 및 var 변수
기본 유형 - Int, Long, Double, String
조건문 - If 및 When 블록
Ranges , Loops
while & do-While
break, 레이블 및 반환
섹션 4: Kotlin 함수
이 섹션에서는 Kotlin의 함수와 함수를 선언하고 사용하는 다양한 방법에 대해 알아봅니다.
함수 정의 및 호출
기본값 매개변수 및 명명된 인수
최상위 함수 및 최상위 속성
섹션 5: 클래스, 인터페이스 및 상속
이 섹션에서는 클래스, 상속 및 인터페이스에 대해 자세히 알아보겠습니다.
클래스 소개 - 클래스와 객체 생성하기
기본 생성자
보조 생성자
init 블록을 사용한 이니셜라이저 코드
데이터 클래스
커스텀 Getters 및 Setters
상속 - 클래스 확장
상속 - 함수, 변수 재정의하기
클래스의 인스턴스 생성을 위한 객체 키워드
컴패니언 객체 키워드
인터페이스
인터페이스 - 충돌하는 함수 처리하기
인터페이스 - 변수 정의 및 재정의
가시성 수정자
타입 검사, 형변환 및 스마트 형변환
Enum 클래스
섹션 6: Kotlin의 Null
이 섹션에서는 Kotlin에서 nulls 을 처리하는 방법에 대해 알아봅니다.
Kotlin의 Null 가능 및 Null 불가능 유형
안전 호출(?), Elvis 연산자(?:) 및 비 Null 어설션(!!)을 사용하여 Null 값 처리하기
Null 가능 유형 호출 또는 Null 가능하지 않은 유형에 할당하기
섹션 7: 컬렉션, 배열 및 람다 표현식
이 섹션에서는 Kotlin의 컬렉션, 배열 및 람다 표현식에 대해 소개합니다.
컬렉션 소개
람다 표현식 소개
람다 및 고차 함수
Kotlin 컬렉션의 필터 연산
Kotlin 컬렉션의 맵 연산
컬렉션의 플랫맵 연산
HashMaps으로 작업하기
시퀀스를 사용한 컬렉션의 지연 평가
컬렉션의 null 가능성
섹션 8 : Kotlin의 예외
이 섹션에서는 Kotlin의 예외 및 이를 처리하는 기술에 대해 설명합니다.
try-catch를 사용하여 예외 처리하기
섹션 9 : 범위 지정 함수 (Scope functions)
이 섹션에서는 Kotlin의 범위 지정 함수와 그 사용법을 모두 소개합니다.
범위 지정 함수 소개
apply & also 범위 지정 함수
let 범위 지정 함수
with & run 범위 지정 함수
섹션 10 : Kotlin 및 Spring Boot 시작하기
이 섹션에서는 우리가 만들 앱의 개요를 설명하고 매우 간단한 API를 구축하겠습니다.
앱 개요 및 프로젝트 셋업
간단한 엔드포인트 빌드 - Greeting Controller
Spring의 생성자 주입
Spring Boot에서 다양한 프로필 셋업
Kotlin 로그인 셋업하기
섹션 11 : Junit 5를 사용한 통합/유닛 테스트
이 섹션에서는 Spring Boot와 Kotlin을 사용하여 다양한 유형의 테스트 케이스를 작성하는 기술에 대해 설명하고 코드를 짜봅니다.
자동화된 테스트 소개 및 JUnit5 설정하기
컨트롤러용 통합 테스트
컨트롤러용 유닛 테스트 - MockK Mocking 라이브러리 사용
섹션 12 : 코스 카탈로그 서비스 구축해보기
이 섹션에서는 코스를 관리하기 위한 코스 카탈로그 서비스를 구축합니다.
코스 엔티티 및 CourseDTO 설정하기
CourseRepository 생성 및 application.yml 파일에서 JPA 구성하기
새 코스 추가를 위한 POST 엔드포인트를 빌드
JUnit5를 사용하여 POST 엔드포인트에 대한 통합 테스트 수행
모든 코스를 검색하기 위한 GET 엔드포인트 빌드
모든 코스를 검색하기 위한 GET 엔드포인트에 대한 통합 테스트
코스를 업데이트하기 위한 업데이트 엔드포인트 빌드
JUnit5를 사용하여 PUT 엔드포인트에 대한 통합 테스트
코스를 삭제하기 위해 DELETE 엔드포인트를 빌드
섹션 13: 컨트롤러 계층 유닛 테스트 (웹 티어)
이 섹션에서는 컨트롤러에 대한 유닛 테스트를 작성하는 방법에 대해 알아보고 코드를 작성해보겠습니다.
CourseController에 대한 유닛 테스트 설정하기
CourseController의 POST 엔드포인트에 대한 유닛 테스트
CourseController의 GET 엔드포인트에 대한 유닛 테스트
CourseController의 PUT 엔드포인트에 대한 유닛 테스트
CourseController의 DELETE 엔드포인트에 대한 유닛 테스트
섹션 14 : Validators 및 ControllerAdvice을 사용한 Bean 유효성 검사
이 섹션에서는 ControllerAdvice 패턴을 사용하여 bean 유효성 검사를 적용하고 예외를 처리하는 다양한 기술을 코딩하고 배워 보겠습니다.
@NotBlank 주석을 사용하여 이름과 카테고리를 필수로 지정하기
ControllerAdvice 패턴을 사용하여 사용자 정의 오류 처리 구현하기
ControllerAdvice 패턴을 사용하여 전역 런타임 예외 처리하기
섹션 15 : Spring 데이터 JPA를 사용한 커스텀 JPA 쿼리 및 @DataJpaTest를 사용한 DB 계층 테스트
이 섹션에서는 커스텀 JPA 쿼리를 작성하는 기법과 DataJpaTest를 사용하여 DB 계층을 테스트하는 기법에 대해 알아봅니다.
JPA 쿼리 생성 함수를 사용하여 이름으로 코스 검색하기
네이티브 SQL 쿼리를 사용하여 이름으로 코스 검색하기
@Parameterized 된 테스트를 사용하여 데이터의 다중 집합 테스트하기
섹션 16: @RequestParam를 사용하여 이름별로 코스를 검색하는 GET 엔드포인트
이 섹션에서는 컨트롤러 엔드포인트에서 RequestParam의 사용법을 코딩하고 배우겠습니다.
기존 GET 엔드포인트를 사용하여 이름으로 코스 검색하기
통합 테스트를 작성하여 이름으로 코스를 검색합니다.
섹션 17 : Spring Data JPA를 사용한 엔티티 관계
이 섹션에서는 Kotlin의 엔티티 및 데이터 클래스를 사용하여 JPA에서 관계를 표현하는 기법을 설명합니다.
코스 카탈로그 서비스에 강사 엔티티 추가하기
엔티티 클래스에서 관계 추가하기
강사 데이터를 관리하는 강사 컨트롤러
강사 데이터의 유효성을 검사하도록 코스 서비스 업데이트하기
CourseController 통합 테스트 수정
CourseController 유닛 테스트 수정
섹션 18 : Postgres DB와 통합하기
이 섹션에서는 코스 카탈로그 서비스에 postgres DB를 통합하는 방법을 코딩하고 학습합니다.
Postgres와 상호 작용하도록 Postgres DB 및 앱 셋업하기
Postgres DB로 앱 테스트하기
섹션 19 : TestContainers를 사용한 통합 테스트
이 섹션에서는 통합 테스트를 실행하기 위해 testcontainers 를 코딩하고 통합하는 방법을 배웁니다.
통합 테스트를 위한 TestContainer 설정하기
TestContainer로 @DataJpaTest 구성하기
섹션 20 : Java & Kotlin 상호 운용성
이 섹션에서는 Java와 Kotlin 간의 상호 운용성에 대해 코딩하고 학습합니다.
Java 클래스에서 Kotlin 코드 호출하기
Kotlin에서 Java 코드 호출
Kotlin의 유용한 JVM 어노테이션
이 강의를 마치면 Kotlin 프로그래밍 언어를 사용하여 코드를 작성하고 SpringBoot 및 Kotlin을 사용하여 RestFuL API를 구축하는 데 익숙해집니다.
What You Will Learn!
- Kotlin 프로그래밍 언어 및 장점
- Kotlin 프로그래밍 언어를 사용하여 코드 작성하기
- Kotlin을 사용하여 애플리케이션 구축하기
- SpringBoot 및 Kotlin을 사용하여 RestFul 서비스 구축하기
- JUnit5를 사용하여 Kotlin 테스트하기
- Kotlin과 Java의 상호운용성
- Spring 데이터 JPA와 Kotlin 통합하기
- TestContainers 및 JUnit5를 사용하여 DB 계층 통합 테스트(Integration testing)
- MockK 라이브러리를 사용한 유닛 테스트 함수
Who Should Attend!
- Kotlin 프로그래밍 언어 학습에 관심이 있는 개발자
- Kotlin 및 SpringBoot를 사용하여 애플리케이션을 구축하는 데 관심이 있는 개발자
- Kotlin 프로그래밍 언어를 배우고자 하는 Java 개발자