Python

75 posts

[파이썬] 내장 함수 dir 사용법

이번 포스팅에서는 네임 스페이스를 들여다보고 싶을 때 요긴하게 쓸 수 있는 dir() 내장 함수에 대해서 알아보겠습니다. 네임 스페이스와 dir() 함수 파이썬에는 다른 언어와 비슷하게 소위 네임 스페이스(name space)라는 개념이 있는데요. 변수명이나 함수명 그리고 클래스의 이름을 언어 차원에서 관리해주는 매커니즘이라고 생각하시면 편할 것 같습니다. dir()은 네임 스페이스에 등록되어 있는 모든 이름들을 리스트로 반환해주는 파이썬의 내장 함수입니다. 예를 들어, 변수 A와 B를 선언 후 dir() 함수를 호출해보겠습니다.

파이썬의 f-string으로 문자열 포맷팅하기

파이썬 3.6에서 소위 f-string이라고 불리는 문자열을 좀 더 쉽게 포맷팅하기 위한 새로운 방법이 추가되었는데요. 이번 포스팅에서는 간결하고 읽기 편한 문법으로 많은 파이썬 개발자들에게 사랑받고 있는 이 f-string에 대해서 살펴보겠습니다. 기본 문법 파이썬에서 문자열은 아시는 것처럼 홈 따옴표나 쌍 따움표를 이용해서 나타내죠? 이러한 일반적인 문자열 앞에 f 또는 F 문자만 붙여주면 f-string이 됩니다. 변수 치환 중괄호(brace)을 사용하면 f-string 안 에 파이썬의 표현식(expression)을 삽입할 수

파이썬의 enumerate() 내장 함수로 for 루프 돌리기

많은 프로그래밍 언어들에서 i, j, k와 같은 소위 인덱스(index) 변수를 증가시키면서 for 루프를 돌리지요? 하지만 파이썬에서는 enumerate()라는 내장 함수를 통해 이러한 인덱스 변수를 사용하지 않고 루프를 돌리는 방식이 선호되며 이런 코딩 스타일을 소위 Pythonic, 즉 파이썬 답다고 하죠. 이번 글에서는 파이썬의 enumerate() 함수에 대해서 알아보도록 하겠습니다. for 루프 먼저 파이썬에서 for 문을 사용해서 루프를 돌리는 가장 기본적인 방법부터 짚고 넘어가겠습니다. 파이썬에서는 for 루프는 기본

파이썬의 zip() 내장 함수로 데이터 엮기

마치 옷의 지퍼(zipper)처럼 두 그룹의 데이터를 서로 엮어주는 파이썬의 내장 함수 zip()에 대해서 알아보도록 하겠습니다. zip() 기본 문법 zip() 함수는 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환합니다. 설명이 좀 어렵게 들릴 수도 있는데요. 간단한 예제를 보면 이해가 쉬우실 겁니다. 위 코드를 보면 numbers 리스트와 letters 리스트를 zip() 함수에 인자로 넘겨서 호출 후에, for 문

파이썬에서 requests 라이브러리로 원격 API 호출하기

requests는 파이썬으로 HTTP 통신이 필요한 프로그램을 작성할 때 가장 많이 사용되는 라이브러리입니다. 특히 원격에 있는 API를 호출할 때 유용하게 사용할 수 있는데요. 이번 포스팅에서는 requests 라이브러리를 사용하는 방법에 대해서 알아보겠습니다. 패키지 설치 파이썬의 패키지 매니저인 pip를 이용해서 requests 패키지을 설치합니다. 설치가 잘 되었는지 파이썬 인터프리터를 실행하여 확인해봅니다. requests 라이브러리로 구글에 접속을 해보니 상태 코드 200이 응답이 되는 것을 볼 수 있습니다. 🎉 API

pre-commit 도구로 Git Hook 사용하기

Git의 pre-commit 훅(hook)은 우리가 작성한 코드를 커밋할 때 마다 자동으로 특정 작업을 실행해줍니다. 많은 프로젝트들이 이를 통해 포맷터(formatter)를 실행하여 코드 스타일을 통일하고, 린터(linter)를 실행하여 코드에 잠재하고 있는 문제들을 찾아냅니다. 이번 포스팅에서는 Git의 pre-commit hook을 편리하게 사용할 수 있도록 도와주는 pre-commit라는 도구에 대해서 알아보겠습니다. 설치 pre-commit은 자신의 컴퓨터에 파이썬이 설치가 되어 있다면 파이썬의 패키지 매니저인 pip를 사

이진 탐색(Binary Search) 알고리즘

정렬된 데이터를 검색할 때 가장 널리 사용되는 이분 탐색(binary search)에 대해서 알아보겠습니다. 알고달레에서 코딩 테스트/인터뷰 준비에 좀 더 특화된 컨텐츠를 만나보세요! 📝 기본 개념 책으로된 영어 사전(요즘은 거의 안 쓰죠? 😓)에서 단어를 찾거나 지역 업소록에서 상호명을 어떻게 찾으시나요? 수백, 수천 페이지가 되는 이러한 책을 맨 첫 페이지부터 한 장씩 넘기면서 찾으시는 분들은 아마 없으실 것입니다. 보통은 대강 중간 쯤 어딘가를 어림잡아서 페이지를 펼쳐본 후에 찾으려는 단어나 업소명과 비교하면서 검색 범위를

