본문 바로가기

Programming5

[Python] "_" in Python (Underbar) Python의 Code는 PEP-8에 의거하여 작성하는 것을 권장하고 Snake_case를 기반으로 표기를 하는데 Python 내에서도 Underbar(_)는 다양한 용도로 사용한다. 다음은 용도에 대하여 분류하였다. 1. Interpreter의 마지막 값의 대용으로 사용 Python에서 연산을 마쳤을 때 Underbar는 Interpreter에서 마지막으로 출력한 값으로 사용할 수 있다. python3 >>> 1+1 2 >>> _+1 3 >>> _*3 9 2. 버리는 값 Python에서 Code를 입력할 때 버리는 값으로 Underbar를 많이 사용한다. 하지만 기능적으로 의미가 있는 것은 아니고 버리는 값이라고 명시적으로 표기해 주는 것이다. Example : one = "*" two = "**" f.. 2022. 10. 30.
[Rust] Rust란 Rust : 한국어로 "녹"이라는 뜻을 가지고 있는 러스트는 이름에 걸맞게 로고도 톱니바퀴의 모양이다. Mozilla Research에서 개발한 오픈소스 범용 프로그래밍 언어이며 안전성, 속도, 병행처리에 중점을 두고 만들어진 언어이다. Feature : 메모리 관련 오류를 발생하지 않는다. (정확히 컴파일 과정에서 오류난 곳을 감지하여 미연에 메모리 오류 발생을 방지한다.) 러스트는 Null pointer 및 초기화되지 않은 pointer가 존재하지 않도록 강제함 모든 변수는 초기값을 가지고 할당 -> 해제된 포인터 접근 시 컴파일러가 감지하여 오류 발생 속도가 매우 빠르다. (C++과 비슷한 수준의 성능을 목표로 하고 실제로 매우 빠름) Install (for MacOS/Linux) : $ curl .. 2022. 10. 23.
[Python] 생성자(__init__)와 소멸자(__del__) Definition : 생성자, 소멸자는 객체의 처음과 끝을 장식하는 호출 함수 1. 생성자(Constructor) 파이썬은 클래스(Class)를 만들고 인스턴스(Instance)가 생성이 될 때 자동으로 생성자(__init__)가 같이 생성된다. Default : class New : def __init__(self): pass 클래스 내부적으로 항상 존재하나 별도의 기능이 있는 것이 아니기에 필요에 따라 개발자가 기능을 부여할 수 있다. Example : class Example : def __init__ (self, test1, test2): print(f"{test1} is printed") print(f"{test2} is printed") # Create new instance instance.. 2022. 10. 21.
[Python] GIL(Global Interpreter Lock) 파이썬에는 GIL(Global Interpreter Lock)이라는 특수한 개념이 존재하고 있다. 위의 사진에서 보는 것처럼 프로세스를 작업할 때 CPU의 한 개 쓰레드에 객체 접근 권한과 가용 자원을 전부 할당하고 타 쓰레드에서는 접근을 하지 못하도록 Lock(Mutex)을 하는 것이다. 왜 파이썬에 GIL이 존재하는가? GIL의 존재 이유를 알아보기 앞서 파이썬의 메모리 관리 체계를 알아 볼 필요가 있다. 파이썬은 OOP 기반으로 파이썬 내에는 객체들이 존재하고 이들은 별도로 참조 횟수(Reference Count)를 저장하고 있다. 메모리에 저장된 객체를 직접 삭제하는게 아니라면 보통 참조 횟수를 이용하여 참조 횟수가 0이 되었을 때 파이썬 내부의 GC(Garbage Collector)가 메모리에 .. 2022. 10. 15.
[Python] 파이썬이란 '비단뱀'이라는 어원을 가지고 있는 파이썬은 C 언어를 기반으로 만들어진 인터프리터 방식의 고급 프로그래밍 언어(High level language)이다. * 인터프리터(Interpreter) : 프로그램을 한 단계씩 기계어로 해석하여 실행하는 방식 * 고급 프로그래밍 언어 : 인간이 이해하기 쉽게 만들어 프로그래밍하기 편리하게 만들어진 언어 Features : 직관적이고 이해도가 높아 학습에 용이 내장된 라이브러리가 많아 편리 인터프리터 방식을 기반으로 동작하여 속도가 느림 OOP(Object-oriented programming) Code : print("Hello World!") 2022. 10. 13.