BACKEND CONCEPT NOTES

개념정리

면접에서 기능을 나열하지 않고, 전제·선택·실패 모드·검증 방법을 설명하기 위한 C#과 ASP.NET Core 실무 노트입니다.

C# 객체지향 핵심

캡슐화와 불변식

상태 변경을 메서드로 제한해 잔액·재고 같은 불변식을 한 경계에서 검증합니다.

상속보다 구성

변하는 정책은 인터페이스와 조합으로 분리해 결합과 파급 범위를 줄입니다.

다형성과 인터페이스

호출자는 행위 계약에 의존하고 구현은 교체 가능하게 둡니다.

SOLID와 DI

의존성 역전은 테스트 편의가 아니라 외부 기술과 도메인 규칙의 경계를 만드는 일입니다.

값·참조·불변성

변경 공유가 위험한 데이터는 불변 값 객체로 모델링하고 복사 비용과 함께 판단합니다.

예외와 자원

예외는 예상 가능한 분기가 아닌 실패 경로에 사용하고 자원은 using으로 소유권을 명확히 합니다.

ASP.NET Core 실무 기본기

미들웨어

예외·보안·라우팅·엔드포인트 순서는 요청과 응답의 흐름을 기준으로 결정합니다.

서비스 수명

Singleton은 공유 상태와 스레드 안전성을, Scoped는 요청 경계와 DbContext 수명을 고려합니다.

비동기와 취소

비동기 I/O는 대기 중 스레드를 반환하며 CancellationToken은 클라이언트 이탈을 하류까지 전파합니다.

데이터 정합성

트랜잭션, 낙관적 동시성, 멱등성 키는 서로 다른 실패 모드를 막으므로 함께 설계합니다.

보안과 구성

비밀은 소스 밖에 두고 인증과 인가는 별도로 검증하며 입력은 서버에서 다시 검증합니다.

관측성과 운영

구조화 로그, 추적 ID, 헬스 체크, 지표를 통해 장애의 영향과 원인을 빠르게 좁힙니다.

ASP.NET Core 실무 면접 30문항