본문 바로가기

프로그래밍 패러다임11

대수(Algebra), 증명(Proof), 법칙(Law)의 개념과 예시 1. 대수(Algebra)란? 대수는 수학의 한 분야로, 숫자와 연산 및 그들 간의 관계, 패턴, 구조를 연구합니다. 이는 기본적인 산수(덧셈, 뺄셈, 곱셈, 나눗셈)에서부터 더 복잡한 연산까지 포함합니다. 예시: x + 3 = 7 과 같은 방정식을 생각해보세요. 여기서 x의 값을 찾는 것이 대수의 기본적인 예입니다. 이 경우 x = 4가 됩니다. 2. 증명(Proof)이란? 증명은 수학적 진리를 논리적으로 보여주는 과정입니다. 어떤 명제가 참임을 보이기 위해 논리적 추론을 사용합니다. 증명은 수학의 근본적인 요소로, 수학 이론의 타당성을 확인하는 데 필수적입니다. 예시: '짝수의 합은 항상 짝수이다'는 명제에 대한 증명을 생각해봅시다. 임의의 두 짝수를 2a와 2b라고 하면(여기서 a와 b는 정수), .. 2023. 11. 21.
Pure Function (순수 함수) 순수 함수는 주어진 입력에 대해 항상 동일한 출력을 반환하며, 외부 상태를 변경하지 않고 외부 상태에 의존하지도 않는 함수입니다. 순수 함수의 특징: 동일한 입력에 대한 동일한 출력: 동일한 인자가 주어졌을 때 항상 동일한 결과를 반환해야 합니다. 부작용(Side Effects)이 없음: 외부 상태를 변경하지 않아야 하며, 함수 내에서도 외부 상태에 의존해서는 안 됩니다. Pure Function 예시: // 순수 함수 예시 fun add(x: Int, y: Int): Int { return x + y } val result = add(3, 4) // 항상 7을 반환 이 함수는 입력된 두 숫자의 합을 반환합니다. 외부의 어떤 상태에도 영향을 받지 않으며, 외부 상태를 변경하는 부작용도 없습니다. Non-.. 2023. 8. 28.
OOP.2.상속과 다형성 이번 글에서 알아볼 객체지향의 특징은 상속과 다형성 입니다. 먼저 추상화와 캡슐화를 통해 정의한 객체(클래스)들은 다양한 관계를 갖게 되는데요. 그 중 상위와 하위 구조를 가지게 되는 하이어라키 구조에 속한 관계들이 있습니다. 상속은 대표적인 하이어라키 구조입니다. 여러 클래스들의 공통적이고 일반적인 특성을 추출해 좀 더 추상화 레벨이 높아 일반적인 상위 클래스로 정의 할 수 있습니다. 그 후 하위 클래스 정의시 중복되는 부분은 재정의 없이 상위 클래스의 필드와 메소드를 '상속'받아 사용할 수 있습니다. JAVA에서는 Extends라는 키워드로 상속을 지원하고 단일 상속만을 지원합니다. java는 상속을 편하게 지원해주는 super와 this라는 키워드를 제공함으로써 부모 클래스로 부터 물려받은 다양한 .. 2023. 7. 14.
OOP.2.추상화와 캡슐화 - 2 이번 주제는 캡슐화 입니다. 저번 글에서 캡슐화 부분을 간단히 언급하고 넘어갔기 때문에 자세히 살펴보려 합니다. 먼저 캡슐화의 기본 개념은 객체를 추상화해 나온 정적 특성과 동적 특성을 한데 묶어 관리하는 것 입니다. 캡슐화로 얻어지는 효과는 두 가지가 있습니다. 데이터 보호와 절차 은닉입니다 데이터 보호는 정적 모델링을 통해 추출된 Field 데이터 접근 권한을 클래스 내부로 제한함으로써, 외부에서 데이터 조작이 불가능 하도록 보호합니다. 데이터 조작은 오직 공개된 Method를 통해서만 가능합니다. 또 클래스 외부에서 Method를 단순 호출하여 사용하므로 내부에서 어떤 절차로 메소드가 작동하는지 절차적 은닉이 가능해집니다. 이것을 절차 은닉이라고 부릅니다. Java에서는 Access Modifier.. 2023. 7. 6.