728x90

Programing Story's 287

[Python] 파이썬 데코레이터: 함수를 꾸며주는 마법 (@ 기호의 정체)

파이썬 데코레이터: 함수를 꾸며주는 마법 (@ 기호의 정체)다른 사람이 짠 파이썬 코드를 보다 보면 가끔 이런 줄이 튀어나와요.@app.route("/")def home(): ... 함수 위에 @ 뭐시기가 한 줄 붙어있는 거. 처음 보면 이게 도대체 뭔가 싶거든요. 저도 처음 봤을 때 "이게 무슨 자바 어노테이션 같은 건가?" 하면서 검색창을 열었던 기억이 나요. 검색해보면 "데코레이터"라는 답이 나오는데, 설명이 또 어렵습니다. "함수를 받아서 함수를 반환하는 함수"라니, 한국말인데 한국말이 아닌 것 같죠.오늘은 이 @ 기호 하나의 정체를 끝까지 파볼게요. 결론부터 말씀드리면, @는 그냥 단축키예요. 진짜 그게 다입니다.함수도 변수에 담을 수 있어요파이썬 데코레이터를 이해하려면 먼저 한 가지 감각..

Application/Python 2026.05.15

[Python] 파이썬 람다와 map filter, 한 줄 함수로 코드 짧게 쓰는 법

파이썬 람다와 map filter, 한 줄 함수로 코드 짧게 쓰는 법컴프리헨션을 익히고 나면 코드가 한결 짧아지는 맛을 보게 되는데요. 그러다 보면 또 다른 욕심이 생기실 거예요."숫자 하나 두 배로 만드는 함수 하나 쓰려고 def 다섯 줄을 또 쓰는 게 너무 귀찮은데..."이럴 때 쓰는 게 바로 람다(lambda) 입니다. 그리고 람다랑 거의 짝꿍처럼 따라다니는 친구가 map이랑 filter예요. 오늘은 이 셋을 같이 묶어서 풀어볼게요.파이썬 람다(python lambda)가 뭔가요람다는 한마디로 이름 없는 한 줄짜리 함수예요. "익명 함수"라고도 부르고요.비유하자면 포스트잇 같은 거예요. 포스트잇에 "전화 다시 걸기"라고 쓱 적어두고 일 끝나면 떼서 버리잖아요. 람다도 그래요. 한 번만 쓰고 버릴 함..

Application/Python 2026.05.14

[Python] 파이썬 리스트 컴프리헨션, 코드 한 줄로 줄이는 마법

파이썬 리스트 컴프리헨션, 코드 한 줄로 줄이는 마법파이썬으로 쓴 다른 사람 코드를 보다 보면, 가끔 이런 한 줄을 만나게 되실 거예요.[x ** 2 for x in range(10)] 처음 보면 진짜 외계어 같죠. 저도 처음엔 이게 뭐지 싶었거든요. 분명 파이썬 코드인데 평소에 배운 문법이랑 모양이 너무 달라 보이잖아요.그런데 알고 보면 별거 아니에요. 그냥 for 루프를 한 줄로 압축해놓은 것뿐이거든요. 이걸 리스트 컴프리헨션(list comprehension)이라고 부르는데, 익숙해지면 코드가 훨씬 깔끔해져요. 클래스 얘기로 머리가 좀 무거우셨을 텐데, 오늘은 분위기 바꿔서 가볍게 코드 줄이는 기법 하나 살펴볼게요.일단 평범한 for 루프부터리스트 컴프리헨션을 이해하려면, 먼저 우리가 평소에 어떻게..

Application/Python 2026.05.13

[Python] 파이썬 상속과 오버라이딩, 클래스를 또 만들지 마세요

