전체 글

· C#
이번 포스팅은 바이트 배열로 통신을 하면서 알게 된 BitConverter 클래스에 대해 정리하였습니다. | BitConverter 클래스 'BitConverter' 클래스는 다양한 데이터 형식을 바이트 배열로 변환하거나 바이트 배열을 다양한 데이터 형식으로 변환할 수 있게 하는 클래스입니다. 이 클래스를 통해 정수, 부동 소수점, 문자 등의 데이터를 바이트 배열로 표현하고 바이트 배열에서 원래 데이터 형식으로 되돌릴 수 있습니다. 그래서 저는 이 클래스로 모듈과 TCP/IP 통신을 통해 데이터를 주고받았고 그 데이터들을 바이트화 하고 다시 float형으로 만들어 통신을 하는 클래스를 구현했지만 BitConverter 클래스에 대해 정리해보려고 합니다. | BitConverter.GetBytes() 메서..
· C#
C# 개발 시, 특히 네트워크 통신이나 파일 처리와 같은 작업에서 데이터를 반드시 다뤄야 합니다. 이때, Array 클래스는 데이터 컬렉션을 효율적으로 관리할 수 있는 다양한 메서드를 제공합니다. 이번 포스팅은 그중에서도 Reserve, Copy, ConvertAll 메서드를 통해 byte 배열을 어떻게 다룰 수 있는지 정리하였습니다. | Reverse 데이터의 순서를 뒤집어야 할 때, Array.Reverse 메서드를 사용합니다. Endian 변환 과정에서 필요한 작업을 손쉽게 처리할 수 있습니다 | Reverse 메서드 파라미터 public static void Reverse(Array array, int index, int length) array : 순서를 뒤집을 배열 index : 뒤집기 시작할..
이번 포스팅은 파이썬에서 사용되는 내장 함수에 대해 정리하였습니다.| 파이썬의 네임스페이스(Namespace)파이썬에서는 변수와 함수들이 정의되는 공간을 네임스페이스라고 합니다. 네임스페이스는 변수 이름과 그에 해당하는 객체(값)들 간의 매핑을 저장하는 딕셔너리로 구현됩니다. 예를 들어, 함수 내에서 정의된 변수는 해당 함수의 지역 네임스페이스에 저장되고, 함수 외부에서 정의된 변수는 전역 네임스페이스에 저장됩니다. 이제 함수 내부와 외부에서 사용하는 네임스페이스에 대해 알아보겠습니다.| globals() 이 함수는 현재의 전역 네임스페이스를 나타내는 딕셔너리를 반환합니다. 이 딕셔너리에는 전역으로 정의된 모든 변수와 함수가 포함됩니다. 딕셔너리를 수정하면 전역 네임스페이스의 내용이 변경됩니다. 예제)x..
이번 포스팅은 객체 지향 언어에서 중요한 객체의 속성을 다루는 방법에 대해 정리하였습니다. 파이썬은 객체지향 프로그래밍 언어로, 객체의 속성을 다루는 것은 중요합니다. 이를 위해 파이썬에서는 다양한 내장 함수들을 제공합니다. 이번에 알아볼 함수들은 객체의 속성을 조작하는 데 사용됩니다. | 1. hasattr() 함수 'hasattr()' 함수는 객체가 주어진 이름의 속성을 가지고 있는지 여부를 확인하는 함수입니다. | hasattr() 함수 구조 hasattr(object, name) : 주어진 이름의 속성을 가지고 있는지 여부 확인 - object : 검사할 객체 - name : 확인할 속성의 이름 예제) class MyClass: def __init__(self): self.name = "John"..
· C#
C#에서 List를 다루다 보면 종종 리스트의 마스지막 요소에 접근해야 할 때가 있습니다. 이번 포스팅은 C#에서 리스트의 마지막 요소에 접근하는 세 가지의 간단한 방법을 정리했습니다. | 1. 인덱스를 이용한 접근 가장 일반적인 방법 중하나는 리스트의 길이를 확인한 후 마지막 요소에 접근하는 것입니다. List numbers = new List { 1, 2, 3, 4, 5 }; if (numbers.Count > 0) { int lastIndex = numbers.Count - 1; int lastElement = numbers[lastIndex]; Console.WriteLine("마지막 요소: " + lastElement); } else { Console.WriteLine("리스트가 비어있습니다."..
· C#
이번 포스팅은 C#으로 프로젝트를 진행하면서 알게 된 Monitor.Enter 메서드와 Monitor.Exit 메서드에 대해 정리하였습니다. 멀티스레드 환경으로 프로젝트를 진행하다 보면 여러 스레드가 객체에 동시에 접근하게 되어 에러가 발생하는 경우가 있습니다. 이런 에러를 방지하기 위해 C#에서 Monitor.Enter 및 Monitor.Exit 메서드를 사용하여 잠금(locking)을 제공하여 여러 스레드가 동시에 접근하지 못하도록 보호합니다. | Monitor.Enter 'Monitor.Enter' 메서드는 특정 객체에 대한 잠금을 요청하고, 이 잠금을 획득할 때까지 대기합니다. 만약 이미 다른 스레드가 해당 객체에 대한 잠금을 하고 있다면, 현재 스레드는 잠금을 할 수 있을 때까지 멈추고 대기합니..
이번 포스팅은 코딩 테스트를 준비하면서 공부하게 된 파이썬의 자료구조에 대해 정리하였습니다. Python은 다양한 내장 자료 구조를 제공하여 더 효율적으로 만들어줍니다. 그중에서도 'collections' 모듈은 유용한 데이터 구조와 함께 제공되어 있어 다양한 상황에 편리하게 활용될 수 있습니다. 'collections' 모듈이 포함된 두 가지 데이터 구조에 대해 알아보겠습니다. | defaultdict 'defaultdict'은 Python의 dictionary 자료 구조와 비슷하지만 한 가지 큰 차이점이 있습니다. key에 접근할 때 일반적인 dictionary 구조는 KeyError를 발생시키지만, defaultdict은 존재하지 않는 키에 대해 기본 값을 반환합니다. 이 기본값은 defaultdi..
이번 포스팅은 저번 Python 예외 처리 방법에 이어 이번에는 예외를 발생시키는 방법에 대해 알아보겠습니다. | 예외 발생시키는 방법 (raise문) 프로젝트를 진행하다 보면 예외 처리를 통해 예상치 못한 상황에 대비할 수 있습니다. 파이썬에서는 'raise'문을 사용하여 명시적으로 예외를 발생시키고 프로그램의 흐름을 제어할 수 있습니다. | raise 문 기본 구조 raise [ExceptionClassName('예외 메시지')] 여기서 'ExceptionClassName'은 발생시키고자 하는 예외 클래스입니다. 예외 메시지는 해당 예외가 발생한 이유를 설명하는 문자를 쓰거나 다른 로그를 통해 예외 처리를 쉽게 도와주게 만들면 됩니다. | raise 문 예제 - 1 def divide(x, y): i..
우준세
준세 단칸방