사용자 도구

사이트 도구


패러다임

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
패러다임 [2026/04/14 07:51] – 패러다임 sync flyingtext패러다임 [2026/04/14 07:54] (현재) – 패러다임 sync flyingtext
줄 45: 줄 45:
 === 위기와 변칙 사례의 출현 === === 위기와 변칙 사례의 출현 ===
  
-[[정상 과학]]의 수행 과정은 본질적으로 기존 [[패러다임]]이 제공하는 이론적·방법론적 틀 안에서 문제를 해결하는 ’수수께끼 풀이’의 성격을 띠지만, 모든 관찰 결과가 패러다임의 예측과 일치하는 것은 아니다. 패러다임이 제시한 규칙과 기대를 저버리는 관찰이나 실험 결과가 나타날 때, 이를 [[변칙 사례]](Anomaly)라고 정의한다. 초기 단계에서 과학자들은 이러한 변칙 사례를 측정 장비의 결함, 실험자의 숙련도 부족, 혹은 아직 밝혀지지 않은 부차적인 변수의 간섭으로 치부하며 패러다임 자체의 결함으로 간주하지 않는다. 과학 공동체는 기존의 이론적 정합성을 유지하기 위해 [[보조 가설]]을 도입하거나 수치적 수정을 가함으로써 변칙 사례를 패러다임 내부로 포섭하려는 노력을 지속한다.+[[토머스 쿤]](Thomas Kuhn)이 제시한 [[정상 과학]](Normal Science)의 수행 과정은 본질적으로 기존 [[패러다임]]이 제공하는 이론적·방법론적 틀 안에서 문제를 해결하는 ’수수께끼 풀이(puzzle-solving)’의 성격을 띠지만, 모든 관찰 결과가 패러다임의 예측과 일치하는 것은 아니다. 패러다임이 제시한 규칙과 기대를 저버리는 관찰이나 실험 결과가 나타날 때, 이를 [[변칙 사례]](Anomaly)라고 정의한다. 초기 단계에서 과학자들은 이러한 변칙 사례를 측정 장비의 결함, 실험자의 숙련도 부족, 혹은 아직 밝혀지지 않은 부차적인 변수의 간섭으로 치부하며 패러다임 자체의 결함으로 간주하지 않는다. 과학 공동체는 기존의 이론적 정합성을 유지하기 위해 [[보조 가설]]을 도입하거나 수치적 수정을 가함으로써 변칙 사례를 패러다임 내부로 포섭하려는 노력을 지속한다. 이는 [[칼 포퍼]]가 주장한 [[반증]]에 의한 즉각적인 이론 폐기와는 대조적인 양상을 보인다.
  
-그러나 변칙 사례가 단순히 우연한 예외를 넘어 특정 영역에서 반복적으로 발생하거나, 패러다임의 가장 기초적인 핵심 원리와 정면으로 충돌할 때 과학은 [[위기]](Crisis) 국면에 진입한다. 위기는 기존 패러다임이 더 이상 자연 현상을 설명하거나 예측하는 신뢰할 만한 도구가 되지 못한다는 인식이 확산되면서 시작된다. 이 시기에 이르면 과학자들은 더 이상 수수께끼 풀이에 매진하지 못하, 패러다임의 근본 가정 자체를 의심하기 시작한다. 이는 과학 연구의 효율성을 급격히 저하시키며, 공동체가 공유하던 확고한 신념 체계에 균열을 일으킨다.+그러나 변칙 사례가 단순히 우연한 예외를 넘어 특정 영역에서 반복적으로 발생하거나, 패러다임의 가장 기초적인 핵심 원리와 정면으로 충돌할 때 과학은 [[위기]](Crisis) 국면에 진입한다. 위기는 기존 패러다임이 더 이상 자연 현상을 설명하거나 예측하는 신뢰할 만한 도구가 되지 못한다는 인식이 확산되면서 시작된다. 이 시기에 이르면 과학자들은 더 이상 수수께끼 풀이에 매진하지 못하, 패러다임의 근본 가정 자체를 의심하기 시작한다. 이는 과학 연구의 효율성을 급격히 저하시키며, 공동체가 공유하던 확고한 신념 체계에 균열을 일으킨다. 위기는 단순히 논리적인 부정의 과정을 넘어, 과학 공동체가 겪는 집단적인 심리적 불안 상태를 동반한다.
  
