분류 전체보기 102

TIL_Generator란?

Generator은 python에서 반복 가능한 객체(iterator)를 생성하는 함수이다. 일반 함수와 비슷하지만, 'return' 대신 'yield'를 사용하여 값을 생성하고 호출자에게 반환한다. def my_generator(): yield 1 yield 2 yield 3 gen = my_generator() for value in gen: print(value) 위의 Generator 함수 예제를 보면, my_generator 함수가 호출을 통해 Generator 객체를 반환하고, yield를 통해 값을 반환하고 호출자에게 제어를 양도한다. 그리고 for loop을 통해 Generator에서 값을 하나씩 가져와 출력할 수 있다. Generator 사용의 장점 메모리 효율성: 여러 값을 한 번에 메..

TIL_Closure란?

Python에서 Closure은 함수 내에서 다른 함수를 정의하고, 이 내부 함수가 외부 함수의 local variable을 기억하고 있다가 외부 함수의 실행이 끝난 후에도 그 변수에 접근할 수 있게 만드는 메커니즘이다. def outer_function(x): # 외부 함수의 지역 변수 def inner_function(y): return x + y # outer_function의 x에 접근 가능 return inner_function # inner_function을 반환 closure_instance = outer_function(10) # outer_function을 호출하여 closure_instance에 할당 result = closure_instance(5) # closure_instance를..

TIL_정적 타입(Static Typing)과 동적 타입(Dynamic Typing)

프로그래밍에서 정적 타입과 동적 타입은 변수의 타입을 결정하는 방식을 나타낸다. 정적 타입(Static Typing) 언어에서는 변수를 선언할 때 해당 변수의 타입을 명시적으로 지정해야 하지만, 동적 타입(Dynamic Typing) 언어에서는 변수의 타입을 명시적으로 지정하지 않아도 된다. 이 두 타입의 장단점에 대한 정리를 해 보았다. 정적 타입(Static Typing) 동적 타입(Dynamic Typing) 특징 변수의 데이터 타입이 compile 시간에 결정되고, runtime 동안에는 변경할 수 없음 변수의 데이터 타입이 runtime 동안 결정되고, 동적으로 변경할 수 있음 언어 종류 C, C++, Java, Swift, Kotlin Python, JavaScript, Ruby, PHP 장점..

TIL_Interpreter와 Compiler란?

Programming 언어마다 다른 방식으로 코드를 실행하게 된다. Python은 Interpreter 방식으로, C나 Java 등은 Compiler 방식으로 코드가 구동된다. 그러면 Interpreter과 Compiler은 서로 어떻게 다른 것인지 알아보았다. Interpreter Compiler 특징 runtime 이후에 script를 한 줄씩 해석하여 프로그램을 실행하는 방식 runtime 전 binary code로 프로그래밍 언어를 변환하고 프로그램을 실행하는 방식 장점 Runtime 실행 속도가 빠름 소스 코드를 직접 실행하므로 초기 실행이 빠름 Debugging 용이 행 단위로 코드를 해석하므로 실시간 debugging이 가능 플랫폼 독립적 virtual machine을 두고 해석을 하기 때문..

Python의 parameter와 argument의 차이점은?

programming에서 자주 쓰이는 parameter(매개변수)와 argument(인자)의 차이점에 대해서 정리해 보았다. 비슷하지만 다른 parameter와 argument. 함수를 정의할 때 이름 옆의 괄호 안에 들어가는 variable들이 'parameter'이고, 함수를 사용할 때 passing(넘겨주는) 해 주는 variable들이 argument이다. # 여기서 a와 b는 Parameter def sum(a, b): return a + b # 여기서 2와 5는 Argument sum(2, 5)

TIL_환경 변수(PATH)란?

