본문 바로가기

전체 글253

[C#] CancellationToken 사용법 시작CancellationToken이라는 것을 알고 있었지만, 어떻게 작동하는지는 모르고 있었다.왜냐하면 회사의 코드에는 CancellationToken만 적혀있었기 때문에 무슨 의도인지는 알았지만 도대체 어떻게 동작하는지,감이 오지 않았다. 이런 코드로 있었기 때문,CancellationToken cancellationToken = new CancellationToken();var response = await ExecuteAsync(async token => await httpClient.PostAsync(url, content, token), cancellationToken); 이러면 프로그램이 어떻게 알고 취소를 하는거지? 싶었다. 그리고 알아본 바, 공식 문서https://learn.micros.. 2024. 7. 11.
[C#, Dart] Dart와 C#에서의 변경 불가능한 변수: `final`과 `readonly` 비교 Dart에서 final 키워드의 의미와 사용법Dart에서 final 키워드는 변수를 한 번만 할당할 수 있도록 제한하는 데 사용됩니다. final로 선언된 변수는 단 한 번 초기화될 수 있으며, 초기화된 후에는 값이 변경될 수 없습니다. 이는 주로 상수 또는 변경되지 않아야 하는 값을 정의할 때 사용됩니다. 다음은 final 키워드의 주요 특징과 사용 예입니다:주요 특징초기화 후 변경 불가: final 변수는 한 번 초기화된 후 값을 변경할 수 없습니다.런타임 상수: final 변수는 컴파일 시점이 아닌 런타임 시점에서 값을 할당할 수 있습니다.지연 초기화: final 변수는 선언 시 즉시 초기화하지 않고 나중에 한 번만 초기화할 수 있습니다.사용 예void main() { final String na.. 2024. 7. 1.
[C#] 형 변환에 대하여 (for string 그리고 메모리 관점) 들어가며 C#을 사용하며 우리는 많은 형변환을 하게 된다. 그래서 이런 저런 형변환 방법을 사용하게 되는데, string을 예로 들자면 아래 3개를 사용한다고 할 수 있겠다. (string) 캐스팅 .ToString() 메서드 as 연산자 왜 이렇게 다양한 방법이 존재할까? 궁금했다. 그리고 이번에 회사에서 리팩토링을 진행하며, 위 3가지 방법 중 1, 2번을 사용했는데 사실 모두 .ToString()만 사용했다. (string)이 사용된 것을 보기만 하고, 심지어 (string)을 .ToString()으로 바꿔버리기도 했다. 이유는 잘 모르는 상태에서, 회사 분의 말씀을 듣고 저게 더 좋은 방법이라고 생각했기 때문... 하지만 이번 조사에서 각각의 차이점을 알게 되었고, 정리해보고자 한다. 각각의 장점.. 2024. 4. 17.
[Python] URL 이어붙이는 최적의 방법 개요 각 프로그래밍 언어에서 다른 리소스의 데이터를 불러올 때, URL을 사용하게 되는데 이때 변수가 여러개 들어가고, 매번 달라져야 한다면, URL string을 매번 고치는 것이 아니라 이쁘게 만들어서 보기 좋게 만드는 것이 수정하기에도 좋을 것이다. 그리고 나중에 다른 개발자가 수정하게 되더라도, 잘 짜여진 코드를 보고 쉽게 수정할 수 있다. 코드 from urllib.parse import urlencode # Your base URL base_url = "http://example.com" # Parameters to append params = { "param1": "value1", "param2": "value2" } # Encode parameters encoded_params = urle.. 2024. 3. 29.
[C#] HttpClient, IHttpClientFactory 차이와 올바른 사용법 최근 인터페이스 사용이 잦아지며, 인터페이스가 아닌 코드를 인터페이스화 하는 작업을 하고 있다. 그러다 가끔 HttpClient와 IHttpClientFactory 처럼, 사용되는 변수와 들어가는 인스턴스의 형식이 다른걸 발견하게 된다. 궁금해서 왜 그런지 찾아보았는데, 결국 들어가는건 같은 형이 되었기 때문에 상관 없었지만, 조금 더 알아보았다. 그리고 차이를 찾았는데, 우리 회사에 있는 코드는 아래와 같다. 현재 사용중인 코드 public class MyService { private readonly HttpClient _httpClient; public MyService(IHttpClientFactory httpClientFactory) { _httpClient = httpClientFactory... 2024. 3. 25.
[C#] 명시적 & 묵시적 형변환 명시적 형변환과 묵시적 형변환은 프로그래밍에서 데이터 타입을 변환하는 2가지 주요 방법이다. 1. 명시적 형변환 (Explicit Type Conversion 또는 Type Casting) 명시적 형변환은 개발자가 의도적으로 데이터 타입을 변환하는 과정을 말한다. 프로그래머가 특별한 형변환 연산자나 함수를 사용하여 데이터 타입을 변환하는 것을 포함한다. 종종 데이터의 손실이 발생할 수 있으므로 주의가 필요하다. 예) C# double myDouble = 3.14; int myInt = (int)myDouble; // 3 2. 묵시적 형변환 (Implicit Type Conversion 또는 Type Coercion) 묵시적 형변환은 언어나 컴파일러가 자동으로 데이터 타입을 변환하는 과정을 말한다. 연산이.. 2023. 11. 10.
Chat GPT로 리팩토링 하고 느낀 점(1) Chat GPT에게 코드를 주면, 언어모델이라 그런지 부자연스러운 변수명, 함수명을 더 자연스럽게 만들어준다. 예를 들어 Angle을 평균내는 메소드이면 변경 전) AngleAverage 변경 후) CalculateAngleAverage 이렇게 더 명확하게 이름을 바꾸어준다. 또한 180 / Math.PI 이 계산식이 무엇을 의미하는지 알고 있어서 아무 설명없이 코드에 있더라도 따로 상수로 빼준다. 변경 전) // 180 / Math.PI = 각도를 라디안으로 변환 var sintotal = values.Sum(d => Math.Sin(d / (180 / Math.PI))); var costotal = values.Sum(d => Math.Cos(d / (180 / Math.PI))); var avg =.. 2023. 10. 16.
[JS] 자바스크립트로 보색 찾기 (Color) 보색 이론 및 알고리즘 보색을 찾는 알고리즘은 컬러 이론에서 쉽게 구할 수 있습니다. 보색은 색상 공간 상에서 주어진 색과 정확히 반대되는 색상을 의미합니다. 다른 말로 보색은 색상 원에서 한 색상에서 정확히 180도 떨어진 위치에 있는 색상입니다. RGB 색상 모델을 기준으로 보색을 구하는 방법은 다음과 같습니다: 주어진 RGB 색상의 각 채널 값을 255에서 뺍니다. (예: R 채널 값이 100이면 보색의 R 채널 값은 255 - 100 = 155입니다.) 위에서 얻은 값을 다시 R, G, B 채널로 사용하여 보색을 얻습니다. 예를 들어, 주어진 RGB 색상이 (100, 150, 200)이라고 가정해봅시다. 이 경우 보색은 다음과 같이 계산할 수 있습니다: R 채널: 255 - 100 = 155 G .. 2023. 7. 29.
[C#] JSON 데이터를 beautify(예쁘게 정렬하여 가독성을 높이는 것)하고 indent(들여쓰기)하는 방법 배경 C#에서 JSON 데이터를 beautify(예쁘게 정렬하여 가독성을 높이는 것)하고 들여쓰기(indent)하는 방법은 Newtonsoft.Json 라이브러리를 사용하여 쉽게 구현할 수 있습니다. Newtonsoft.Json은 C#에서 널리 사용되는 JSON 라이브러리로서, JSON 데이터를 다루는 다양한 기능을 제공합니다. 예제 아래는 Newtonsoft.Json 라이브러리를 사용하여 C#에서 JSON 데이터를 beautify하고 들여쓰기하는 예제입니다: 먼저, Newtonsoft.Json 라이브러리를 프로젝트에 추가해야 합니다. NuGet 패키지 관리자를 통해 Newtonsoft.Json 패키지를 설치할 수 있습니다. JSON 데이터를 beautify하고 들여쓰기하는 예제 코드는 다음과 같습니다:.. 2023. 7. 28.