-위기 국면의 두드러진 특징 중 하나는 학문적 혼란과 방법론적 논쟁의 격화이다. 정상 과학 단계에서는 당연하게 받아들여지던 규칙들이 도전받으며, 문제를 해결하기 위해 제시되는 수많은 임시방편적 가설들은 서로 일관성을 갖지 못한 채 파편화된다. [[토머스 쿤]]은 이를 “이례적인 탐구(Extraordinary research)”의 시기라고 불렀다. 이 단계에서 과학자들은 자신의 전공 영역을 넘어 [[인식론]]이나 [[과학 철학]]적 논쟁에 깊이 관여하게 되는데, 이는 패러다임이 제공하던 자동적인 문제 해결 기제가 마비되었음을 의미한다. 례로 [[천동설]]이 지배하던 시기, 행성의 역행 운동을 설명하기 위해 도입된 수많은 [[주전원]]의 복합 체계는 패러다임이 위기에 처했음을 보여주는 전형적인 사례로 꼽힌다.+위기 국면의 두드러진 특징 중 하나는 학문적 혼란과 방법론적 논쟁의 격화이다. 정상 과학 단계에서는 당연하게 받아들여지던 규칙들이 도전받으며, 문제를 해결하기 위해 제시되는 수많은 임시방편적 가설들은 서로 일관성을 갖지 못한 채 파편화된다. 쿤은 그의 저서 『[[과학 혁명의 구조]]』에서 이를 “[[이례적 탐구]](Extraordinary research)”의 시기라고 불렀다. 이 단계에서 과학자들은 자신의 전공 영역을 넘어 [[인식론]]이나 [[과학 철학]]적 논쟁에 깊이 관여하게 되는데, 이는 패러다임이 제공하던 자동적인 문제 해결 기제가 마비되었음을 의미한다. 대표적인 사례로 [[천동설]]이 지배하던 시기, 행성의 역행 운동을 설명하기 위해 도입된 수많은 [[주전원]]의 복합 체계는 패러다임이 위기에 처했음을 보여주는 전형적인 사례로 꼽힌다. [[코페르니쿠스]]의 [[지동설]]이 등장하기 직전의 천문학계는 이처럼 극심한 복잡성과 모순에 직면해 있었다.
  
-결국 위기는 과학 공동체 내부의 긴장감을 극도로 높이며, 기존 체제를 대체할 새로운 대안적 패러다임이 출현할 수 있는 토양을 마련한다. 쿤에 따르면, 위기는 단순히 지식의 오류를 수정하는 과정이 아니라 새로운 이론이 정당성을 얻기 위해 반드시 거쳐야 하는 심리적·사회적 전제 조건이다. 기존 패러다임에 대한 신뢰가 완전히 붕괴되어 공동체가 ’전문가적 실명 상태’에 빠졌을 때 비로소 과학자들은 세계를 바라보는 새로운 틀을 수용할 준비를 갖추게 된다. 따라서 변칙 사례의 누적과 그로 인한 위기는 과학적 진보가 불연속적인 도약을 이루기 위한 필수적인 진통이라 할 수 있다.+결국 위기는 과학 공동체 내부의 긴장감을 극도로 높이며, 기존 체제를 대체할 새로운 대안적 패러다임이 출현할 수 있는 토양을 마련한다. 쿤에 따르면, 위기는 단순히 지식의 오류를 수정하는 과정이 아니라 새로운 이론이 정당성을 얻기 위해 반드시 거쳐야 하는 심리적·사회적 전제 조건이다. 기존 패러다임에 대한 신뢰가 완전히 붕괴되어 공동체가 ’전문가적 실명 상태’에 빠졌을 때 비로소 과학자들은 세계를 바라보는 새로운 틀을 수용할 준비를 갖추게 된다. 따라서 변칙 사례의 누적과 그로 인한 위기는 [[과학 혁명]]을 통해 과학적 진보가 불연속적인 도약을 이루기 위한 필수적인 진통이라 할 수 있다. 이는 과학이 선형적으로 축적되는 지식의 집합이 아니라, 근본적인 [[세계관]]의 전환을 통해 발전한다는 점을 시사한다.
  
 === 과학 혁명과 패러다임 전환 === === 과학 혁명과 패러다임 전환 ===
줄 158: 줄 158:
 === 객체 지향 프로그래밍 === === 객체 지향 프로그래밍 ===
  