백과사전에서는 환경 변수(Environment Variable)란 '프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임'이라고 설명하고 있다. 환경 변수의 종류는 역할에 따라 여러 가지가 존재하는데, 그 중 PATH에 대해 알아보았다. 환경 변수 PATH를 지정한다는 것은 좀 더 쉬운 말로 설명하면 어떤 프로그램의 경로를 변수의 값에 저장해 놓고 현재 나의 위치와 상관 없이 어디에서든 그 프로그램을 실행시킬 수 있는 방법이다. 예를 들면, Python을 설치할 때를 생각해 보자. 위와 같이 'Add Python 3.7 to PATH'라는 체크란이 보인다. 저 체크란을 선택하게 되면 현재 나의 위치와 상관없이 전역에서 Python 3.7을 실행할 수 있게 된다. 즉, 환경 변수 PAT..

TIL_가상 환경(Virtual Environments)이란?

Python을 이용한 웹 프로그램을 만들 때 가장 먼저 설치하고 실행하는 것이 바로 가상환경(venv)이다. 가상 환경(Virtual Environments)이란? 가상 환경은 독립적인 python 실행 환경을 의미한다. Python을 포함한 대부분의 언어들은 package나 module의 버전을 계속 업데이트 한다. 한 환경에서 한 버전의 패키지만 설치가 가능하기 때문에 일반적으로 프로젝트 별로 버전을 관리해야 편리하다. 각각의 가상 환경은 다른 환경에 영향을 미치지 않고 각자 다른 종류와 버전의 패키지를 갖고 있어서 독립적인 버전 관리가 가능하다. 즉, 가상 환경은 프로젝트마다 다른 버전의 라이브러리를 사용하여 각각 독립적이게 관리할 수 있도록 해주는 역할을 한다. Virtual Environment..

TIL_Python의 장점과 단점

현재 Python의 Django framework를 이용해서 웹사이트를 만들고 있고, AI library를 가져와서 사용하고 있다. 이 외에도 데이터 분석, 인공지능 분야 등 사용범위가 넓은데, 이번에는 Python의 장점과 단점에 대한 정리를 해 보았다. Python의 장점 1. Script Language compile 과정 없이 interpreter가 코드를 한 줄씩 읽어서 바로 실행하는 script 언어이다. 이 때문에 코드를 편집하고 즉각적으로 결과를 확인할 수 있고, debugging 과정에서도 빠르게 오류를 찾아낼 수 있다. 2. Dynamic Typing 변수의 자료형을 선언하지 않아도 되서 코드 작성 시간을 단축시켜준다. 변수의 type은 코드가 실행되는 시점에 결정된다. 3. Platf..

TIL_OSI(Open System Interconnection) 7 Layers in Network

AWS에 website를 배포하는 과정에서 UDP/TCP 등의 용어가 등장하여 무엇인지 찾아보다가 Networking의 7 Layers model에 대해 이해하고 넘어가야 할 것 같아서 한 번 정리를 해 보았다. OSI(Open System Interconnection) 7 Layers란? OSI 7 Layers는 인터넷을 이용하여 한 컴퓨터에서 다른 컴퓨터로 데이터를 전송하는 과정을 7단계로 나눈 것 OSI 7 Layer Moel TCP/IP Protocol 7 Layer Application Layer Application telnet FTP DHCP TFTP HTTP SMTP DNS SNMP 6 Layer Presentation Layer 5 Layer Session Layer 4 Layer Tra..

TIL_WSGI(Web Server Gateway Interface)란?

Django project를 시작할 때, 'startproject'를 사용하여 프로젝트를 생성하고 나면 아래 그림처럼 'wsgi.py' 파일이 생성된 것을 볼 수 있다. 'wsgi.py'파일이 하는 역할은 무엇일까? WSGI(Web Server Gateway Interface)는 web application server이 web server(WS)와 통신하기 위한 interface이다. API와 비슷하게 web server와 web application server 사이에서 data를 주고 받기 위한 규약이다. client - Web Server(WS) - WSGI - Web Application Server(WAS)의 관계와 역할 client가 web browser을 통해 HTTP 방식으로 WS에 re..

LIST