파이썬 상속과 오버라이딩, 클래스를 또 만들지 마세요지난 글에서 __init__으로 인스턴스 만드는 걸 해봤잖아요. 그때 강아지, 고양이, 햄스터 클래스를 비슷하게 또 만들면서 좀 부담스러우셨죠. 저도 처음 클래스를 배울 때 이 부분이 제일 답답했어요. 분명히 거의 똑같은 코드인데, 동물 종류가 늘어날 때마다 전체를 다시 써야 하니까요.사실 이걸 한 방에 해결하는 장치가 따로 있어요. 상속이라는 건데, 이름은 거창하지만 알고 보면 별거 없거든요.파이썬 상속이 뭔가요상속은 말 그대로 부모한테 뭔가를 물려받는 거예요. 부모 클래스가 가진 속성과 메서드를 자식 클래스가 그대로 가져다 쓰는 장치입니다.비유로 생각해보세요. 강아지도 결국 동물이잖아요. 동물이 가진 특징(숨을 쉰다, 먹는다)은 강아지도 다 가지고 ..

Application/Python 2026.05.12

[Python] 파이썬 생성자(__init__) 쉽게 이해하기

파이썬 생성자(init) 쉽게 이해하기지난번에 강아지 클래스 만들 때 set_info() 같은 메서드로 이름이랑 나이를 따로 넣었던 거 기억나세요? 클래스를 먼저 만들고, 그다음에 메서드를 한 번 더 호출해서 정보를 채워 넣는 방식이었잖아요.d = Dog()d.set_info("뽀삐", 3) 두 줄을 꼭 써야 하니까 살짝 답답하셨을 거예요. 저도 그랬거든요.근데 사실 이걸 한 줄에 끝낼 수 있는 방법이 있어요. 바로 오늘 배울 생성자예요.파이썬 생성자, 왜 필요할까요생성자라는 단어부터 이미 어렵죠. 그냥 이렇게 생각하시면 돼요.인스턴스가 태어나는 순간에 자동으로 실행되는 초기 세팅 코드.회원가입을 떠올리시면 이해가 쉬워요. 사이트에 가입할 때 이름, 이메일, 나이를 한 번에 입력하잖아요. 가입 버튼을 누..

Application/Python 2026.05.11

[Python] 파이썬 클래스, 객체지향이란 무엇일까

파이썬 클래스, 객체지향이란 무엇일까지난번에 계산기 미니 프로젝트 만들면서 살짝 답답한 부분 못 느끼셨어요? 더하기, 빼기, 곱하기, 나누기 함수 네 개가 그냥 따로따로 떠다니고 있었거든요. 분명 다 "계산기"라는 한 덩어리에 속하는 기능들인데, 코드만 보면 별 상관없는 함수들이 줄지어 서 있는 모양새였죠.오늘 그 답답함을 풀 차례예요. 이게 바로 클래스라는 친구의 등장 신호고, 흔히 말하는 객체지향이라는 사고방식의 시작점이기도 합니다. 드디어 중급 영역으로 넘어왔어요.객체지향이란 게 도대체 뭔가요이름이 거창해서 그렇지, 핵심은 한 줄이에요.관련 있는 데이터랑 기능을 한 덩어리로 묶어서 다루는 방식.이게 끝입니다. 진짜로요. 책에 보면 캡슐화니 다형성이니 어려운 단어들이 줄줄이 나오는데, 처음엔 그거 다..

Application/Python 2026.05.08

[Python] 파이썬 계산기 만들기 (첫 미니 프로젝트)

파이썬 계산기 만들기 (첫 미니 프로젝트)여기까지 따라오시느라 고생 많으셨어요. 변수, 조건문, 반복문, 함수, 예외 처리까지 한참 배웠는데, 솔직히 이게 다 따로따로 흩어져 있으면 좀 답답하잖아요. "이거 다 배워서 도대체 뭘 만드는 거지?" 싶은 순간이 분명 있으셨을 거예요.저도 그랬거든요.그래서 오늘은 지금까지 배운 걸 한 자리에 끌어모아서, 진짜 동작하는 작은 프로그램 하나를 만들어볼 거예요. 바로 콘솔 계산기.우리가 만들 파이썬 계산기거창한 건 아니에요. 이런 동작을 합니다.사용자가 두 숫자와 연산자(+, -, *, /)를 입력하면 결과를 출력q를 누르기 전까지 계속 사용 가능숫자 자리에 글자를 입력하거나 0으로 나눠도 프로그램이 죽지 않음코드는 최종적으로 40줄 정도 나와요. 처음부터 완성본을..

