Basic Knowledge/Paradigm 5

중간정리 : 패러다임에 대한 입체적 시각과 최신 트렌드

지금까지 절차지향, 구조적, 객체지향, 함수형 프로그래밍 패러다임에 대해 정리하였다. 앨런 튜링과 절차적 프로그래밍 이후로 점점 덩치가 커지는 H/W와 S/W, 그리고 그만큼 복잡해지는 코드는 1960년대 전후를 기점으로 Fortan, ALGOL, LISP의 등장과 함께 점차 구조적으로 가지를 뻗어나가게 하는 계기가 된다 이후에 포스팅할 논리형 프로그래밍과 동시/병렬 프로그래밍을 포함해 구조 / 절차적, 객체지향적, 함수형 등의 패러다임은 대두되는 시기는 달랐으나 여전이 각자 독립적인 발전을 이루고 있음을 알게 되었다 아래는 깃허브 PYPL의 2023년 9월 언어 점유율 순위표와 사이트 링크이다 https://pypl.github.io/PYPL.html PYPL PopularitY of Programmi..

프로그래밍 패러다임 (4) 함수형 프로그래밍

# 인물 개개인의 상세한 인생사, 대상의 역사와 프로그래밍 분야 외적인 업적은 잘라낸다. 함수형 프로그래밍의 개요 1960~80년대의 프로그래밍은 객체지향적 프로그래밍이 대두된다. 기술이 발전하고 하드웨어, 소프트웨어의 크기가 커짐에 따라 복잡한 코드의 유지보수에 애로사항이 생기고, 자연스럽게 함수형 프로그래밍 패러다임이 도입되게 된다. 코드 설계의 모든 부분을 함수로 잘게 잘라 문제를 해결하는 함수형 프로그래밍은 변할 수 있는 부분을 잘라 독립시킴으로써 유지보수성을 향상시킨다. 함수형 프로그래밍의 특징 1. 순수 함수 동일 입력 = 항시 같은 값 반환 함수 실행이 프로그램 실행에 영향을 미치지 않아야 함 프로그램 상태나 함수 내부의 인자값을 변경하는 외부 요소가 없는 것 let a = 1; functi..

프로그래밍 패러다임 (3) 객체 지향 프로그래밍

# 인물 개개인의 상세한 인생사, 대상의 역사와 프로그래밍 분야 외적인 업적은 잘라낸다. 1960년부터 지금까지의 프로그래밍은 객체지향적 프로그래밍이 대두된다. 객체지향 프로그래밍 (Object-Oriented Programming, OOP)은 프로그램을 객체라는 독립적 단위로 나누고, 이 객체들 간의 상호작용을 중심으로 소프트웨어를 설계, 개발하는 방식이다. 객체는 데이터와 그 데이터를 조작하는 메서드(method)로 구성되며, 클래스(class)라는 템플릿을 기반으로 생성된다 코딩 과정 ● 문제 인식과 정의 -> 객체 식별 및 분류 -> 객체 속성과 메서드 정의 -> 클래스 다이어그램 작성 -> 객체 생성과 초기 데이터 입력 -> 객체간 상호작용 설계 -> 메서드 구현 -> 테스트 및 디버깅 -> 최..

프로그래밍 패러다임 (2) 구조적 프로그래밍

# 인물 개개인의 상세한 인생사, 대상의 역사와 프로그래밍 분야 외적인 업적은 잘라낸다. 초기 프로그래밍은 구조적인 형태 없이 개발되었다. 1950~70년대의 프로그래밍은 구조적 프로그래밍에 대한 방법론이 대두되었다. 구조적 프로그래밍은 소프트웨어 개발 방법론 중 하나로 코드의 가독성은 높게, 프로그램의 오류 가능성은 낮춰지게 하며 유지보수를 용이하게 한다. 프로그램을 구조화된 논리적 블록으로 분할하는 것, 단일 진입과 단일 퇴장을 통한 코드의 명료화와 용이한 디버깅 등이 특징이다 코딩 예시 ● 각 변수에 대한 의미를 부여하는 사전 작업 (const) ● 들여쓰기, 주석을 통해 내용 파악을 쉽게 해준다 ● sub나 function을 잘 활용한다 (처음에는 main을 잘 관리해줄 수 있는 메인터넌스 위주를..

프로그래밍 패러다임 (1) 절차 지향 프로그래밍

# 최초의 컴퓨터는 현대식 컴퓨터의 형태에서 거슬러 올라가나 21세기를 살아가는 사람들에게 큰 의미는 갖지 않으므로 생략한다 # 인물 개개인의 상세한 인생사와 프로그래밍 분야 외적인 업적은 잘라낸다. 유의미한 수준의 역사는 1940년대 초에서부터 시작된다. 1940~50년대의 프로그래밍은 절차 지향 프로그래밍이 대두된다. 이는 10진법, 2진법의 기계어와 어셈블리 언어를 활용한 프로그래밍 방식이다 프로그램을 일련의 절차나 함수로 나누고, 이러한 절차나 함수를 차례로 실행하여 원하는 결과를 얻는 프로그래밍 패러다임인데, 이러한 방식은 일반적으로 C, Pascal, Fortran과 같은 언어에서 사용된다. 코딩 예시 ● 종이 준비 -> 종이의 크기? -> 펜 선택 -> 펜의 굵기? -> 스케치 하기 -> 색..