본문 바로가기
반응형

프로그래밍/C#122

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 최종 키JSON 구조 환경 변수 키.NET은 구분자 :을 __.. 2025. 4. 12.
C# 2개의 list 하나로 합치기 2개의 list 하나로 합치기프로그래밍 작업을 하다 보면 서로 다른 2개의 list를 하나로 합쳐야 하는 순간이 반드시 올 것이다. 이때 어떻게 하면 더 편하고 간단하게 할 수 있을지 알아보자.루프를 이용한 수동 추가보통 루프를 이용한 수동 추가를 기본적으로 사용한다.using System;using System.Collections.Generic;class Program{ static void Main() { List listA = new List { 1, 2, 3, 4 }; List listB = new List { 5, 6, 7 }; List listC = new List(listA); foreach (var item in listB) .. 2025. 3. 30.
JSON 점 표기법(Dot Notation)에 대해서 JSON 점 표기법(JSON Dot Notation)JSON 형식으로 커뮤니케이션을 진행할 때 JSON 점 표기법을 이용하는 경우가 많다. 점 표기법은 JSON 구조에서 특정 필드(속성)에 접근할 때 parent.child 형식으로 중첩된 JSON 객체의 속성을 간결하게 표현하는 방법이다. 해당 방식으로 JSON의 값들을 표현하고, 특정 값을 쉽고 빠르게 전달할 수 있도록 도와준다.기본 JSON 예제{ "user": { "id": 123, "name": "Alice", "address": { "city": "New York", "zip": "10001" } }, "action": "Login"}">{.. 2025. 3. 6.
EF Core에서 Find() vs Local.Where() 차이점 Find() vs Local.Where()EF Core에서 DbContext.Set()를 사용해서 데이터에 접근할 때 Find()와 Local.Where()의 차이에 대해서 이해하고 적절한 상황에 알맞게 사용하는 것이 중요하다. 보통의 경우 SaveChanges() 메서드를 호출하기 전에 메모리에 있는 데이터에 접근하기 위해서 Find()와 Local을 이용할 텐데 이때 두 방법의 차이를 알아두면 코드 작성 시에 도움이 된다.Find() 메서드Find()는 기본 키(Primary Key)를 기준으로 엔티티(Entity)를 검색한다.먼저 DbContext의 변경 추적(Tracking)된 메모리에 해당 데이터가 있는지 확인한 후, 없으면 데이터베이스에서 조회한다.기본 키로만 검색이 가능하며, 다른 컬럼 조건.. 2025. 3. 5.
C# 컴퓨터가 문자를 표현하는 방법, 문자 인코딩 string에서 byte[]로 변환하기string 타입에서 ToCharArray() 함수를 통해서 바로 Char배열로 변환하는 함수는 존재하지만 ToByteArray() 함수는 존재하지 않는다. 그 이유는 무엇일까? 그 이유는 byte[]로 변환하기 위해서는 결정해야 할 사항들이 있기 때문이다. 변환하기 위해서는 반드시 문자 인코딩을 설정해야 한다. 왜냐면 인코딩이 무엇이냐에 따라서 결괏값이 달라지기 때문이다.문자 집합(Character Set, Charset)문자 집합은 문자들의 모음이다. 즉, 어떤 문자들이 포함될지를 정의한 목록이라고 생각하면 이해가 빠르다. 예를 들어 영어 알파벳(A-Z), 숫자(0-9), 특수 기호(!, @, # 등) 등을 포함하는 문자 집합이 있을 수 있고, 한글이나 일본어, .. 2025. 2. 20.
C# 폴더 안에 있는 모든 파일 찾기 해당 경로 폴더 안에 모든 파일 찾기원하는 경로를 지정해서 DirectoryInfo 객체를 생성해서 GetFiles() 매서드를 호출하면 해당 파일 내에 존재하는 모든 파일에 대한 정보를 얻을 수 있다. (폴더는 조회되지 않는다.)DirectoryInfo di = new DirectoryInfo(filePath);foreach (FileInfo fi in di.GetFiles()){ Console.WriteLine($"파일 이름 : {fi.Name}");}해당 경로 폴더 안에 모든 폴더 찾기원하는 경로를 지정해서 DirectoryInfo 객체를 생성해서 GetDirectories() 매서드를 호출하면 해당 파일 내에 존재하는 모든 폴더에 대한 정보를 얻을 수 있다. (파일은 조회되지 않는다.)Dir.. 2025. 1. 23.