ASP.NET Core MVC에서 QR Code 생성하기: qrcode.js를 활용한 간단한 구현

  • 3 minutes to read

ASP.NET Core MVC 애플리케이션에서 QR 코드를 생성하는 방법에 대해 설명하겠습니다. 이 예제에서는 JavaScript 라이브러리인 qrcode.js를 사용하여 클라이언트 측에서 QR 코드를 생성합니다. 이를 통해 특정 URL을 QR 코드로 변환하고, 브라우저에 표시할 수 있습니다.

프로젝트 설정

1. ASP.NET Core MVC 프로젝트 생성

먼저, ASP.NET Core MVC 프로젝트를 생성합니다. Visual Studio를 열고 새 프로젝트를 만듭니다. "ASP.NET Core Web Application"을 선택하고, 템플릿으로 "ASP.NET Core MVC"를 선택합니다.

2. qrcode.js 라이브러리 추가

프로젝트의 wwwroot/lib 폴더에 qrcode.js 파일을 추가합니다. qrcode.js GitHub 페이지에서 qrcode.min.js 파일을 다운로드하여 wwwroot/lib 폴더에 저장합니다.

컨트롤러 작성

컨트롤러는 QR 코드 생성을 위한 단순한 액션 메서드를 포함합니다.

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

namespace KodeeOne.Codes
{
    [AllowAnonymous]
    public class QRCodeController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
}

위 코드는 QRCodeController라는 컨트롤러를 정의하고, Index 액션 메서드를 통해 뷰를 반환합니다. [AllowAnonymous] 속성을 사용하여 인증 없이 접근할 수 있도록 설정합니다.

뷰 작성

이제 QR 코드를 생성하고 표시할 뷰를 작성합니다. Views/QRCode/Index.cshtml 파일을 추가하고 다음 코드를 작성합니다.

@{
    Layout = null; 
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>KodeeOne Employee Licensing</title>
    <script src="~/lib/qrcode.min.js"></script>
</head>
<body>
    <h2>https://www.memoengine.com</h2>
    <div id="qrcode"></div>

    <script type="text/javascript">
        var url = "https://www.memoengine.com";
        var qrcode = new QRCode(document.getElementById("qrcode"), {
            text: url,
            width: 128,
            height: 128,
        });
    </script>
</body>
</html>

위 HTML 코드에서는 qrcode.min.js 라이브러리를 로드하고, JavaScript를 사용하여 특정 URL (https://www.memoengine.com)을 QR 코드로 변환합니다. QRCode 객체를 생성하고, text 속성에 URL을 설정하여 QR 코드를 생성합니다.

라우팅 설정 확인

프로젝트의 Startup.cs 파일에서 기본 라우팅 설정이 올바르게 되어 있는지 확인합니다.

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=QRCode}/{action=Index}/{id?}");
    });
}

실행 및 확인

프로젝트를 실행하고 브라우저에서 https://localhost:{포트번호}/QRCode/Index로 이동하면 https://www.memoengine.com에 대한 QR 코드가 생성되어 페이지에 표시됩니다.

이와 같이, qrcode.js 라이브러리를 활용하여 클라이언트 측에서 QR 코드를 쉽게 생성할 수 있습니다. 이를 통해 특정 URL을 QR 코드로 변환하여 사용자에게 제공할 수 있습니다.

더 깊이 공부하고 싶다면
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