본문 바로가기

전체 글261

[python] Shell script 실행 안녕하세요. TDR입니다. 오늘은 python에서 shell scipt를 실행시킬 수 있는 3가지 방법을 간략히 알아보겠습니다. 참고로 해당 환경은 linux입니다. 1. os.system import os os.system('ls -al') 위와 같이 명령어를 실행하면 해당 명령어가 즉시 실행 됩니다. blocking 명령으로 해당 작업이 모두 끝날 때 까지 다음 명령어는 실행 되지 않습니다. 2. os.popen() import os stream = os.popen('ls -al') for line in stream: print(line) os.system과 달리 명령 결과를 stream 형태로 받을 수 있어 원하는 후처리가 가능하다는 장점이 있습니다. os.popen도 blocking 명령어 입니다.. 2024. 3. 20.
[python] for & while & print 안녕하세요. TDR입니다. 오늘은 반복문인 for문과 while문, 그리고 출력을 위한 print 메소드에 대해서 간략히 정리해 보겠습니다. 먼저 반복문인 for문과 while문을 먼저 보겠습니다. python에서는 다른 언어에는 없는 재밌는 기능이 있습니다. 바로 반복문 마지막에 else를 써서 반복문이 끝나고 나갈 때 한번 실행되는 구문입니다. some_list = ['apple', 'banana', 'orange'] for item in some_list: print(item) else: print('print all fruits') ## Result ## apple banana orange print all fruits flag = True while flag: if count >= 3: flag.. 2024. 3. 16.
[VS] Google vs Papago 안녕하세요. TDR입니다. 오늘은 어떤 영문을 번역하다 재밌는 현상이 있어서 소개 및 번역 서비스를 비교해 볼까 합니다. 번역을 시도했던 영문은 다음과 같습니다. How do they differ from each other under the hood? 해당 영문의 내용은 다음과 같습니다. 그것들은 내부적으로 서로 어떻게 다른가요? 위 문장을 파파고에서 번역한 결과 입니다. 다음은 구글에서 변역한 결과 입니다. 네, 한글로 번역하면 동일하게 "hood"를 그냥 "후드"로 변역해서 무슨 말인지 이해가 잘 안갑니다. 하지만 일어로 번역하면 결과가 달라집니다. 파파고 번역 결과 구글 번역 결과 보시다시피 구글 일본어 번역은 정확하게 번역하고 있습니다. 제가 번역에 대해서 자세히 아는 것은 아니지만, 결국 인터.. 2024. 3. 15.
[python] String(문자열) 포함 여부 확인 안녕하세요. TDR입니다. 오늘은 python에서 어떤 string에 내가 찾고자 하는 string이 포함되어 있는지 확인 방법에 대해서 간략히 정리해 볼까 합니다. 찾고자 하는 string 포함이 되어 있는가? ## 'hello'가 포함되어 있는지 확인 # in print('hello' in 'Hi and hello~') # True print('test' in 'Hi and hello~') # False # find result = 'Hi and hello~'.find('hello') print(result) # 7 result = 'Hi and hello~'.find('test') print(result) # -1 # index result = 'Hi and hello~'.index('hello').. 2024. 3. 14.
[VS] EOS vs EOE vs EOSL vs EOL 안녕하세요. TDR입니다. 오늘은 소프트웨어나 특정 프로그램에서 자주 쓰이는 "지원 종료", "서비스 중단" 등을 뜻하는 여러가지 축약어를 비교해보겠습니다. EOS End Of Sales (판매 종료) End Of Support (지원 종료) End Of Service (서비스 종료) EOE End Of Engineering (기술 지원 종료) EOSL End Of Service Life (서비스 수명 종료) EOL End Of Life (수명 종료) 참 여러가지 표현이 있지만 사실 상 "판매 종료"인 EOS를 제외하고는 모두 같은 의미로 쓰이고 있습니다. 똑같은 말은 여러가지 표현으로 쓰는 이유는 각 회사마다 공식적으로 쓰는 단어가 다르기 때문입니다. 대표적으로 MicroSoft의 경우 EOS(End .. 2024. 3. 13.
[python] Python 특징 안녕하세요. TDR입니다. 오늘은 전통적인 언어(ex. Java, C++)들과 Python 언어의 차이와 특징들을 간략히 정리해 보겠습니다. 라인 끝에 세미콜론(;), 중괄호가 없음 이거는 앞선 정리에서 수 없이 봐왔고 이미 아시겠지만 Java나 C++과 같은 언어와 달리 line의 끝을 명시하는 세미콜론(;)이나 중괄호가 없습니다. 그래서 중요한 것이 indent(들여쓰기)입니다. 이를 통해 python에서는 영역을 구분하고 있습니다. 그러다보니 위의 예시로 들었던 언어를 주로 사용하시던 분들은 익숙하지 않아 사용하기 껄끄럽다는 얘기를 많이 합니다. 개인적으로는 오해려 그렇기 떄문에 코드를 더욱 간결하게 만들고 구조에 더 집중할 수 있어서 좋아합니다. 사람마다 취향 차이는 있겠지만 코드가 너무 가로로 .. 2024. 3. 12.
[VS] Function vs Method 안녕하세요. TDR입니다. 오늘은 프로그램에서 많이 쓰는 Function(함수)와 Method(메서드)의 차이를 비교해보겠습니다. 개발을 하고 회의를 하거나 하면서 코드를 설명 할 때 function고 method라는 단어를 쓰는 경우가 많습니다. 그리고 이 때 이 2개를 딱히 구분하지 않고 쓰는 경우도 참 많은데요, 만약 이 2개가 완전히 같은 의미라면 상관 없겠으나 차이가 있다면 구분해서 쓰는게 맞다고 생각됩니다. 그래서 이 2개의 정의를 간단히 살펴 보면 다음과 같습니다. (아래 내용은 여기 저기서 정래 놓은 부분 중에 공통된 부분을 모아 정리한 것임을 밝힘니다.) Function(함수) 예전 절차 지향 프로그램을 할 때 부터 쓰이던 것으로, 어떤 입력 값을 넣으면 함수에 정의된 로직을 실행해, 동.. 2024. 3. 11.
[python] Package & Module 안녕하세요. TDR입니다. 오늘은 python에서 Package(패키지), Module(모듈), 다른 폴더의 파일 등을 import하는 방법을 간략히 정리해보겠습니다. 먼저 패키지, 모듈이 뭔지 보면 다음과 같습니다. Package(패키지) 특정 기능과 관련된 여러 모듈을 묶은 것. 패키지는 모듈에 네임스페이스를 제공. Module(모듈) 특정 기능(변수, 함수, 클래스 등)을 .py 파일 단위로 작성한 것 흔히 python을 설치하면 기본적으로 쓸 수 있는 것들을 내장 모듈이라고 부릅니다. (ex. math, sys, etc) 이러한 기능들을 쓰기 위해서는 작성 중인 코드에 가져와야 하는데, 이것들을 어떻게 가져오는지 살펴보겠습니다. ## Directory 구조 ## /root - /utils + ut.. 2024. 3. 10.
[VS] Directory vs Folder 안녕하세요. TDR입니다. 오늘은 컴퓨터에서 파일들을 저장하는 폴더 또는 디렉터리라고 부르는 것의 차이를 비교해 보겠습니다. 사실 이것들은 같은 말이고 같은 것을 지칭합니다. 그러면 왜 2가지 방법으로 부르느냐? 인데, 결론부터 말하면 다음과 같습니다. Directory(디렉터리) CUI(Charactor User Interface) 또는 CLI(Command Line Interface) 환경에서 부르는 이름 Folder(폴더) GUI(Graphical User Interface) 환경에서 부르는 이름 결국 어떤 환경이냐에 따라서 같은 것인데 부르는 이름이 다른 것 뿐입니다. 참고로 흔히 Directory의 한글 표기를 "디렉토리"라고 하는데 표준국어대사전에서는 "디렉터리"라고 쓰라고 합니다. 국립국어원.. 2024. 3. 9.
[VS] Parameter vs Argument 안녕하세요. TDR입니다. 오늘은 프로그래밍에서 많이 쓰이지만 의미를 혼동해서 쓰이는 parameter(매개변수)와 argument(인수)를 비교해 보겠습니다. 우선 각자의 정의를 봐보겠습니다. Parameter(매개변수) 변수의 특별한 한 종류로서, 함수 등과 같은 서브루틴의 인풋으로 제공되는 여러 데이터 중 하나를 가리키기 위해 사용됨 - 위키백과 참조 Argument(인수) 함수 호출 시 함수에 전달되는 값 - 나무위키 참조 서로 소통을 하다보면 파라미터, 매개변수, 아규먼트, 인자값 등등 여러가지 형태로 부르고 있는데 가장 쉽게 정리를 하면 다음과 같습니다. Parameter는 함수 정의 부분에 있는 변수, Argument는 함수 호출 시 전달하는 값 이렇게 정리하는게 개인적으로는 가장 깔끔한 것.. 2024. 3. 8.
[python] Format(f-string) 안녕하세요. TDR입니다. 오늘은 Format의 마지막인 f-string에 대해서 간략히 정리해보겠습니다. (Format Specifier & String Formatting은 아래 링크 참조) [python] Format(Format Specifier) 안녕하세요. TDR입니다. 오늘은 예전부터 꼭 정리하고 싶었던 Format, 그 중에 format specifier(서식 지정자)에 대해 간략히 정리해 보겠습니다. 참고로 Format은 총 3개의 파트로 구성될 예정입니다. 코 tdremon.tistory.com [python] Format(String Formatting) 안녕하세요. TDR입니다. 오늘은 저번 시간에 이어 Format, 그 중에서 String formatting(문자열 포맷팅)에 대해.. 2024. 3. 7.
[python] Format(String Formatting) 안녕하세요. TDR입니다. 오늘은 저번 시간에 이어 Format, 그 중에서 String formatting(문자열 포맷팅)에 대해서 간략히 정리해보겠습니다. (저번 시간에 정리한 서식 지정자) [python] Format(Format Specifier) 안녕하세요. TDR입니다. 오늘은 예전부터 꼭 정리하고 싶었던 Format, 그 중에 format specifier(서식 지정자)에 대해 간략히 정리해 보겠습니다. 참고로 Format은 총 3개의 파트로 구성될 예정입니다. 코 tdremon.tistory.com print('A B {0} D {2} F {1} H I'.format('C', 'G', 'E')) print('A B {} D {} F {} H I'.format('C', 'E', 'G')) p.. 2024. 3. 6.
[python] Format(Format Specifier) 안녕하세요. TDR입니다. 오늘은 예전부터 꼭 정리하고 싶었던 Format, 그 중에 format specifier(서식 지정자)에 대해 간략히 정리해 보겠습니다. 참고로 Format은 총 3개의 파트로 구성될 예정입니다. 코드를 구현하다보면 string type을 참 많이 쓰는데 이걸 자유롭게 해주는 아주 유용한 기능입니다. 먼저 기본적인 포맷들을 살펴 보겠습니다. print('문자열 : %s' % 'String') print('정수 : %d' % 16) print('실수 : %f' % 16.5) print('8진법 : %o' % 16) print('16진법 : %x' % 16) ## Result ## 문자열 : String 정수 : 16 실수 : 16.500000 8진법 : 20 16진법 : 10 이.. 2024. 3. 5.
[python] Generator(발생자) 안녕하세요. TDR입니다. 오늘은 python에서 generator를 어떻게 쓰는지 간략히 정리해보겠습니다. Generator를 이해하기 위해서는 저번에 했던 iterator를 이해하고 있어야 합니다. 왜냐하면 generator는 iterator를 생성해주는 함수이기 때문입니다. (아래 iterator 링크 참고) [python] Iterator(반복자) - 01 안녕하세요. TDR입니다. 오늘은 python의 Iterator(반복자)에 대해서 간략히 정리해 보겠습니다. Iterator는 python 외에도 왠만한 언어에는 모두 존재하는 개념으로 " 반복 가능한 객체로 "를 뜻합니다. tdremon.tistory.com [python] Iterator(반복자) - 02 안녕하세요. TDR입니다. 저번 시.. 2024. 3. 4.
[python] Iterator(반복자) - 02 안녕하세요. TDR입니다. 저번 시간에 이어서 iterator에 대해서 정리해보겠습니다. [python] Iterator(반복자) - 01 안녕하세요. TDR입니다. 오늘은 python의 Iterator(반복자)에 대해서 간략히 정리해 보겠습니다. Iterator는 python 외에도 왠만한 언어에는 모두 존재하는 개념으로 " 반복 가능한 객체로 "를 뜻합니다. tdremon.tistory.com iterator의 특징 중에 하나가 unpacking(언패킹)도 가능하다는 것입니다. 저번 시간에 예제로 썼던 Fruits class를 통해 확인해보겠습니다. class Fruits: fruits_list = ['apple', 'orange', 'banana', 'water melon', 'melon'] fru.. 2024. 3. 3.
[python] Iterator(반복자) - 01 안녕하세요. TDR입니다. 오늘은 python의 Iterator(반복자)에 대해서 간략히 정리해 보겠습니다. Iterator는 python 외에도 왠만한 언어에는 모두 존재하는 개념으로 " 반복 가능한 객체로 "를 뜻합니다. 대표적인 collection으로 list(array), tuple, string 등이 있습니다. 간단한 예시를 보면 다음과 같습니다. hello = 'Hello world' it = hello.__iter__() for i in range(len(hello)): print(it.__next__()) ## Result # H # e # l # l # o # # w # o # r # l # d 위의 예시와 같이 .__iter__()를 이용하여 iterator 객체를 얻을 수 있습니다. .. 2024. 3. 2.
[python] Decorator(데코레이터) - 02 안녕하세요. TDR입니다. 오늘은 저번에 이어 class를 이용한 decorator 구현법과 decorator에 변수를 할당하는 방법을 알아보겠습니다. (Decorator - 01은 아래 링크 참조) [python] Decorator(데코레이터) - 01 안녕하세요. TDR입니다. 오늘은 Decorator에 대해서 간략히 정리해 보겠습니다. 이전 포스팅에서 @classmethod, @staticmethod와 같은 표현을 보셨을 겁니다. 이게 decorator였습니다. 우선 decorator가 어떤건지 tdremon.tistory.com 이번에는 평소와는 다르게 실용적인 예시를 통해 class를 이용한 decorator & Decorator에 변수 전달하기를 같이 봐보겠습니다. import time tim.. 2024. 3. 1.
[python] Decorator(데코레이터) - 01 안녕하세요. TDR입니다. 오늘은 Decorator에 대해서 간략히 정리해 보겠습니다. 이전 포스팅에서 @classmethod, @staticmethod와 같은 표현을 보셨을 겁니다. 이게 decorator였습니다. 우선 decorator가 어떤건지 간략히 설명 드리면 다음과 같습니다. 장식자라고도 불리며, 기존 코드를 수정하지 않으면서 추가 기능을 추가할 수 있습니다. 간단한 예를 보면 다음과 같습니다. def start_end(func): def wrapper(): # 관행적으로 이 이름을 씀 print('>> ' + func.__name__ + ' Start') func() # some_function() 호출 print('>> ' + func.__name__ + ' End') return wrap.. 2024. 2. 29.
[python] Assert(어설트) 안녕하세요. TDR입니다. 오늘은 python에서의 Assert의 사용법에 대해서 간략히 정리해보겠습니다. Assert(어설트) fruits = str(input('사과는 영어로? : ')) # banana 입력 ## assert format # assert , assert fruits == 'apple', '사과 영어로 뭔지 모르세요?' ## Result # assert fruits == 'apple', '사과 영어로 뭔지 모르세요?' # ^^^^^^^^^^^^^^^^^ # AssertionError: 사과 영어로 뭔지 모르세요? 위와 같이 assert의 조건문이 False를 반환하면 AssertionError를 발생시키며 메시지를 출력하게 됩니다. AssertionError도 Exception을 상속.. 2024. 2. 28.
[python] try-except (예외처리) 안녕하세요. TDR입니다. 오늘은 python에서의 예외처리(try-except)에 대해서 간략히 정리해보겠습니다. class Custom01Exception(Exception): def __init__(self, msg): super().__init__(msg) class Custom02Exception(Exception): def __init__(self, msg): super().__init__(msg) def step_01(): try: raise Custom01Exception('Custom01Exception!') except Exception as msg: print('step01 exception : ' + str(msg)) raise def step_02(): try: step_01() .. 2024. 2. 27.
[python] class(클래스) - 03 안녕하세요. TDR입니다. 2부에 이서 클래스 상속, 추상 클래스에 대해서 간략히 정리해 보겠습니다. [python] class(클래스) - 01 안녕하세요. TDR입니다. 이번에는 python에서 class를 어떻게 선언하고 어떤 식으로 사용하는지 간략히 정리해 보겠습니다. Default format class SomeClass: # 생성자 def __init__(self): pass def set_fruits(self, fruits) tdremon.tistory.com [python] class(클래스) - 02 안녕하세요. TDR입니다. 오늘은 1부에 이어 비공개, 정적 , 클래스 메소드에 대해서 간략히 정리해 보겠습니다. [python] class(클래스) - 01 안녕하세요. TDR입니다. 이번.. 2024. 2. 26.