1강.
01_01_Blazor 학습을 위한 Visual Studio Community 2022 Preview 버전 설치
Blazor Server 7.0 학습을 위한 Visual Studio Community 2022 Preview 버전을 설치합니다. [03:00]
2강.
01_02_Blazor 학습을 위한 .NET 7 SDK 다운로드 및 설치
01_02_Blazor 학습을 위한 .NET 7 SDK 다운로드 및 설치 [04:02]
3강.
01_03_Blazor Server Empty 프로젝트 생성 및 실행 데모
01_03_Blazor Server Empty 프로젝트 생성 및 실행 데모 [03:57]
4강.
02_00_Blazor Server 기본 템플릿으로 프로젝트 생성 및 컴포넌트 만들기
02_00_Blazor Server 기본 템플릿으로 프로젝트 생성 및 컴포넌트 만들기 [26:46]
5강.
03_00_모델 클래스 생성 및 EF Core 기능 적용하기
03_00_모델 클래스 생성 및 EF Core 기능 적용하기 [19:20]
6강.
04_01_지원자 앱을 만들기 위한 Candidate 모델 클래스 생성
04_01_지원자 앱을 만들기 위한 Candidate 모델 클래스 생성 [03:47]
7강.
04_02_모델 클래스에 유효성 검사를 위한 Required와 StringLength 특성 적용하기
04_02_모델 클래스에 유효성 검사를 위한 Required와 StringLength 특성 적용하기 [01:27]
8강.
04_03_Candidate Mode과 Repository Pattern
04_03_Candidate Mode과 Repository Pattern [10:37]
9강.
04_04_DbContext에 Table 속성 추가 및 DbContext 등록 후 데이터베이스 업데이트
04_04_DbContext에 Table 속성 추가 및 DbContext 등록 후 데이터베이스 업데이트 [10:02]
10강.
04_05_SeedData_모델 생성될 때 기본 데이터를 테이블에 입력하기
04_05_SeedData_모델 생성될 때 기본 데이터를 테이블에 입력하기 [09:52]
11강.
04_06_CandidatesSeedData_Candidates 테이블에 기본 데이터 입력
04_06_CandidatesSeedData_Candidates 테이블에 기본 데이터 입력 [09:09]
12강.
04_07_CandidateDbInitializer_Candidates 테이블에 기본 데이터를 입력하는 클래스 생성
04_07_CandidateDbInitializer_Candidates 테이블에 기본 데이터를 입력하는 클래스 생성 [09:57]
13강.
05_01_DatabaseMigrated_데이터베이스 업데이트를 프로그래밍 코드로 진행
05_01_DatabaseMigrated_데이터베이스 업데이트를 프로그래밍 코드로 진행 [16:00]
14강.
05_02_팁_밑줄 제거 및 이름 규칙 위반 제거
05_02_팁_밑줄 제거 및 이름 규칙 위반 제거 [02:22]
15강.
06_01_SQL Server Database Project 생성
06_01_SQL Server Database Project 생성 [12:37]
16강.
07_01_MVC Scaffolding 기능으로 CRUD 빠르게 만들기
07_01_MVC Scaffolding 기능으로 CRUD 빠르게 만들기 [16:02]
17강.
08_01_Candidate List 페이지 만들기
08_01_Candidate List 페이지 만들기 [22:08]
18강.
08_02_Noodles 리스트 페이지 만들기
08_02_Noodles 리스트 페이지 만들기 [10:36]
19강.
09_01_IDbContextFactory 이름의 Git 브랜치 생성
09_01_IDbContextFactory 이름의 Git 브랜치 생성 [00:49]
20강.
09_02_IDbContextFactory 인터페이스의 CreateDbContext 메서드로 DbContext 생성
09_02_IDbContextFactory 인터페이스의 CreateDbContext 메서드로 DbContext 생성 [08:47]
21강.
09_03_IDbContextFactory 브랜치에 대한 끌어오기 요청 만들기
09_03_IDbContextFactory 브랜치에 대한 끌어오기 요청 만들기 [01:30]
22강.
10_01_Candidates Create 컴포넌트 작성하기
10_01_Candidates Create 컴포넌트 작성하기 [00:35]
23강.
10_02_Candidates 폴더에 Create 컴포넌트 만들기
10_02_Candidates 폴더에 Create 컴포넌트 만들기 [02:03]
24강.
10_03_MVC 스캐폴딩으로 만들어진 Create 폼 UI 가져오기
10_03_MVC 스캐폴딩으로 만들어진 Create 폼 UI 가져오기 [03:23]
25강.
10_04_EditForm 컴포넌트를 사용하여 Create 폼을 만들고 유효성 검사 관련 컴포넌트 적용하기
10_04_EditForm 컴포넌트를 사용하여 Create 폼을 만들고 유효성 검사 관련 컴포넌트 적용하기 [10:33]
26강.
10_05_InputText 컴포넌트 사용하기
10_05_InputText 컴포넌트 사용하기 [09:17]
27강.
10_06_InputCheckbox 컴포넌트 사용하기
10_06_InputCheckbox 컴포넌트 사용하기 [04:01]
28강.
10_07_ValidationMessage 컴포넌트 사용하여 유효성 검사 메시지 한꺼번에 출력하기
10_07_ValidationMessage 컴포넌트 사용하여 유효성 검사 메시지 한꺼번에 출력하기 [04:07]
29강.
10_08_Candidate Create Form_글쓰기 폼 UI 만들기
10_08_Candidate Create Form_글쓰기 폼 UI 만들기 [02:16]
30강.
11_01_CreateProcess_EditForm에 OnValidSubmit event 사용하기
11_01_CreateProcess_EditForm에 OnValidSubmit event 사용하기 [09:32]
31강.
11_02_StatusMessage 속성으로 상태 메시지 표시하기
11_02_StatusMessage 속성으로 상태 메시지 표시하기 [05:17]
32강.
11_03_StatusMessage CSS Class에 Bootstrap Alert 사용하기
11_03_StatusMessage CSS Class에 Bootstrap Alert 사용하기 [03:52]
33강.
11_04_글쓰기 중복 입력 방지하기
11_04_글쓰기 중복 입력 방지하기 [06:56]
34강.
11_05_OnInvalidSubmit 속성 사용하기
11_05_OnInvalidSubmit 속성 사용하기 [04:53]
35강.
11_06_Candidates 글쓰기 폼 완성하기
11_06_Candidates 글쓰기 폼 완성하기 [03:27]
36강.
12_01_Take 확장 메서드로 페이징 처리하기
12_01_Take 확장 메서드로 페이징 처리하기 [06:27]
37강.
12_02_PageIndex 속성 추가 및 Skip과 Take 메서드로 페이징 처리
12_02_PageIndex 속성 추가 및 Skip과 Take 메서드로 페이징 처리 [02:53]
38강.
12_03_OnParametersSetAsync 메서드로 라우트 파라미터 받기
12_03_OnParametersSetAsync 메서드로 라우트 파라미터 받기 [02:53]
39강.
12_04_NavigationManager 클래스로 초기 페이지를 무조건 1페이지로 이동시키기
12_04_NavigationManager 클래스로 초기 페이지를 무조건 1페이지로 이동시키기 [03:40]
40강.
12_05_NavigationManager 클래스로 마지막 페이지로 이동하기
12_05_NavigationManager 클래스로 마지막 페이지로 이동하기 [04:47]
41강.
12_06_페이징 처리를 위한 RecordCount 속성과 PageCount 속성 추가하기
12_06_페이징 처리를 위한 RecordCount 속성과 PageCount 속성 추가하기 [05:42]
42강.
12_07_부트스트랩의 pagination CSS 클래스로 페이저 버튼 표현하기
12_07_부트스트랩의 pagination CSS 클래스로 페이저 버튼 표현하기 [05:22]
43강.
12_08_페이저 버튼에 이전(Prev)과 다음(Next)으로 이동하는 버튼 추가
12_08_페이저 버튼에 이전(Prev)과 다음(Next)으로 이동하는 버튼 추가 [04:10]
44강.
13_01_하나 이상의 컴포넌트에서 재사용 가능한 EditorForm 컴포넌트 생성
13_01_하나 이상의 컴포넌트에서 재사용 가능한 EditorForm 컴포넌트 생성 [09:43]
45강.
13_02_EventCallback 구조체를 사용하여 자식 컴포넌트의 이벤트를 부모에게 전달하기
13_02_EventCallback 구조체를 사용하여 자식 컴포넌트의 이벤트를 부모에게 전달하기 [06:32]
46강.
14_01_수정(Edit) 폼 기본 UI HTML 만들기
14_01_수정(Edit) 폼 기본 UI HTML 만들기 [05:34]
47강.
14_02_Edit 폼에 FirstOrDefaultAsync로 단일 데이터 출력
14_02_Edit 폼에 FirstOrDefaultAsync로 단일 데이터 출력 [07:32]
48강.
14_03_수정 폼 로드할 때 없는 데이터 요청시 bootstrap alert로 경고 표시
14_03_수정 폼 로드할 때 없는 데이터 요청시 bootstrap alert로 경고 표시 [06:22]
49강.
14_04_수정 폼의 저장 버튼 텍스트 동적으로 변경하기
14_04_수정 폼의 저장 버튼 텍스트 동적으로 변경하기 [03:47]
50강.
14_05_수정 폼 처리에 따른 결과를 상태 메시지로 표시하기
14_05_수정 폼 처리에 따른 결과를 상태 메시지로 표시하기 [07:17]
51강.
14_06_ProtectedLocalStorage 클래스로 브라우저의 localStorage 컬렉션에 데이터를 저장하고 검색
14_06_ProtectedLocalStorage 클래스로 브라우저의 localStorage 컬렉션에 데이터를 저장하고 검색 [13:00]
52강.
14_07_수정 폼에서 취소 버튼 클릭했을 때 이전 페이지 번호를 가지고 리스트로 이동
14_07_수정 폼에서 취소 버튼 클릭했을 때 이전 페이지 번호를 가지고 리스트로 이동 [06:35]
53강.
15_01_Blazor 강의_람다식으로 삭제 버튼 클릭 이벤트 비동기 처리
15_01_Blazor 강의_람다식으로 삭제 버튼 클릭 이벤트 비동기 처리 [08:33]
54강.
15_02_데이터 읽어오는 코드를 DisplayData 이름의 메서드로 분리하여 사용하기
15_02_데이터 읽어오는 코드를 DisplayData 이름의 메서드로 분리하여 사용하기 [03:39]
55강.
15_03_IJSRuntime을 주입하여 JavaScript confirm으로 삭제 확인 경고 대화 상자 출력하기
15_03_IJSRuntime을 주입하여 JavaScript confirm으로 삭제 확인 경고 대화 상자 출력하기 [05:02]
56강.
16_01_동시성 충돌(Concurrency conflicts)
16_01_동시성 충돌(Concurrency conflicts) [04:35]
57강.
16_02_동시성 충돌 예외 상황 발생시키기(DbUpdateConcurrencyException)
16_02_동시성 충돌 예외 상황 발생시키기(DbUpdateConcurrencyException) [06:52]
58강.
16_03_Delete 버튼 클릭시 DbUpdateConcurrencyException 예외를 처리해서 동시성 충돌 해결
16_03_Delete 버튼 클릭시 DbUpdateConcurrencyException 예외를 처리해서 동시성 충돌 해결 [03:03]
59강.
16_04_Edit 버튼 클릭시 DbUpdateConcurrencyException 예외를 처리해서 동시성 충돌 해결
16_04_Edit 버튼 클릭시 DbUpdateConcurrencyException 예외를 처리해서 동시성 충돌 해결 [11:08]
60강.
17_01_Script-Migration 명령을 사용하여 데이터베이스 개체를 순수 SQL 스크립트로 뽑아내기
17_01_Script-Migration 명령을 사용하여 데이터베이스 개체를 순수 SQL 스크립트로 뽑아내기 [06:05]
61강.
17_02_SQL Server Database Project 스크립트 변경 사항 정리
17_02_SQL Server Database Project 스크립트 변경 사항 정리 [04:47]
62강.
17_03_자주 사용하는 공통 네임스페이스들을 _Imports 파일에 모아서 관리하기
17_03_자주 사용하는 공통 네임스페이스들을 _Imports 파일에 모아서 관리하기 [02:21]
63강.
17_04_namespace 지시문을 사용하여 컴포넌트의 네임스페이스를 고정값으로 설정하기
17_04_namespace 지시문을 사용하여 컴포넌트의 네임스페이스를 고정값으로 설정하기 [05:17]
64강.
17_05_페이저 버튼 카운트를 5개로 고정
17_05_페이저 버튼 카운트를 5개로 고정 [08:47]
65강.
18_01_IdentityUser를 상속하는 ApplicationUser 클래스 만들고 DbContext에 등록하기
18_01_IdentityUser를 상속하는 ApplicationUser 클래스 만들고 DbContext에 등록하기 [18:08]
66강.
18_02_IEmailSender 인터페이스를 구현하는 EmailSender 클래스 생성 및 종속성 주입 적용하기
18_02_IEmailSender 인터페이스를 구현하는 EmailSender 클래스 생성 및 종속성 주입 적용하기 [03:17]
67강.
18_03_스캐폴딩 기능으로 ASP.NET Core Identity UI 모두 다시 가져오기
18_03_스캐폴딩 기능으로 ASP.NET Core Identity UI 모두 다시 가져오기 [04:38]
68강.
19_01_지원자 별칭을 관리하는 CandidatesNames 모델 및 테이블 추가
19_01_지원자 별칭을 관리하는 CandidatesNames 모델 및 테이블 추가 [07:23]
69강.
19_02_이미 완성된 Candidates 기능을 CandidatesNames 기능으로 빠르게 가져오기
19_02_이미 완성된 Candidates 기능을 CandidatesNames 기능으로 빠르게 가져오기 [20:57]
70강.
19_03_component 태그 헬퍼를 사용하여 CSHTML 페이지에 Blazor 컴포넌트 포함하여 실행시키기
19_03_component 태그 헬퍼를 사용하여 CSHTML 페이지에 Blazor 컴포넌트 포함하여 실행시키기 [09:52]
71강.
19_04_component 태그 헬퍼 사용 설정 두 가지 확인
19_04_component 태그 헬퍼 사용 설정 두 가지 확인 [01:57]
72강.
19_05_지원자 별칭(CandidatesNames) 관리 컴포넌트 만들고 적용하기
19_05_지원자 별칭(CandidatesNames) 관리 컴포넌트 만들고 적용하기 [14:37]
73강.
19_06_CandidatesNames_입력 출력 삭제 기능을 하나의 컴포넌트에서 구현하기
19_06_CandidatesNames_입력 출력 삭제 기능을 하나의 컴포넌트에서 구현하기 [04:09]
74강.
19_07_CandidatesNames 모듈의 UI 약간 개선하기
19_07_CandidatesNames 모듈의 UI 약간 개선하기 [01:20]
75강.
20_01_CandidatesNames 기능에 UI 업데이트하기
20_01_CandidatesNames 기능에 UI 업데이트하기 [02:42]
76강.
21_01_RadioButton onchange 이벤트를 사용하여 특정 영역 표시 또는 감추기
21_01_RadioButton onchange 이벤트를 사용하여 특정 영역 표시 또는 감추기 [08:27]
77강.
22_01_UserId 파라미터 추가 및 UserId에 해당하는 자료만 리스트 출력 및 입력
22_01_UserId 파라미터 추가 및 UserId에 해당하는 자료만 리스트 출력 및 입력 [06:52]
78강.
22_02_UserManager로 UserId 가져온 후 component 태그 헬퍼에 파라미터로 전달
22_02_UserManager로 UserId 가져온 후 component 태그 헬퍼에 파라미터로 전달 [11:36]
79강.
22_03_Razor Pages에서 전달된 파라미터를 받아 Blazor 컴포넌트에서 사용하기
22_03_Razor Pages에서 전달된 파라미터를 받아 Blazor 컴포넌트에서 사용하기 [05:33]
80강.
23_01_CandidatesNames 컴포넌트를 복사해서 CandidatesIncomes 컴포넌트를 빠르게 생성
23_01_CandidatesNames 컴포넌트를 복사해서 CandidatesIncomes 컴포넌트를 빠르게 생성 [13:27]
81강.
23_02_InputNumber 컴포넌트로 숫자 데이터 입력 받기
23_02_InputNumber 컴포넌트로 숫자 데이터 입력 받기 [03:52]
82강.
23_03_Blazor 컴포넌트에 부트스트랩으로 UI 꾸미기
23_03_Blazor 컴포넌트에 부트스트랩으로 UI 꾸미기 [10:50]
83강.
24_04_tfoot 태그에 합계 출력하기
24_04_tfoot 태그에 합계 출력하기 [10:22]