반응형

프로그래밍/python 38

파이썬 클래스 getter, setter와 네임맹글링(name mangling)

getter와 setter의 사용 의미 getter/setter 클래스의 속성값에 직접 접근 막기 위함에 목적이 있습니다. 직접 접근을 막고 정해둔 메소드로만 접근하게 함으로서 메소드의 특성도 얻게되므로 값의 조작이나 값의 검증하거나 제한할 수 있습니다. 파이썬의 getter/setter의 사용법 파이썬에서 getter와 setter는 property 장식자를 사용하여 만들 수 있습니다. 앞으로 제시되는 예제는 3단계를 거쳐 문제점이 수정되어 완성되갑니다. 1단계 - 순수한 getter/setter # getset.py class GetSetTest(): def __init__(self): self.count = 1 def get_count(self): # getter return self.count d..

파이썬 강좌 - python abc 추상 클래스

이 강의는 python3 문법입니다. 추상클래스라는 용어는 C++의 추상클래스와 비슷하게 이해할 수 있다. 자바(java)라면 interface라 볼 수 있다. C++이나 JAVA를 몰라도 상관은 없다. 쉽게 말해 추상클래스는 메소드의 구체적인 구현이 없는 클래스를 말한다. 이런 클래스를 왜 만들까 한번 10초만 고민해보자. 추상클래스의 목적은 일종의 틀을 제공해주는 역할을 한다. 이 틀은 추상클래스를 상속하는 클래스들에게 특정 메소드의 구현을 강제하는 효과가 있다. 앞서 말한 C++의 추상클래스라면 메소드를 _순수 가상함수_라는 형식으로 정의하여 이를 상속하는 클래스들에게 순수 가상함수를 강제구현하도록 하는 지시를 하는 것이다. 자바의 경우는 interface가 같은 역할을 한다. 우선 본론에 들어가기..

파이썬 쓰레드와 GIL(Global Interpreter Lock)에 대한 이해

파이썬으로 쓰레드를 공부하다 보면 GIL(Global Interpreter Lock)에 대한 이야기가 심심치 않게 나온다. 공부를 하는 입장에서는 당장 GIL이 뭔지 몰라도 쓰레드를 만들고 프로그램을 돌리는데는 문제가 없다. 물론 공부를 하는 입장에서다. 파이썬이 발전되는 과정에서 하드웨어 역시 발전되어 왔다. 어는 순간 CPU는 클럭을 높이는 쪽에서 코어를 늘리는 쪽으로 발전의 방향이 변경되었다. 이런 변화는 프로그래밍 언어에도 큰 영향을 미쳤다. 왜냐면 1코어 시대에서는 CPU가 1개의 코어만 있는 게 당연했지만 현재는 다중 코어 CPU를 사용할 수 있도록 언어적인 차원에서 지원을 해야하기 때문이다. 그런데 파이썬(Cpython)은 GIL이라고 해서 인터프리터에 락을 거는 방식으로 다중 코어를 병행하..

프로그래밍/python 2019.05.06 (2)

파이썬 강좌 - switch/case 문이 없는 파이썬

대부분의 프로그래밍 언어의 문법은 닮아 있다. 파이썬 역시 C언어라는 뿌리로 부터 시작되었지만 switch/case 문이 없다. 왜? 없는지 궁금할 수 있겠으나 왜? 라는 질문에 대한 절대적인 해답은 없다고 본다. 굳이 답을 내자면 if~ elif문의 가독성이 워낙 좋고 switch/case문의 역할을 100% 할 수 있기 때문이라고 본다. 또한 사전(dictionary)라는 자료형을 사용하여 switch/case 문을 비슷하게 흉내낼 수도 있고 이것은 다른 언어의 switch/case 문 보다 더 간결하다. 고로 단순함을 추구하는 철학을 가진 파이썬 입장에서는 굳이 switch/case문을 채용할 필요가 없었다고 생각든다. 태어나서 파이썬 외에 다른 언어를 공부해보지 않았다면 switch/case문을 ..

프로그래밍/python 2018.01.30 (2)

간편하게 편의점택배 보내는법 알아보기

개인이 택배를 보내는 방법으로는 우체국을 이용하거나 postbox를 이용하면 된다. PostBox가 설치된 GS25편의점이나 CU에서 접수하고 택배기사가 정해진 시간에 수거해 가는 방식이다.배송비는 쇼핑몰에서 구매할 때 지불하는 배송비와 비교해서 약간 더 비싸다고 보면 된다.운임비는 PostBox에서 보낼 물건의 무게를 측정해서 무게에 따라서 차등 적용되는 방식이다.기본 운임은 2,600원이며 700g~800g이 3,500원 20kg~30kg이 7,000원이다. (홈페이지에 자세히 나와있다.)GS25에서 택배를 보내려면 postbox 홈페이지에서 회원가입 또는 비회원으로 시작할 수 있는데 마일리지를 얻으려면 회원가입을 하는 것이 좋다.CU에서 택배를 보내고 싶다면 여기에서 시작하면 된다.편의점에 가서 모..