파이썬 사전(dictionary) 완벽 가이드

사전(dictionary)은 파이썬에서 리스트(list)와 더불어 가장 널리 사용되는 내장 자료형입니다. 하지만 너무 기본적인 기능이다 보니 오히려 이 중요한 자료형의 사용법을 제대로 익히지 않고 넘어가기 쉬운 것 같아요. 이번 포스팅에서는 파이썬에서 사전을 어떻게 사용하는지에 대해서 차근차근 알아보도록 하겠습니다. 참고로 리스트(list)에 대해서는 별도의 포스팅에서 아주 자세히 다루고 있습니다! 사전의 특징 해시 테이블(hash table)이라는 자료구조를 기반으로 하는 사전은 키(key)와 값(value)으로 이루어진 여러 쌍

[파이썬] 정적(static) 메서드와 클래스(class) 메서드

이번 포스팅에서는 파이썬의 정적(static) 메서드와 클래스(class) 메서드에 대해서 알아보겠습니다. 인스턴스(instance) 메서드 정적(static) 메서드와 클래스(class) 메서드에 대해서 살펴보기 전에 가장 기본이 되는 인스턴스(instance) 메서드에 대해서 먼저 짚고 넘어가는 게 좋을 것 같습니다. 클래스에 아무 데코레이터(decorator) 없이 메서드를 선언하면 해당 메서드는 인스턴스 메서드로 취급이 되며, 첫번째 매개 변수로 클래스의 인스턴스가 넘어오게 됩니다. 이 첫번째 매개 변수의 이름은 보통 관행적

파이썬의 datetime 모듈로 날짜/시간 처리하기

어떤 언어를 사용하든지 프로그래밍을 하면서 날짜와 시간 처리는 피하기 어려운 부분입니다. 파이썬은 내장 모듈인 datetime을 통해서 어떻게 날짜와 시간 데이터를 처리를 지원하고 있는지 알아보겠습니다. timedelta datetime 내장 모듈의 timedelta 클래스는 기간을 표현하기 위해서 사용됩니다. timedelta 클래스의 생성자는 주, 일, 시, 분, 초, 밀리 초, 마이크로 초를 인자로 받습니다. timedelta 객체는 내부적으로 일, 초, 마이크로 초 단위만 저장하기 때문에 위와 같이 해당 정보만 표시됩니다.

파이썬 enum 타입 사용법

파이썬은 버전 3.4부터 다른 언어들 처럼 enum(enumeration, 이넘) 타입을 지원하고 있습니다. enum은 일반적으로 서로 관련이 있는 여러 개의 상수의 집합을 정의할 때 사용되는데요. enum 클래스를 사용하면 인스턴스의 종류를 제한할 수 있기 때문에 견고한 프로그램을 작성하는데 도움이 됩니다. 클래스 타입 정의 간단한 예로, 웹에서 사용되는 대표적인 3개의 기술(HTML, CSS, JS)을 나타내는 enum 클래스를 작성해보겠습니다. enum 내장 모듈로 부터 불러온 Enum 클래스를 확장하여 Skill 타입을 만들

파이썬에서 큐(queue) 자료구조 사용하기

큐(queue)는 선입선출, FIFO(First In First Out) 기반의 매우 유명한 자료구조입니다. 큐를 사용하면 데이터를 추가한 순서대로 제거할 수 있기 때문에 비동기 메세징(asynchronous messaging), 스트리밍(streaming), 너비 우선 탐색(breath first search) 등 소프트웨어 개발에서 널리 응용되고 있습니다. 이번 포스팅에서는 파이썬에서 큐 자료구조를 어떻게 사용할 수 있는지 알아보도록 하겠습니다. list 파이썬에서 큐를 사용하는 가장 간단한 방법은 범용 자료구조인 list를 사

파이썬의 typing 내장 모듈로 타입 표시하기

타입 힌트(type hint)를 언어 차원에서 지원하기 위해서 파이썬 버전 3.5에서 typing 모듈이 표준 라이브러리에 추가되었습니다. 이번 포스팅에서는 typing 모듈을 사용해서 파이썬 코드에 타입 어노테이션을 추가하는 방법에 대해서 알아보겠습니다. 파이썬의 타입 어노테이션에 대한 자세한 설명은 관련 포스팅를 참고 바랍니다. List, Dict, Tuple, Set 타입 어노테이션을 사용하다 보면 리스트, 사전, 튜플, 세트와 같은 파이썬에 내장된 자료구조에 대한 타입을 명시해야 할 때가 있습니다. 이때 그냥, list, d

파이썬 타입 검사기 Mypy 사용법

