안녕하세요. 구스입니다. 요즘 LabVIEW 객체지향 프로그래밍(LVOOP)에 대해서 공부를 하고 있는데요. 관련 내용 지속적으로 올릴려구요. LabVIEW 객체지향 프로그래밍은 기존의 C++, JAVA와는 조금 다른 개념으로 객체 지향 프로그래밍 개념을 사용하고 있습니다. 하지만 유지보수 및 확장성이 높은 코드에 대한 OOP의 목적은 동일합니다. 이 글에서는 클래스와 객체에 대한 이해를 해보고, 다른 언어와 LabVIEW 객체지향 언어에서의 클래스와 객체에 대한 차이점을 알아보도록 하겠습니다. 그럼 먼저 클래스와 객체가 무엇인지 살펴봅시다. 클래스란? 실 세상에서의 있는 오브젝트(객체)의 설계도이라고 볼 수 있습니다. 차를 예로 든다면 차의 공통적인 특성과 기능을 설계할 수 있는데 이를 Car 클래스라..
안녕하세요. 구스입니다. 요새 C#을 다시 재정리 하는 김에 관련 내용을 계속 업데이트 하네요. 오늘은 특정 클래스의 타입을 알아보는 방법에 대해서 이야기 해볼까 하는데요. 특정 어셈블리에서 보유하고 있는 타입의 상세 정보를 알기 위해서는 어떻게 해야 할까요? 예를 한번 생각해봅시다. Employee라는 클래스가 있다고 가정을 해봅시다. 특정 어셈블리 A에서 어셈블리 B에 포함되어 있는 Employee의 Instance(인스턴스)를 사용하고 있습니다. 개발자는 이러한 Instance를 사용하기 위해서는 어셈블리 B를 가져와야 하며(Load), 이를 통해서 Employee 클래스가 가지고 있는 멤버, 함수, 속성등을 사용할 수 있습니다. 또한 Employee 클래스를 생성하여 Instance화 한뒤 이에 ..
이 글에서는 C#에서 구조적인 데이터를 표현하기 위한 클래스의 사용법을 설명하고, 오브젝트와 클래스의 차이에 대해서 알아보도록 하겠습니다. C# 클래스는 필드, 메소드와 public, private의 접근자를 통해서 캡슐화를 지원합니다. new 연산자는 클래스의 객체 생성에 사용이 됩니다. C#에서 레퍼런스 사용법 및 가비지 컬렉션의 역할에 대해서 설명을 할 것입니다. 또한 특정 인스턴스가 아닌 전체 클래스에서 적용이 가능한 정적 멤버에 대해서도 이야기 할 것입니다. C#에서 특정 상수를 사용하기 위한 Const와 readonly 또한 설명할 것입니다. 1. 구조적 데이터로사용 되는 클래스 언어에 내장되어 있는 기본 데이터 타입을 정의하고 있습니다. 정수형, 불리언과 같은 데이터 타입은 간단한 데이터를 ..
1. 개요 C#의 가장 중요한 요소는 완벽한 객체 지향 언어라는 점입니다. C#은 C++과 Java와 같이 객체지향 언어의 이점을 가지고 있으며, OOP 경험을 향상 시키는 몇가지 추가적인 요소가 있습니다. 객체지향 이외에도, C#은 소프트웨어 시스템 개발 시 쉽게 재사용할 수 있는 블랙 박스 엔티티의 개념을 가지고 있는 컴포넌트의 생성에 대한 기능이 디자인되었다는 점입니다. 이 글에서는 객체지향 언어가 무엇인지에 대한 큰 그림을 그릴 것입니다. 또한 객체, 클래스, 추상화, 캡슐화, 상속 및 다형성에 대해서 논할 것입니다. 이 내용에 대한 C#에 부분을 살펴볼 것입니다. 소프트웨어 재사용을 용이하게 하는 방식으로 객체 지향 프로그래밍의 생각을 확장할 수 있는 컴포넌트에 대한 소개와 함께 결론을 지을 것..
[프로그래밍 방법론] 효율적 클래스 설계 방법 - Clean Code 이 글은 Clean Code 책의 내용을 정리한 것입니다. 코드의 표현력과 코드로 이루어진 함수에 아무리 신경을 쓸지라도 좀 더 차원 높은 단계까지 신경 쓰지 않으면 깨끗한 코드를 얻기는 어렵습니다. 이 글에서는 깨끗한 클래스에 대해서 정리하겠습니다. 1. 클래스 체계와 캡슐화 표준 자바 관례에 따르면 변수 목록, 함수 목록순으로 나옵니다. 변수는 정적 공개 상수, 정적 비공개 상수, 비공개 인스턴스가 나오고 공개변수가 필요한 경우는 거의 없습니다. 변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야 한다는 법칙도 없습니다. 하지만 비공개 상태를 유지할 온갖 방법을 강구해야 하며, 캡슐화를 풀어주는 결정은 언제나 최..