Blazor Server Data Binding

  • 4 minutes to read

One-way Binding 및 Two-way Binding 단계별 따라하기

Blazor Server에서 데이터 바인딩은 컴포넌트와 사용자 인터페이스 간의 데이터 흐름을 관리하는 핵심 기술입니다. 이 가이드에서는 Blazor의 One-way Binding과 Two-way Binding을 단계별로 알아보고, 이를 실습해보겠습니다.

1단계: 새로운 Blazor Server 프로젝트 만들기

  1. Visual Studio에서 새로운 Blazor Server 프로젝트를 생성합니다.
  2. 프로젝트 이름은 Hawaso로 설정하고, 프로젝트 유형을 Blazor Server App으로 선택하세요.

2단계: One-way Binding 이해하기

One-way Binding은 데이터가 모델에서 뷰로 흐르지만, 뷰에서 모델로는 흐르지 않는 방식입니다. 먼저, One-way Binding의 기본 개념을 이해하기 위해 간단한 예제를 만들어봅시다.

2.1. 데이터 모델 생성

Data 폴더에 Person.cs 파일을 생성하고 다음 코드를 추가합니다:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

2.2. One-way Binding 컴포넌트 생성

Components/Demos/DataBindingDemo 폴더에 OneWayBinding.razor 파일을 추가하고 다음 코드를 작성합니다:

@page "/one-way-binding"
@code {
    private Person person = new Person { Name = "John Doe", Age = 30 };
}
<h3>One-way Binding Example</h3>
<p>Name: @person.Name</p>
<p>Age: @person.Age</p>

3단계: Two-way Binding 이해하기

Two-way Binding은 데이터가 모델과 뷰 사이에서 양방향으로 흐르는 방식입니다. 즉, 뷰에서 모델로의 데이터 변경이 가능하며, 그 반대도 가능합니다.

3.1. Two-way Binding 컴포넌트 생성

Components/Demos/DataBindingDemo 폴더에 TwoWayBinding.razor 파일을 추가하고 다음 코드를 작성합니다:

@page "/two-way-binding"
@code {
    private Person person = new Person { Name = "Jane Doe", Age = 25 };
}
<h3>Two-way Binding Example</h3>
<label>Name: <input @bind="person.Name" /></label>
<label>Age: <input @bind="person.Age" type="number" /></label>
<p>Updated Name: @person.Name</p>
<p>Updated Age: @person.Age</p>

4단계: bind-valuebind-value:event 사용하기

Blazor의 @bind 구문은 단순화된 형태의 양방향 바인딩입니다. 그러나 더 많은 제어가 필요할 때 bind-valuebind-value:event를 사용할 수 있습니다.

4.1. bind-valuebind-value:event의 기본 사용법

Components/Demos/DataBindingDemo 폴더에 BindValueExample.razor 파일을 추가하고 다음 코드를 작성합니다:

@page "/bind-value-example"
@code {
    private string currentValue = "Initial Value";
    private void OnInput(ChangeEventArgs e)
    {
        currentValue = e.Value.ToString();
    }
}
<h3>bind-value and bind-value:event Example</h3>
<input bind-value="currentValue" bind-value:event="oninput" />
<p>Current Value: @currentValue</p>

위 코드는 oninput 이벤트가 발생할 때마다 입력 값을 currentValue에 바인딩합니다.

5단계: 실습을 통해 데이터 바인딩 이해하기

5.1. One-way Binding 실습

OneWayBinding.razor 컴포넌트를 실행하여 다음과 같은 결과를 확인합니다:

Name: John Doe
Age: 30

이 예제에서는 모델의 데이터가 뷰로만 전달되며, 사용자가 이를 변경할 수 없습니다.

5.2. Two-way Binding 실습

TwoWayBinding.razor 컴포넌트를 실행하여 다음과 같은 결과를 확인합니다:

Name: [Jane Doe]
Age: [25]

Updated Name: Jane Doe
Updated Age: 25

이 예제에서는 입력 필드를 통해 사용자가 데이터를 변경할 수 있으며, 변경된 데이터는 모델에 반영됩니다.

5.3. bind-valuebind-value:event 실습

BindValueExample.razor 컴포넌트를 실행하여 다음과 같은 결과를 확인합니다:

Current Value: Initial Value

입력 필드에 값을 입력하면 currentValue가 즉시 업데이트됩니다.

마무리

Blazor Server에서 One-way Binding과 Two-way Binding은 데이터와 사용자 인터페이스 간의 상호작용을 효율적으로 관리하는 데 중요한 역할을 합니다. 이 가이드를 통해 기본적인 데이터 바인딩 개념을 이해하고, 다양한 실습을 통해 이를 실제 프로젝트에 적용해보세요.

더 깊이 공부하고 싶다면
DevLec에서는 실무 중심의 C#, .NET, ASP.NET Core, Blazor, 데이터 액세스 강좌를 단계별로 제공합니다. 현재 수강 가능한 강좌 외에도 더 많은 과정이 준비되어 있습니다.
DevLec.com에서 자세한 커리큘럼을 확인해 보세요.
DevLec 공식 강의
C# Programming
C# 프로그래밍 입문
프로그래밍을 처음 시작하는 입문자를 위한 C# 기본기 완성 과정입니다.
ASP.NET Core 10.0
ASP.NET Core 10.0 시작하기 MVC Fundamentals Part 1 MVC Fundamentals Part 2
웹 애플리케이션의 구조와 MVC 패턴을 ASP.NET Core로 실습하며 익힐 수 있습니다.
Blazor Server
풀스택 웹개발자 과정 Part 1 풀스택 웹개발자 과정 Part 2 풀스택 웹개발자 과정 Part 3
실무에서 바로 활용 가능한 Blazor Server 기반 관리자·포털 프로젝트를 만들어 봅니다.
Data & APIs
Entity Framework Core 시작하기 ADO.NET Fundamentals Blazor Server Fundamentals Minimal APIs
데이터 액세스와 Web API를 함께 이해하면 실무 .NET 백엔드 개발에 큰 도움이 됩니다.
VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com