전체 글

· C#
이번 포스팅은 제가 잘 활용하지 못했던Enum 열거형에 대해 작성하였습니다.| Enum?C#에서 Enum은 직접 정의한 상수 집합을 나타내는 데이터 형식입니다. 주로 상수 값을 그룹화하여 사용하며, 특정 값을 의미하는 이름을 만들어 사용합니다글로 읽으면 이해가 안 되는데 바로 예시를 들어볼게요 public enum Season{ Spring, Summer, Autumn = 14, Winter} 위 코드를 보시면 Season 이라는 Enum을 정의했습니다.상수 값을 정의하지 않으면 기본으로 0부터 시작하는 숫자로 매핑되며순차적으로 증가합니다.Spring은 0, Summer은 2라는 값으로 정의됩니다.하지만 Autumn 처럼 14로 명시적으로 정의를 한다면Winter는 그다음 숫자인 1..
· C#
C#에서는 배열이 참조 타입이기 때문에,배열을 메서드에 전달할 때 배열을 실제 데이터를 전달하는 것이 아니라 배열에 대한 참조가 전달됩니다. 이는 메서드 내부에서 배열을 수정할 경우, 원본 배열도 영향을 받는다는 것을 의미하며 이번 포스팅은 회사 프로젝트를 진행하며 잊고 있었던 내용을 정리하려고 작성했습니다.| 문제 상황 (예시)int[] numbers = { 1, 2, 3, 4 };ModifyArray(numbers);Console.WriteLine(string.Join(", ", numbers)); // 예상: 1, 2, 3, 4 / 실제: 10, 2, 3, 4void ModifyArray(int[] arr){ arr[0] = 10;} 위 코드에서 ModifyArray 메서드가 매개변수로 받은 ..
· C#
자동화나 제어 시스템에 널리 사용되고 있는 Modbus 프로토콜은 제어 모듈과 통신할 때 많이 사용되고 있는 프로토콜입니다. 이번 포스팅은 Modbus TCP에 대해 간략히 설명하고 C#에서 Modbus를 사용하는 방법과 NModbus 라이브러리를 활용하는 방법에 대해 작성했습니다.| Modbus TCP 란?Modbus는 산업 자동화 및 제어 시스템에서 널리 사용되는 프로토콜로 많이 사용되고 있습니다.장치 간 간의 데이터 전송에 사용되고 있으며Modbus TCP란 Modbus 프로토콜의 변형으로 TCP/IP 네트워크를 통해 작동합니다. 이 프로토콜은 클라이언트 - 서버 아키텍처 기반으로 작동되며 클라이언트(마스터)는 서버(슬레이브)에게 요청을 보내고 서버는 요청에 대한 응답을 제공합니다. | Modbus..
· 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("리스트가 비어있습니다."..
우준세
준세 단칸방