Python
Decorator @의 의미
python으로 작성된 코드들을 보다 보면 @로 시작하는 구문들을 볼 수 있습니다. @decorator_ def function(): print("what is decorator?") Decorator를 한마디로 얘기하자면, 대상 함수를 Wrapping 하고, Wrapping 된 함수의 앞뒤에 추가적으로 꾸며질 구문들을 정의해서 손쉽게 재사용 가능하게 해주는 것입니다. Decorator는 감싸고 있는 함수를 호출하기 전이나 후에 추가로 코드를 실행하는 기능을 갖췄습니다. 이 기능으로 입력 인수와 반환 값을 접근하거나 수정할 수 있습니다. 이 기능은 시맨틱 강조, 디버깅, 함수 등록을 비롯해 여러 상황에 유용합니다. Decorator는 어떤 경우에 쓰이는가? 메인 구문이 있고, 여기에 부가적인 구문을 추가..
[Python] 입력받기
1. input() 한줄씩 통째로 입력받는 방벙으로 input()은 입력되는 모든 것을 문자열로 입력받는다. In [1]: a = input() print(type(a)) 10 10 20 30을 입력하면 '10 20 30' 으로 문자열 형태로 변수 a에 저장된다. In [2]: a = int(input()) 10 In [3]: a = int(input()) 10 20 30 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) in ----> 1 a = int(input()) ValueError: invalid literal for int() w..
[Python] with 문
파이썬의 with...as 구문은 파일 스트림을 다루는데 있어서 파이썬에서 제공하는 강력한 기능 중 하나다. 파일을 다루는 처리를 할때는 필수적으로 파일 오픈(open) 파일 닫기(close) 과정을 거치게 된다. 하지만 코드가 복잡해지면서 개발자는 파일을 열어놓고 닫지 않는 실수를 할 경우가 생기게 된다. with ... as 구문을 사용하게 되면 파일을 열고 해당 구문이 끝나면 자동으로 닫히게 되어서 이러한 실수를 줄일 수 있다. [문법] with EXPRESSION [as VARIABLE]: BLOCK cs 다음과 같은 코드가 있다면 file_data = open('file.txt') print(file_data.readline(), end="") file_data.close() cs 아래처럼 바꿀..
if __name__ == '__main__': 사용하는 이유
파이썬 소스 코드를 보다보면 자주 마주하게 되는 한 줄은 다음과 같다. if __name__ == "__main__": // 코드 // 코드 "__main__"이라고 써져 있는데 파이썬은 C언어 또는 자바와 같은 언어에서 항상 사용하는 main()이라는 함수가 존재하지 않는다. 그렇다면 "__main__"은 대체 무엇일까? 라는 의문에 해당 글을 작성한다. 차근차근 알아보는 걸로.... __name__ 파이썬은 다양한 정보를 담고있는 내장 변수가 존재한다. 이중에서 __name__이라는 내장변수에 대해 먼저 알아보겠다. 이는 현재 모듈의 이름을 담고있는 내장 변수이다. 이 변수는 직접 실행된 모듈의 경우의 경우 __main__이라는 값을 가지게 되며, 직접 실행되지 않은 import된 모듈은 모듈의 이름..
Thread를 사용하는 이유와 발생할 수 있는 문제들
Python은 하나의 Thread(Main Thread)로 시작한다. Main Thread는 혼자서 순차적으로 코드를 실행하게 된다. 하지만 실행되던 중간에 Blocking Function, 예를 들어서, Input과 같은 함수를 만나면 그 함수의 실행이 끝날 때까지 기다리게 된다. Main Thread가 멈추게 되면 다른 함수를 실행할 수가 없게 되는데 이때 우리는 Thread를 하나 더 만들어서 다른 함수를 병렬적으로 Blocking Function과 같은 함수와 함께 실행할 수 있다. 하지만 Thread를 여러 개를 사용할 때 주의해야 할 것들이 많다. 이번 글에서는 Thread를 사용할 때 주의해야 할 점과 생각해야 할 문제들을 소개해 보고자 한다. 1. 전역 변수를 공유한다 문제의 상황: 서로 ..
파이썬 스레드
목차 프로세스 스레드 스레드란? threading 모듈 사용하기 데몬 스레드 만들기 프로세스와 스레드 운영체제에서 어떤 실행 프로그램이 실행된다는 것은 CPU, 메모리, SSD와 같은 컴퓨터 자원을 사용합니다. 따라서 운영체제는 프로그램들이 마음껏 실행될 수 있도록 전용 '놀이터'와 같은 공간을 제공해주는데 이를 프로세스라고 합니다. 응용 프로그램의 코드는 이 놀이터에서 마음껏 놀 수 (실행할 수) 있으며 외부 세계에 대해서 걱정할 필요가 없습니다. 하지만 만약 어떤 코드가 자신에게 부여받은 놀이터 공간을 벗어나 다른 영역으로 가려면 하면 운영체제에 의해 종료되어버립니다. 놀이터에는 응응 프로그램이 놀 수 있습니다. 운영체제 입장에서 놀이터에 있는 플레이어를 스레드라고 부릅니다. 어떤 응용 프로그램은 한..