비주얼 스튜디오 2017 파이썬 개발환경

비주얼 스튜디오 2017에서는 파이썬 개발 환경이 참 쾌적해 졌다. 예전 버전에서는 뭔가 부족한 부분들이 많아서 그다지 관심 갖지 않고 다른 개발툴을 사용했었는데 2017에서는 그렇지 않아보인다. 너무 괜찮아져서 원래 비주얼 스튜디오 사용자라면 파이썬 개발에 다른 툴을 따로 설치할 필요가 없을 듯 하다. 특히 다양한 버전의 파이썬을 사용하는 개발자라면 더욱 인터페이스의 편리함을 느낄 수 있다. 어짜피 파이썬 버전은 커스텀으로 변경할 수 있는데 기본적으로 3.6버전이 제공된다.(파이썬을 따로 설치할 필요 없음) 그 밖에 다양한 버전의 파이썬과 Anaconda 버전을 쉽게 설치할 수도 있다. 자신이 사용할 파이썬 버전들을 체크해서 설치하면 된다. 프로젝트를 만들어 보면 솔루션 탐색기의 프로젝트 하위 메뉴에 ..

파이썬(python) win32api로 간단한 윈도우 프로그래밍

작년과 올해 파이썬에 대한 인기가 엄청 뜨거워지고 있다. 그도 그럴 것이 IT 쪽 분야가 아닌 다른 분야나 직종에서 기본적인 프로그래밍 스킬이 필요해지면서 그나마 쉬운 언어인 파이썬에 대한 관심이 높아졌기 때문이라고 생각한다.특히 최근에 빅데이터나 인공지능 쪽이 부각되는 것 같은데 파이썬 하나만 가지고도 웹부터 모바일, 윈도우 프로그래밍 까지 모든 분야를 망라할 수가 있기 때문에 배워놓으면 두고 두고 써먹을 일이 많은 언어기도 하다.아무튼 오늘은 pywin32 (Python Window Extension)라는 패키지에 대해서 소개할 것이다. pywin32는 window api 와 COM 등 에 대한 바인딩을 제공한다. 그중 win32api 모듈은 window api에 대한 바인딩을 제공하는데 오늘의 주제..

프로그래밍/python 2017.08.03 (5)

파이썬(python) 플라스크(flask) 설치와 기본 예제

앞으로 플라스크를 사용해야할 듯 싶어서 설치를 하려고 보니까 엥? 이미 설치가 되어 있었다.기억은 안나는데 내가 사용하는 파이썬이 아나콘다여서 이미 설치가 되어 있는 것인지 아니면 예전에 내가 설치했던 것인지 기억이 나지 않는다.아나콘다 홈페이지 가서 살펴보니 기본적으로 설치되어 있는 것 같았다. 파이썬3에서 플라스크를 사용하려면 아나콘다 최신버전을 설치하던지 아니면 아나콘다에서 플라스크(flask) 버전을 바꾸는 방법을 사용하면 된다.아나콘다 플라스크아나콘다를 설치함으로서 이렇게 플라스크는 간단히 설치된다.파이썬으로 어떤 프로젝트를 시작하든 가장 기본이 되는 것은 가상환경 설정이다.여기서 가상환경은 파이썬 3.3이상의 버전에서는 vevn이라는 도구를 사용하여 설정할 수 있는데 프로젝트 별로 라이브러리의..

matplotlib으로 막대차트 그리기

이전에 matplotlib의 기본적인 내용을 설명했었다. matplotlib을 사용해서 다양한 방법으로 시각화하는 방법을 오늘부터 하나하나씩 정리하려 한다. 사용되는 코드는 완벽하게 효율적이지 않을 수 있다. 우선 다양한 시각화에 대한 설명을 한 후 여건이 되면 코드의 효율성을 논하되 생략할 수도 있다. 중간에 끊기는 내용이 있다면 다음 포스팅으로 이어진다. ... bar 함수를 사용하면 막대차트를 그릴 수 있다. 이전 포스팅에서 plot 함수로 그래프를 그렸는데 그냥 plot 대신 bar를 쓰면 된다. 표현방식만 바뀌었기 때문에 나머지 코드는 동일하다.plot 함수로 그래프 그리기range(len(data)) : data의 원소의 개수만큼의 범위(0, 1, 2, 3)를 가진 range 객체를 생성 ( ..

반응형