Application/Python 2026.05.07

[Python] 파이썬 예외처리, try except로 오류 잡는 법

파이썬 예외처리, try except로 오류 잡는 법지난 글에서 파일 읽기를 연습하다가, 파일 이름을 살짝 잘못 적은 적 있으시죠. 그 순간 화면이 빨간 글자로 뒤덮이면서 FileNotFoundError가 떴을 거예요.처음엔 그게 진짜 당황스럽거든요. 코드를 다 맞게 짠 것 같은데 빨간 메시지가 좌악 뜨면, "내가 또 뭘 잘못했지?" 싶고요.그런데 사실 저런 빨간 글자, 꼭 여러분 잘못이 아닐 때가 더 많아요.파이썬 오류는 왜 생길까요프로그램은 보통 위에서 아래로 한 줄씩 실행돼요. 그런데 가끔 예상 못한 상황을 만나면 거기서 멈춰버려요. 없는 파일을 열려고 했다거나, 0으로 나누려고 했다거나, 사용자가 숫자 칸에 글자를 넣었다거나요.이런 걸 예외(Exception) 라고 부릅니다. 에러랑 거의 같은 말..

Application/Python 2026.05.06

[Python] 파이썬 파일 읽기와 쓰기: open, read, write 한 번에 정리

파이썬 파일 읽기와 쓰기: open, read, write 한 번에 정리지난번에 모듈 가져다 쓰는 법까지 봤죠. 그러면서 한 가지 답답한 점, 혹시 느끼셨을지 모르겠어요.지금까지 짜본 코드들은 프로그램 끄는 순간 데이터가 다 날아가요. 변수에 아무리 잘 넣어둬도 파이썬 창 닫으면 끝이에요.근데 평소에 쓰는 프로그램은 안 그렇잖아요. 메모장에 적어두면 내일 켜도 그대로고, 엑셀도 저장만 해두면 한 달 뒤에 열려요. 그게 다 파일이라는 형태로 컴퓨터 어딘가에 적혀있어서 그래요.오늘은 파이썬으로 그 파일을 직접 읽고 쓰는 방법을 볼게요.파일 다루는 흐름은 노트랑 똑같아요코드 보기 전에 잠깐만요.파일을 그냥 노트 한 권이라고 생각하시면 돼요. 노트에 뭔가 적으려면 보통 이런 순서를 거치죠.노트를 편다 (open..

Application/Python 2026.05.04

[Python] 파이썬 모듈과 import 사용법, 남이 만든 도구 가져다 쓰기

파이썬 모듈과 import 사용법, 남이 만든 도구 가져다 쓰기지난 글에서 함수를 직접 만들어봤잖아요. 매개변수 넣고 기본값 설정하고. 근데 거기까지 오면서 이런 생각 한 번쯤 드셨을 거예요."이런 함수, 누가 이미 만들어놓은 거 없나?"있어요. 엄청 많아요. 파이썬을 깔면 처음부터 같이 따라오는 도구들이 수백 개나 들어있거든요. 오늘은 그걸 어떻게 꺼내 쓰는지 이야기해볼게요.파이썬 모듈이 도대체 뭐예요모듈이라는 단어가 좀 거창하게 들리는데, 사실 별거 아니에요.모듈은 그냥 파이썬 파일이에요. 누군가 미리 만들어둔 .py 파일이요.비유 하나 들어볼게요. 집에 도구상자가 여러 개 있다고 생각해보세요. 하나는 망치랑 못이 들어있는 상자, 하나는 드라이버만 모아둔 상자, 또 하나는 줄자랑 수평계 들어있는 상자..

Application/Python 2026.04.30
728x90