반응형 c#142 C# record에 대해서 알아보자 record 사용 예제C# 9.0에서 추가값 중심의 불변성(Immurable) 객체public record GiveItemRequest(int itemId, int itemCount);C# 레코드(record) 타입 문법을 사용한 불변(Immutable) 데이터 모델을 정의한다.간단히 말하자면 요청을 표현하는 데이터 전용 객체(DTO)를 아주 간결하게 표현한 것이다. 위에 코드를 풀어서 작성해 보자면, 이러한 형태가 된다.public class GiveItemRequest{ public int itemId { get; init; } public int itemCount { get; init; } public GiveItemRequest(int itemId, int itemCount) =>.. 2025. 4. 26. Entity Framework에서 [NotMapped] 속성 [NotMapped]란?해당 어노테이션이 들려있다면 이는 EF의 모델과 데이터베이스 간 매핑 대상에서 제외한다는 뜻이다.DB 테이블에는 존재하지 않음EF가 이 속성을 INSERT/SELECT/UPDATE에 포함하지 않음계산용, 임시 상태 저장용, DTO 전용 속성등으로 사용된다.[NotMapped]public SomeType SomeProperty { get; set; }대표적인 사용 예시FirstName, LastName은 각각 string 컬럼으로 DB에 생성되지만 FullName은 DB에 생성되지 않는다.코드에서 자유롭게 사용되고 특정한 용도로 활용된다.public class User{ public string FirstName { get; set; } public string LastN.. 2025. 4. 26. C# is 패턴 매칭(Pattern Matching)에 대해서 알아보자 is 패턴 매칭C# 패턴 매칭(Pattern Matching)은 "값의 타입이나 구조를 검사하면서 동시에 추출" 할 수 있게 해주는 기능이다.타입 체크 + 캐스팅을 한 번에 실행is not 패텀 매칭은 C# 9.0 이상에서 사용 가능is 패턴obj가 string 타입이면 true동시에 s라는 이름으로 형변환된 값을 바로 사용 가능if (obj is string s){ Console.WriteLine($"문자열 길이: {s.Length}");}is not 패턴obj가 string 타입이 아니면 true아닐 경우에만 countryString 사용이 가능하다.var country = "";if (country is not string countryString){ // country가 문자열이 아니면.. 2025. 4. 26. ASP.NET Core HTTP 요청 처리 흐름 알아보기 ASP.NET Core 요청 처리 흐름 기본 구조ASP.NET Core 미들웨어(Middleware) 구조는 파이프라인 기반이기 때문에, 미들웨어 > 컨트롤러 > 다시 미들웨어로 "되돌아오는 흐름"을 갖는다. 해당 흐름을 더 잘 이해하기 위해서 아래의 그림을 살펴보자. 가장 중요한 부분은 한번 지나갔던 미들웨어로 다시 되돌아온다는 것이다.┌──────────────────────────────┐│ 클라이언트 요청 (HTTP) │└──────────────┬───────────────┘ ▼ [ 미들웨어 1: 요청 처리 전 ] ▼ [ 미들웨어 2: 요청 처리 전 ] ▼ ... 여러 미들웨어 ... .. 2025. 4. 23. C# 환경변수로 appsettings.json 값 덮어쓰기 중첩된 키(nested keys)란?중첩된 키란 appsettings.json 같은 설정 파일에서 하위 계층 구조를 갖는 설정 값들을 의미한다. 즉, JSON의 객체 안에 또 다른 객체가 있는 경우를 말한다. 예시를 살펴보자. 다음과 같은 appsettings.json이 있다고 해보자.{ "AppSettings": { "Api": { "BaseUrl": "https://api.example.com", "ApiKey": "secret-key" } }}이 구조는 계층적으로 중첩(nested) 되어 있음AppSettings 최상위 키AppSettings:Api 중첩된 객체AppSettings:Api:BaseUrl 최종 키실제 사용 예제using Microsoft.Extensi.. 2025. 4. 12. HTTP Header에는 한글이 포함될 수 없다! Header로 데이터 보내기 HTTP Header로 데이터를 보내보자HTTP 헤더를 통해서 클라이언트는 서버에 각종 데이터를 전송할 수 있다. 하지만 HTTP 헤더는 전송 규약의 일부이기 때문에 ASCII 기반의 매우 엄격한 형식을 따른다.공식 규격: RFC 7230 - HTTP/1.1 메시지 형식Header-Name: Header ValueHeader-Name: ASCII 문자, 숫자, 하이픈(-)만 가능Header-Value: ASCII의 visible character (0x20~0x7E)만 사용 가능📌 HTTP Header에 포함될수 없는 문자들제어 문자(\n, \r, \t, \0 등) : ASCII 코드 0~31 및 127유니코드 문자(한글, 이모지 등) : ASCII 외의 확장 문자공백 (헤더 값 중간은 가능, 키는 안.. 2025. 4. 12. 이전 1 2 3 4 ··· 24 다음