반응형

C# 23

EF Core 마이그레이션 재설정 및 재적용 방법

EF Core를 사용하다 보면 개발 중 데이터베이스 스키마에 여러 번 변경이 발생하고, 그 결과 여러 마이그레이션 파일이 생성됩니다. 때로는 테스트 환경이나 초기 개발 단계에서 기존에 적용했던 마이그레이션을 제거하고 새롭게 시작해야 할 필요가 있습니다. 이번 포스트에서는 기존 DB에 적용된 마이그레이션을 제거하고 새로운 마이그레이션으로 재적용하는 방법을 단계별로 설명합니다.1. 상황 이해현재 상황:기존에 여러 마이그레이션이 적용된 상태에서, 코드 변경으로 인해 스키마를 다시 초기화하거나 새롭게 정의해야 하는 경우.문제점:이미 데이터베이스에 적용된 마이그레이션이 존재하면, dotnet ef migrations remove 명령어로 단순히 제거할 수 없습니다. (이미 DB에 반영된 경우 “마이그레이션 제거 ..

카테고리 없음 2025.03.31

Fuslogvw 어셈블리 바인딩 실패 추적 도구 사용법

Fuslogvw(Assembly Binding Log Viewer) 사용Fuslogvw.exe는 .NET Framework에서 발생하는 어셈블리 바인딩(로딩) 실패를 추적하는 도구입니다.관리자 권한으로 Developer Command Prompt 열기 -fuslogvw 라고 입력해 Assembly Binding Log Viewer 실행Settings 메뉴에서 “Log bind failures” (또는 “Log all binds”)를 체크하고, 로그를 저장할 경로 설정다시 Windows Service 설치(또는 installutil) 시도Fuslogvw 창으로 돌아와 Refresh 버튼을 클릭실패한 어셈블리 바인딩 기록이 있다면, 항목을 더블 클릭하여 상세 정보 확인

C# 2025.02.18

비동기 환경에서의 스레드 충돌 문제와 해결 방안

WCF와 SDK API의 스레드 문제 및 해결 방법1. 문제의 배경WCF(Windows Communication Foundation)는 기본적으로 호출을 처리하기 위해 고유한 스레드 풀을 활용합니다. 반면, 동기식 호출을 기반으로 작동하는 SDK API 는 특정 스레드에서의 호출을 요구하거나 스레드 상태를 관리합니다. 이로 인해 다음과 같은 문제가 발생할 수 있습니다:WCF 호출 스레드와 SDK API 호출 스레드가 동일한 경우, SDK 내부에서 스레드 상태(예: LockState)가 예상치 못한 방식으로 변경되어 오류가 발생.SDK API 호출 중 스레드 상태 충돌로 인해 연결이 끊어지거나 LockStateException과 같은 에러가 발생.2. 문제의 원인2.1 스레드 충돌WCF에서 제공하는 호출 ..

C# 2025.01.05

C#에서 동기메서드를 비동기 방식으로 처리하는 방법

C#에서 비동기 처리가 지원되지 않는 메서드를 사용해야 하는 경우, 비동기 작업을 효율적으로 처리하기 어려울 수있습니다. 이 글에서는 비동기 처리가 안 된 메서드를 비동기 방식으로 사용해야 하는 상황에서 어떤 접근 방식이 적합한지 알아보겠습니다. 1. 동기 메서드를 Task.Run으로 비동기화동기식으로 동작하는 메서드를 비동기 방식으로 호출하려면 Task.Run을 사용할 수 있습니다.Task.Run은 주어진 작업을 별도의 스레드에서 실행하여, 호출하는 스레드(보통 UI 스레드)를 차단하지 않으면서 작업을 처리할 수 있게 해 줍니다. public void BlockingMethod(){ // 동기적 작업}public async Task CallBlockingMethodAsync(){ await ..

C# 2024.08.22

Visual Studio 글꼴 & 색 변경 방법

오늘 7.26 Visual Studio 2022 버전 17.10 릴리스가 배포됐다. https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes#17.10.5 Visual Studio 2022 Release NotesLearn about the latest features, bug fixes, and support for Visual Studio 2022. Download today.learn.microsoft.com 여기서 눈에 띄는 것이 있었는데 바로 바로 바로... 서식 옵션 변경이었다. 도구 -> 옵션 을 들어간 뒤에 위 사진처럼 글꼴 및 색상을 바꿔서 서식을 바꿔줄 수 있다! 예쁜 글꼴있으면 댓글로 추천해 주세여저는 Yu ..

카테고리 없음 2024.07.26

EF Core 최신 N 연관관계 매핑

EF Core에서 N(Many-to-Many) 관계 매핑Entity Framework Core (EF Core)는 객체-관계형 매퍼(ORM)로, 데이터베이스와 객체 지향 프로그래밍을 연결하는 데 도움을 줍니다. EF Core 5.0 이상 버전에서는 Many-to-Many (N) 관계를 보다 간편하게 설정할 수 있습니다. 이 글에서는 최신 EF Core를 사용하여 Many-to-Many 관계를 설정하고, 이를 활용하는 방법을 설명합니다. 1. Many-to-Many 관계 개요Many-to-Many 관계는 두 엔티티가 서로 여러 관계를 가질 수 있는 경우를 의미합니다. 예를 들어, 학생(Student)은 여러 과목(Course)을 수강할 수 있고, 과목도 여러 학생이 수강할 수 있습니다.  2. 모델 클래스..

C# 2024.07.14

C# 비동기 프로그래밍: 비동기 vs 동기 처리

이 글에서는 비동기와 동기 처리의 차이를 코드 예제를 통해 비교해 보겠습니다.  동기 프로그래밍동기 프로그래밍에서는 각 작업이 순차적으로 실행됩니다. 한 작업이 완료될 때까지 다음 작업이 시작되지 않습니다. 이러한 방식은 간단하지만, 여러 작업을 동시에 처리해야 할 때 비효율적일 수 있습니다.동기 프로그래밍 예제다음은 동기적으로 아침 식사를 준비하는 코드 예제입니다. 이 코드는 커피를 만들고, 계란을 부치고, 베이컨을 굽고, 토스트를 준비하는 순서로 실행됩니다. C#using System;using System.Diagnostics;using System.Threading.Tasks;namespace SyncExample{ internal class Bacon { } internal class..

C# 2024.07.10

SQL DB에 대량 데이터 삽입하는 방법

1. 랜덤 데이터 생성 및 CSV 파일 작성먼저 C# 코드를 사용하여 랜덤 데이터를 생성하고 CSV 파일로 저장하는 방법을 알아봅니다.- 테이블에는 간단하게 age, name, id 만 포함 using System;using System.Collections.Generic;using System.IO;class Program{ static void Main() { Random random = new Random(); List dataRows = new List(); dataRows.Add(new string[] { "age", "name", "id" }); // CSV 헤더 for (int i = 0; i  2. CSV 파일을 SQL Serve..

C# 2024.05.13

.NET Framework 에서 Windows Service(서비스) 사용 하는 방법

프로젝트 Service 관련 설정1. 본인이 배포하길 원하는 service를 우클릭 후 디자이너 보기 클릭 2, 검은 화면에서 우클릭 후 설치 관리자 추가 클릭 3. serviceInstaller 우클릭 후 속성 클릭ServiceName, DisplayName, Description 등 설정StartType 은 Automatic으로 설정해주면 된다. 4. serviceProcessInstaller 에서 Account는 LocalSystem으로 변경 5. 모든 설정이 완료됐다면 build를 해준다.  WindowService 설치 1. 명령 프롬프트 (CMD) 를 이용해서 설치하기  1-1. 명령 프롬프트(cmd) 를 관리자 권한으로 실행 1-2. InstallUtil.exe 도구가 있는 디렉터리로 이동 ..

C# 2024.04.19

Visual Studio 에서 .NET Framework 프로젝트 서버 배포 방법

서버 배포에는 여러가지 방법이 있지만 그중 Setup 파일을 활용해서 배포하는 방법을 알아볼게요 상단 바에 확장 안에 확장 관리가 있고, 확장 관리에서 installer 를 검색하면 Visual Studio Installer Project 를 찾을 수 있습니다 다운로드 해주세요 다운로드가 됐다면 다음과 같이 Debug 모드가 아닌 Release 모드로 변경 후 빌드를 하면 됩니다. 1. 배포하려는 프로젝트가 있는 솔루션의 속성을 들어갑니다. 2. 구성 관리자 클릭 후 활성 솔루션 구성을 Debug -> Release 로 변경해 줍니다. 3. 빌드를 진행합니다. 4. SetUp 프로젝트를 추가합니다. 추가는 아래의 방법으로 할 수 있습니다. (4-1) (4-2) (4-3) 우클릭 -> View -> 파일 ..

C# 2024.04.16
반응형