OOP의 기초
객체 지향 프로그래밍(Object Oriented Programming) 간략히 OOP라고도 불리는 객체지향 프로그래밍은 데이터 조각들 및 해당 데이터와 관련된 행동들을 객체라는 특수한 묶음으로 모은다는 개념에 기반한 이론적인 틀 또는 체계이며, 객체들은 클래스라고 하는 프로그래머가 정의한 '청사진'들의 집합으로 구성된다. 오스카라는 고양이가 있다고 가정해 보자. 오스카는 객체이며, Cat 클래스의 인스턴스이다. 각 고양이는 이름, 성별, 나이, 체중, 색깔, 좋아하는 음식 같은 일반적인 속성들을 많이 갖고 있다. 이러한 속성들을 클래스의 필드들이라고 한다. 모든 고양이는 비슷하게 행동한다. 숨을 쉬고, 먹고, 뛰고, 자고, 야옹 소리를 내며 운다. 이것들은 클래스의 매서드들이다. 필드들과 메서드들을 통..
2024. 4. 19.
C# 모나드 설계 패턴 소개
C# 모나드 설계 패턴 C#에서 제공하는 Nullable, IEnumerable, Func, Lazy, Task가 여기에 해당한다. 이 다섯 형식은 모두 T라는 하나의 매개 변수를 가지는 제네릭 형식이라는 것을 포함해 몇 가지 공통점을 가진다. 이들은 특정 동작과 연계된 특별한 규칙들을 제공하는 측면, 즉, 형식에 대한 증폭기와 같은 역할을 함으로써 자연스럽게 모나드를 구현한다. 이 형식들은 어떤 형식을 취해 특수한 형식으로 변환해 준다. Nullable Nullable는 예를 들어, -2,147,483,648 ~ 2,147,483,647 사이의 정수만 담을 수 있는 int 형식이 null에 대응할 수 있게 확장해 준다. 즉, null에 대응하도록 기능을 확장시켜 주는 래퍼 클래스라고 생각하면 이해하기 ..
2024. 4. 9.