-데이터와 기능을 객체라는 단위로 묶어 상호작용하게 함으로써 사용성을 이는 방식을 기한다.+객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그램을 단순히 명령어의 순차적인 나열로 파악하는 기존의 [[절차적 프로그래밍]] 방식에서 벗어나, 데이터와 그 데이터를 처리하는 함수를 하나의 논리적 단위인 [[객체]](object)로 묶어 파악하는 패러다임이다. 이 패러다임의 핵심은 현실 세계의 실체나 개념을 [[추상화]](abstraction)하여 소프트웨어 내부의 독립적인 주체로 정의하고, 이들 사이의 상호작용을 통해 전체 시스템을 구축하는 데 있다. 객체 지향 패러다임은 소프트웨어의 규모가 거대해지고 복잡성이 증대됨에 따라 발생하는 [[소프트웨어 위기]]를 극복하고, 코드의 [[재사용성]]과 [[유지보수성]]을 극대화하기 위한 대안으로 발전하였다. 
 + 
 +객체 지향 시스템의 가장 기본적인 구성 요소는 [[클래스]](class)와 객체이다. 클래스는 객체를 생성하기 위한 일종의 설계도 혹은 템플릿이며, 객체는 이 클래스를 바탕으로 메모리에 할당된 실체인 [[인스턴스]](instance)를 의미한다. 국제 표준화 기구(ISO)와 국제 전기 기술 위원회(IEC)의 정보 기술 용어 정의에 따르면, 객체는 데이터와 그 데이터를 처리하는 연산을 결합하여 하나의 개체로 취급하는 소프트웨어 구성 단위를 의미한다((ISO/IEC 2382:2015 - Information technology — Vocabulary, https://committee.iso.org/standard/63598.html 
 +)). 각 객체는 고유한 [[상태]](state)를 나타내는 [[속성]](attribute)과 그 상태를 조작하거나 특정 기능을 수행하는 [[행위]](behavior)를 포함한다. 행위는 대개 [[메서드]](method)라는 형태로 구현되며, 객체 간의 통신은 한 객체가 다른 객체의 메서드를 호출하는 [[메시지 전달]](message passing) 방식을 통해 이루어진다. 이러한 구조는 데이터와 로직이 분리되어 있던 기존 방식과 달리, 데이터와 기능이 밀접하게 결합된 형태를 취함으로써 코드의 [[응집도]]를 높인다. 
 + 
 +객체 지향 패러다임을 지탱하는 네 가지 주요 원칙은 [[캡슐화]](encapsulation), 상속, 다형성, 추상화이다. 캡슐화는 객체의 세부 구현 내용을 외부에 감추고 필요한 인터페이스만을 노출하는 [[정보 은닉]](information hiding)을 실천한다. 이를 통해 외부의 잘못된 접근으로부터 객체의 내부 상태를 보호하고, 내부 구현이 변경되더라도 이를 사용하는 다른 코드에 미치는 영향을 최소화한다. [[상속]](inheritance)은 기존 클래스의 특성을 이어받아 새로운 클래스를 생성하는 메커니즘으로, 코드의 중복을 제거하고 계층적인 구조를 형성하여 체계적인 시스템 설계를 가능하게 한다. 
 + 
 +[[다형성]](polymorphism)은 동일한 인터페이스나 메서드 호출이 객체의 실제 유형에 따라 다르게 동작하는 성질을 의미한다. 이는 [[오버라이딩]](overriding)이나 [[오버로딩]](overloading)을 통해 구현되며, 프로그램의 유연성과 확장성을 크게 향상시킨다. 마지막으로 추상화는 복잡한 현실의 문제를 핵심적인 특징 위주로 단순화하여 모델링하는 과정이다. 이러한 원칙들은 객체 지향 프로그래밍이 대규모 소프트웨어 개발에서 [[모듈화]](modularity)를 실현하는 강력한 도구가 되게 한다. 결과적으로 객체 지향 패러다임은 독립적인 객체들의 협력을 통해 능을 수행하게 함으로써, 부품을 조립하듯 소프트웨어를 구성할 수 있는 토대를 제공한다.
  
 ==== 선언형 패러다임 ==== ==== 선언형 패러다임 ====
줄 195: 줄 202:
 === 논리 프로그래밍 === === 논리 프로그래밍 ===
  
