본문 바로가기

반응형

분류 전체보기

(429)
[Python] 데코레이터(Decorator) #1 소개 이번 포스트 부터 파이썬의 핵심 기능 중 하나인 데코레이터(Decorator)에 대해 살펴 볼 예정이다. 데코레이터는 앞으로 나올 강좌에서도 종종 등장할 예정이므로 집중해서 읽도록 하자. 목차 >> 파이썬 데코레이터 소개 함수의 인자와 리턴값 처리하기 인자를 가지는 데코레이터 데코레이터 활용 데코레이터란? 데코레이터(Decorator)는 '장식하다', '꾸미다'라는 뜻으로 함수(또는 클래스 메소드)를 꾸며준다고 해서 이런 이름이 붙었다. 파이썬의 데코레이터는 기존 함수의 이름과 사용성을 변경하지 않는 상태에서, 함수에 추가 기능을 구현할 때 사용 되는 파이썬의 주요 특징 중에 하나다. 데코레이터는 기존 함수를 변경하지 않으면서 함수에 기능을 추가 할 때 사용된다. 예를 들어 아래와 같은 say_hello..
[Python] 함수 #7 람다(lambda) 이번 포스트에서는 익명의 함수를 만드는 람다 표현식에 대해 살펴 보도록 하겠다. 목차 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 함수 객체 일급 객체(first class object) >> 람다(lambda) 람다 표현식이란? 람다란, 프로그래밍 언어에서 사용되는 개념으로 익명의 함수, 이름 없는 함수를 지칭하는 용어다. 익명함수란 말 그대로 함수의 이름이 없는 함수다. 보통 파이썬에서 def 키워드를 사용하여 함수를 선언하고 기능을 정의 하는 것과는 달리, 람다는 함수를 하나의 식으로 정의한다. 수학적으로 함수를 단순하게 표현하는 방법을 '람다'라고 하고, 함수를 하나의 식으로 표현 한다고 해서 '표현식'. 이 둘을 합하여 '람다 표현식'이라고 부른다. 아직 무슨 말인지 이해..
[Python] 함수 #6 일급 객체(first class object) 이번 포스트에서는 일급 객체(first class object)라는 용어에 대해 살펴 보겠다. 개념적인 내용이므로 프로그래밍하는데 큰 영향을 끼치지는 않지만(특히 파이썬에서), 알아 두면 어디 가서 아는척하기 좋은 지식이니 가볍게 읽고 넘어가도록 하자. 목차 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 함수 객체 >> 일급 객체(first class object) 람다(lambda) 일급 객체(first class object)란? 우리가 프로그래밍을 하다 보면 first class object(일급 객체)라는 다소 생소한 용어를 만날 수 있다. 일급 객체란 프로그래밍에서 아래에 나열된 특징을 가지는 모든 객체들을 가리킨다. 모든 요소는 "할당 명령문의 대상"이 될 수 있다. 모든..
[Python] 함수 #2 디폴트 파라미터 주의 사항 이번 포스트에서 다룰 내용은 어려운 내용은 아니지만 파이썬 프로그래밍을 하다 보면 한번은 경험하게 되는 - 특히, 다른 프로그래밍 언어 경험이 있는 경우 더 경험하기 쉬운 - 디폴트 파라미터에 대한 문제를 다뤄보도록 하겠다. 파이썬 관련 면접 질문에서도 종종 물어보는 문제이므로 이제 시작하는 프로그래머라면 잘 읽어 두도록 하자. 목차 함수 소개 >> 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) mutable 타입을 함수의 디폴트 인자로 사용하지 말라 파이썬에서 mutable 타입이란 상태를 변경 할 수 있는 객체를 말한다. 예를들어 list, bytearray, set과 같은 시퀀스들이 좋은 예다. 반대로 immut..
[Python] 함수 #5 함수 객체 파이썬에서는 모든 것이 객체로 취급 된다고 이야기 했다. "함수" 역시 예외가 아니다. 오늘은 "파이썬에서는 함수도 객체"다 라는 주제를 가지고 이야기를 풀어 보겠다. 목차 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 >> 함수 객체 일급 객체(first class object) 람다(lambda) 함수도 객체다 파이썬에서는 모든 것을 객체로 관리한다고 했다. 파이썬 함수 역시 객체다. 자세한 설명은 뒤로 미루고, "함수는 객체다"라는 것만 기억하며 아래 예제 부터 보도록 한다. import sys def add(x, y) : return x + y print(hex(id(add))) # 함수 객체의 주소 print(sys.getrefcount(add)) # 함수 객체의 레퍼런스 ..
[C++] UTF-8 문자열 길이 C++은 강력한 프로그래밍 언어지만 그에 반해 부족한 부분도 많다. 특히 문자열 관련해서는 타의 추종을 불허할 정도로 불편하다. 이번 포스트에서는 C++에서 UTF-8 문자열의 개수를 세어 보도록 하겠다.UTF-8 인코딩 규칙보통 UTF-8관련 포스팅이라면, UTF-8의 인코딩 역사 부터, 유니코드와의 관계 등등 장황한 이야기가 펼쳐지지만 여기서는 코드를 작성 할 수 있을 정도의 짧고 얇은 지식만 요약하고 넘어 간다. 밑줄 그어진 부분을 집중해서 보자.UTF-8인코딩은,유니코드 한 문자를 나타내기 위해 1바이트에서 부터 4바이트까지 사용하는 "가변 길이" 문자열 인코딩 방식이다.문자에 따라 문자를 표현하기 위해 1바이트에서 4바이트까지 다양한 길이를 가진다.1바이트로 표시된 문자의 최상위 비트는 항상 0..
[Python] 함수 #8 전역 변수와 지역 변수 이번 강좌에서는 파이썬의 전역 변수와 지역 변수에 대해 설명한다. 프로그래밍을 처음 접하는 분들에겐 접근 가능 범위와 생명 주기와 같은 용어가 생소하게 다가 올 수 있을 것이다. 생소한 용어라 당황스러울 수 있지만, 개념적으로 어렵거나 복잡한 내용은 아니므로 긴장하지 말고 가벼운 마음으로 따라오자. 프로그래밍에서는 변수의 선언 위치에 따라 변수의 유효 범위, 메모리 반환 시기, 초기화 여부가 달라진다. 크게는 전역 변수와 지역 변수로 나뉜다. 전역 변수는 프로그램이 시작하면서 종료 할 때까지 메모리에 상주하며, 프로그램 어디에서든 접근이 가능한 변수인 반면에 지역 변수는 함수와 같이 변수가 선언된 특정 코드 블록이 내에서만 접근이 가능하고 해당 블록이 종료 되면 변수 또한 메모리에서 해제된다. 또한 파이..
[Python] 함수 #4 파라미터 패킹 이번 강의에서는 파이썬 함수 인자(parameter)의 개수를 유연하게 지정 할 수 있는(가변 인자) 파라미터 패킹(parameter packing)에 대해 살펴 보도록 하겠다. 목차 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 >> 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) 파라미터 패킹 파이썬에서 파라미터 패킹(parameter packing)이란 고정되지 않은 여러개의 인자를 하나의 시퀀스 객체로 묶어 함수에게 전달하는 것을 말한다. 고정되지 않은 여러개의 인자(parameter)를 묶은 하나의 시퀀스 인자 바꿔 말하면 파라미터 패킹을 통해 '가변 인자 함수'가 가능하다는 것이다. 우리가 자주 써왔던 print표준 함수가 좋은 파라미터 패킹과..
[Python] 함수 #3 파라미터 언패킹 이번에 살펴볼 파라미터 패킹과 언패킹은 포스트가 길어져 두 장에 나뉘어 작성 되었다. 이번 포스트에서는 언패킹에 대해 알아보고, 바로 이어지는 다음 포스트에서 패킹에 대해 같이 알아보도록 하겠다. 목차 함수 소개 디폴트 파라미터 주의 사항 >> 파라미터 언패킹 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) 파라미터 언팩(unpack) 파라메터 언패킹(unpacking)이란 시퀀스 객체(list, tuple, set, dictionary)가 함수의 인자로 넘겨지는 경우, 시퀀스 객체의 각 요소들을 개별 변수로 풀어서, 각각의 변수로 함수의 인자로 전달하는 기능을 말한다. 글로 설명하면 설명이 어려우니 빠르게 예제 중심으로 설명하도록 한다. 언패킹이란? "시퀀스 ..
[Python] 함수 #1 소개 이번 포스트 부터 몇 장에 걸쳐 파이썬 함수에 대해서 다룬다. 먼저 본 포스트에서는 파이썬 함수의 기본 문법에 대해 빠르게 살펴 본 다음, 파이썬 함수의 인자 전달 방법을 알아본다. 파이썬 함수에 대해 기본 사항을 파악하고 난 후 다음 포스트 부터 파라미터 패킹/언패킹, 데코레이터들을 이어서 살펴 보도록하겠다. 목차 >> 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) 파이썬 함수의 문법 파이썬 함수는 다음과 같은 형식을 가진다. def 함수명(매개변수 리스트) : 수행할 표현식 수행할 표현식 ... def 키워드는 파이썬에서 함수를 선언 할때 사용 되는 키워드이며, 함수명은 사용자가 임의 지정한다. 함수명 ..

반응형