파이썬 버전 3.5에 추가된 타입 어노테이션(type annotation) 덕분에 정적 타입 검사(static type checking)를 통해 좀 더 견고한 프로그램 개발이 가능해졌습니다. 이번 포스팅에서는 파이썬에서 타입 검사기(type checker)로 가장 많이 사용되는 도구인 Mypy에 대해서 간단한 실습을 통해서 알아보도록 하겠습니다. 타입 어노테이션 / 타입 체크 파이썬과 같이 동적(dynamic) 프로그래밍 언어에서 정적(static) 타입 체크가 왠 말이냐고 하시는 분들이 있으실 것 같은데요. 물론, 파이썬의 동적

파이썬의 타입 어노테이션과 힌트

파이썬 버전 3.5에 추가된 타입 어노테이션(type annotation)이 점점 많은 파이썬 프로젝트에서 사용되고 있는 추세입니다. 정적(static) 프로그래밍 언어에서 흔히 볼 수 있는 타입 체킹(type checking)도 아니고 파이썬의 타입 힌팅(type hinting)는 도대체 무엇일까요? 이번 포스팅에서는 파이썬에서 타입 힌팅(type hinting)의 개념과 파이썬 코드에 타입 어노테이션(type annotation)을 어떻게 추가하는지 알아보겠습니다. 파이썬은 동적 프로그래밍 언어 동적(dynamic) 프로그래밍

파이썬 데코레이터 기본 사용법

데코레이터(decorator)는 함수를 매개변수로 받아 새로운 함수를 반환하는 함수입니다. 데코레이터를 활용하면 함수의 코드를 수정하지 않고도, 부가적인 기능을 추가하거나 작동 방식을 변경할 수 있죠. 이 블로그 글에서는 파이썬에서 데코레이터를 사용하는 기본적인 방법에 대해서 실습을 통해 알아보겠습니다. 간단한 데코레이터 작성해보기 "Hi!"를 콘솔에 출력하는 say_hi()라는 함수를 작성하고 호출해보겠습니다. 다음으로 함수 호출 전/후로 "before"과 "after"라는 로그(log)를 추가해주는 매우 간단한 데코레이터 함수

파이썬의 property 사용법 (함수/데코레이터)

객체지향 프로그래밍 언어에서 프로퍼티(property)는 객체의 속성을 제어할 때 유용하게 사용되는 기능이며 데이터 캡슐화에 도움이 됩니다. 이번 포스팅에서는 파이썬에서 프로퍼티를 구현하기 위해서 property() 함수와 @property 데코레이터를 어떻게 사용하는지 알아보겠습니다. 필드명을 통한 접근 사람의 이름, 성, 나이 데이터를 담기 위한 간단한 클래스를 하나 작성해보겠습니다. 아래 Person 클래스는 이름 first_name, last_name, age 이렇게 3개의 필드로 이루어져 있습니다. Person 클래스의 인

[파이썬] collections 모듈의 OrderedDict 클래스 사용법

이번 포스팅에서는 collections 모듈의 OrderedDict 클래스에 대해서 알아보겠습니다. OrderedDict 파이썬 3.6 이전에서는 사전에 데이터를 삽입된 순서대로 데이터를 획득할 수가 없었습니다. 따라서 다음과 같이 무작위 순서로 데이터를 얻게 되는 일이 빈번했었는데요. 대신에 collections 모듈의 OrderedDict 클래스를 사용하면 데이터의 순서를 보장받을 수 있었습니다. 하지만 파이썬 3.6 부터는 기본 사전(dict)도 OrderedDict 클래스와 동일하게 동작하기 때문에 이러한 용도로 Ordere

Docker Compose로 Django 프로젝트 셋업

최근에 많은 Django 프로젝트가 Docker를 이용해서 컨테이너(container) 기반으로 개발되고 테스트, 배포되고 있습니다. 이번 포스팅에서는 Docker Compose이용해서 PostgreSQL를 데이터베이스로 사용하는 Django 애플리케이션을 셋업해보도록 하겠습니다. Docker를 처음 접하시는 분들은 관련 포스팅를 참고하시어 먼저 본인 컴퓨터에서 Docker에 설치하시기 바랍니다. requirements.txt 파이썬에서는 보통 프로젝트에서 필요한 패키지를 requirements.txt 파일에 등록해놓고, 패키지 매

파이썬의 데이터 클래스 사용법 (dataclasses 모듈)

우리는 파이썬으로 코딩을 하면서 데이터를 담아두기 위해서 여러 가지 방법을 사용합니다. 리스트(list), 튜플(tuple), 사전(dictoinary), 네임드 튜플(namedtuple), 세트(set), 프로즌 세트(frozen set)와 같은 내장 자료구조는 사용하기 간편하다는 장점이 있는데요. 반면에 클래스(class)를 이용해서 데이터를 담아두면 type-safe해지기 때문에 프로그램 실행 중에 오류가 발생할 확률이 적어진다는 장점이 있습니다. 파이썬 3.7에서 dataclasses라는 매우 매력적인 모듈이 표준 라이브러리

Discord