-기호 논리학에 근하여 사실과 규칙을 의하고 추론 엔진을 통해 해답을 찾는 식을 기한다.+논리 프로그래밍(Logic Programming)은 [[수리 논리학]](Mathematical Logic)의 형식을 차용하여 프로그램의 논리적 구조를 명시하고, 이를 기반으로 [[컴퓨터]]가 정답을 도출하도록 하는 [[선언형 패러다임]]의 한 갈래이다. 이 패러다임은 프로그래머가 문제 해결을 위한 세부적인 절차(How)를 일일이 명령하는 대신, 문제의 대상이 되는 개체 간의 관계와 규칙(What)을 논리식으로 기술하면 [[추론 엔진]](Inference Engine)이 이를 해석하여 결과를 산출하는 방식을 취한다. 이러한 접근법은 1970년대 초반 [[로버트 코왈스키]](Robert Kowalski)의 이론적 정립과 [[알랭 콜메로]](Alain Colmerauer)의 [[프롤로그]](Prolog) 언어 개발을 통해 구체화되었다. 
 + 
 +논리 프로그래밍의 철학적 간은 로버트 코왈스키가 제시한 “알고리즘은 논리와 제어의 결합이다”라는 명제로 요약된다. 이를 수식으로 표현면 다음과 같다. 
 + 
 +$$ \text{Algorithm} = \text{Logic} + \text{Control} $$ 
 + 
 +기서 [[논리]](Logic)는 해결해야 할 문제의 정의와 지식을 의미하며, [[제어]](Control)는 해당 논리를 용하여 문제를 해결하는 전략을 의미한다. 논리 프로그래밍 패러다임에서 프로그래머는 오직 논리 부분만을 담당하며, 제어 부분은 시스템에 내장된 [[추론]] 메커니즘에 위임한다. 이는 개발자가 하드웨어의 상태 변화나 [[메모리]] 관리와 같은 저수준의 행 절차로부터 해방되어 문제의 본질적인 논리에 집중할 수 있게 한다((Kowalski, R., Algorithm = Logic + Control, Communications of the ACM, https://dl.acm.org/doi/10.1145/359131.359136 
 +)). 
 + 
 +논리 프로그램의 구성 요소는 크게 [[사실]](Fact), [[규칙]](Rule), [[질의]](Query)로 나뉜다. 사실은 “소크라테스는 사람이다”와 같이 무조건적으로 참인 명제를 기술하며, 규칙은 “모든 사람은 죽는다”와 같이 조건부 참을 나타내는 명제이다. 이러한 지식은 주로 [[1차 술어 논리]](First-order Predicate Logic)의 부분 집합인 [[호른 절]](Horn Clause) 형식을 빌려 표현된다. 일반적인 호른 절은 다음과 같이 나의 결론(Head)과 여러 개의 조건(Body)으로 이루어진다. 
 + 
 +$ A B_1, B_2, , B_n $ 
 + 
 +위 식에서 $ A $가 참이 되기 위해서는 모든 $ B_i $가 참이어야 함을 의미한다. 만약 조건부가 비어 있다면 이는 단순한 사실이 된다. 사용자가 특정 목적을 달성하기 위해 시스템에 질의를 던지면, 추론 엔진은 기 구축된 사실과 규칙의 집합인 [[지식 베이스]](Knowledge Base)를 탐색하여 해답을 찾는다. 
 + 
 +추론 엔진이 해답을 찾아가는 과정의 핵심은 [[단일화]](Unification)와 [[해소 원리]](Resolution principle)에 있다. 단일화는 서로 다른 두 논리의 변수들에 적절한 값을 대입하여 두 식을 일치시키는 과정이다. 시스템은 [[SLD 해소]](Selective Linear Definite clause resolution)라 불리는 자동 추론 법을 사용하여 질의로부터 역방향으로 추론을 진행다((Colmerauer, A., & Roussel, P., The birth of Prolog, ACM SIGPLAN Notices, https://dl.acm.org/doi/10.1145/232629.232646 
 +)). 이 과정에서 여러 선택지가 존재할 경우 [[백트래킹]](Backtracking)을 통해 가능한 모든 경로를 탐색하며, 이는 논리 프로그래밍이 비결정론적 계산 모델을 자연스럽게 지원하게 만드는 원동력이 된다. 
 + 
 +논리 프로그래밍은 [[기호 논리학]]에 기반한 강력한 표현력 덕분에 [[인공지능]], [[전문가 시스템]], [[자연어 처리]], [[데이터베이스]] 질의 언어 등 복잡한 지식 구조를 다루는 분야에서 널리 활용되어 왔다. 특히 [[지식 표현]]의 명확성과 코드의 간결함은 복잡한 제약 조건 만족 문제(Constraint Satisfaction Problem)를 해결하는 데 탁월한 효율성을 보여준다. 그러나 순수 논리 모델과 실제 컴퓨팅 환경 사이의 간극으로 인해 발생하는 효율성 저하와 [[부정]](Negation)의 처리 문제 등은 현대 논리 프로그래밍 연구의 주요 과제로 남아 있다.
  
 ===== 사회 과학에서의 패러다임 ===== ===== 사회 과학에서의 패러다임 =====
패러다임.1776120694.txt.gz · 마지막으로 수정됨: 저자 flyingtext