C# .NET 인터뷰 주제 정리: 트랜잭션, 비동기 처리, LINQ 및 디자인 패턴
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

C# .NET 인터뷰 주제 정리 - 어떻게 진행되었을까?

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

.NET 개발자 및 인터뷰 준비자 (초보자 ~ 중급 이상)

난이도: 중급 ~ 고급 (이론과 실무 모두 포함)

핵심 요약

  • 트랜잭션 처리: SaveChanges()암시적 트랜잭션을 사용하고, 복잡한 작업은 BeginTransaction() 또는 TransactionScope명시적 트랜잭션 필요
  • 비동기 처리: async Task 사용, await스태트 머신을 통해 비동기 작업 처리, ConfigureAwait(false)원래 컨텍스트 회피
  • LINQ & 보안: LINQ로 쿼리 작성, SqlParameter 사용으로 SQL 인젝션 방지
  • 디자인 패턴: Repository/Unit of Work 패턴으로 테스트 가능성이 높은 구조 설계
  • .NET 최신 기능: .NET 8 (AOT 컴파일, 성능 개선), .NET 9 (성능 최적화, 툴링 개선)

섹션별 세부 요약

1. 트랜잭션 및 동시성 관리

  • SaveChanges()암시적 트랜잭션을 통해 변경 사항을 롤백
  • 복잡한 작업은 BeginTransaction()으로 명시적 트랜잭션 사용
  • 낙관적 동시성 처리: [Timestamp] 또는 .IsRowVersion()로 충돌 감지 및 DbUpdateConcurrencyException 처리

2. 비동기 처리 및 LINQ

  • async Task 사용으로 예외 처리테스트 가능성 향상
  • await스태트 머신을 통해 비동기 작업 실행, ConfigureAwait(false)스레드 블록 방지
  • LINQ로 쿼리 작성, SqlParameter 사용으로 SQL 인젝션 방지

3. 디자인 패턴 및 테스트

  • Repository/Unit of Work 패턴으로 테스트 가능성결합도 분리
  • DI (의존성 주입) 사용: AddScoped(), AddSingleton()으로 서비스 구성
  • Moq, NSubstitute 등 라이브러리로 인터페이스 모킹외부 의존성 시뮬레이션

4. 컬렉션 및 성능 최적화

  • ConcurrentDictionary, BlockingCollection, ImmutableList스레드 안전 컬렉션 사용
  • IEnumerable vs IQueryable: 지연 실행 vs 쿼리 변환
  • .NET 8AOT 컴파일Blazor 통합 개선

5. 데이터베이스 및 인덱싱

  • PK (주키): 유일성 강제, Clustered 인덱스: 물리적 순서 정의
  • Non-clustered 인덱스: 빠른 조회를 위한 별도 구조
  • SQL Server에서 네스티드 트랜잭션은 실제 독립적이지 않음, SAVEPOINT 사용 권장

결론

  • 트랜잭션 처리 시 암시적/명시적 구분TransactionScope 사용 주의
  • LINQ + SqlParameterSQL 인젝션 방지코드 안정성 확보
  • Repository/Unit of Work 패턴과 DI테스트 가능하고 유연한 아키텍처 설계
  • .NET 8/9성능 최적화 기능에 대한 이해와 활용 필수