본문 바로가기

전체 글251

[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.
[C#] 요소가 null일 때 처리하는 방법 Null 조건부 연산자 (?.) 이 연산자는 null 조건을 확인한 후, null이 아닌 경우에만 멤버를 접근하는 역할을 합니다. 만약 요소가 null이라면 접근 시 NullReferenceException을 방지할 수 있습니다. var str = null; var length = str?.length; // 만약 str이 null이라면 length는 undefined가 됨 Null 조건부 인덱서 (?[]) 이 연산자는 null 조건을 확인한 후, null이 아닌 경우에만 인덱서를 사용하여 요소에 접근하는 역할을 합니다. 여러 차원의 배열에서 특정 위치의 요소를 접근할 때 유용합니다. var array2D = null; var value = array2D?.[0][0]; // 만약 array2D가 nul.. 2023. 7. 27.
각 언어별 Path 및 String 처리 방법 배경 각 프로그래밍 언어마다 경로 설정 방법과 문자열 (string) 처리 방법은 다소 다릅니다. 아래에 널리 사용되는 몇 가지 프로그래밍 언어에 대해 간단히 설명하겠습니다. 설명 Python: 경로 설정 방법: os 모듈을 사용하여 경로를 조작할 수 있습니다. 예시: import os 절대 경로: os.path.abspath('file.txt') 상대 경로: os.path.join('folder', 'file.txt') 문자열 처리 방법: Python의 문자열은 변경할 수 없기 때문에 다양한 내장 메서드를 사용하여 문자열을 조작할 수 있습니다. 예시: string_variable.upper(), string_variable.lower(), string_variable.replace(), string_v.. 2023. 7. 24.