반응형

null

컴퓨터 관련 종사자거나 문과계열 종사자 더라도 한 번 쯤은 들어본 프로그래밍 언어인 파이썬.

프로그래밍 언어 인기 지표 통계 사이트인 TIOBE의 통계에 따르면 아래 이미지와 같이 파이썬이 당당하게 1위를 차지하고 있습니다. 그만큼 많은 분들이 사용하려 하시는 프로그래밍 언어입니다.

null

여러분들은 어떠한 이유로 파이썬을 공부하려 하시나요? 각자의 언어들은 특성이 있고 그 특성에 맞는 분야에 적용되어 사용하고 있습니다.

그렇다면 파이썬을 공부하기 전에 파이썬이 무엇이고 어떤 특성을 갖고있는지 알아봐야겠죠?

Python은 무엇일까요?

Python은 객체 지향 언어이자, 인터프리터 언어입니다.

먼저, 프로그래밍 언어는 각자 지향하는 특성이 있습니다.
이는 절차, 객체, 함수를 지향합니다. (정확하게는 함수를 지향하기보다는 함수형 언어입니다.)

절차 지향적 프로그래밍 언어의 예로는 C 언어, 파스칼, 유닉스 쉘과 같은 저(Low)레벨 언어들이 주 예가 될 수 있습니다.

절차 지향

절차 지향이란, 그 말과 같이 순서에 맞게 프로그래밍 되어 있어 다소 융통성이 없다는 단점이 있습니다.

따라서 이러한 단점을 보완하기 위해 객체 지향 프로그램이 개발되었습니다.

ex)

a = 1
b = 2
c = a + b

객체 지향

객체 지향 프로그래밍 언어의 예로 자바, C++, 파이썬 등이 있습니다.

객체를 지향한다는 것은 현실 세계를 모방한다고 볼 수 있습니다.

컵이나 사람 등이 객체이듯, 코드로 객체를 구현하고 그 객체의 데이터와 기능을 핸들링 하는 것이 객체 지향 프로그래밍의 원리입니다.

다른 의미로는 모든 클래스는 암묵적으로 Object class(객체)를 상속 받고 있기 때문에 객체를 지향하고 있다라고 볼 수 있습니다.

객체 지향의 특징에 관해서는 밑의 포스트에서 설명을 해놓았으나, 파이썬에 대해 조금 공부를 하고 보시는 것을 추천드립니다.

https://wp94.tistory.com/129

ex)

class Person:
    def eat(self):
        print('냠냠')
if __name__ == "__main__":
    walter = Person()
    walter.eat()

함수형


파이썬을 어느정도 배운 후 보시는 편이 좋습니다.


함수형 언어는 대표적으로 R이 있고 최신버전의 JAVA, Python 등에도 적용이 되어 있습니다.

순수 함수를 이용하여 상태를 처리하기보단 데이터를 빠르게 처리하는데 초점을 둔 프로그래밍이라고 볼 수 있습니다.

순수함수를 간략하게 설명하자면 어떤 함수에 동일한 인자를 주었을 때 항상 같은 값을 리턴(반환, output)하는 함수입니다.

ex) 순수 함수

def add(a, b):
    return a + b

ex) 비 순수 함수

c = 1
def add(a, b)
    return a + b + c

위 예제를 설명하자면, 순수 함수는 add 함수에 입력된 a, b 인자를 외부 요인 없이 연산하여 리턴하기 때문에 순수함수로 볼 수 있습니다.

비 순수 함수는 전역 변수인 c 변수가 add 함수 내에서 작용하므로 비 순수 함수입니다.

결론적으로 함수형 프로그래밍이란 것은 이러한 순수함수를 이용하여 프로그래밍을 하는 것을 일컫습니다.

더 깊은 이야기가 필요하지만 초반부터 글이 길어지면 흥미가 떨어지므로... 이번 포스팅은 여기까지 하겠습니다.

반응형

+ Recent posts