Language 22

가상환경 - virtualenv 사용법

1. virtualenv 설치virtualenv는 일반적으로 pip를 사용하여 설치합니다.pip install virtualenv만약 파이썬 2를 사용하고 있다면 pip2를 사용할 수 있습니다:pip2 install virtualenv파이썬 3을 사용하고 있다면 pip3를 사용할 수 있습니다:pip3 install virtualenvpip가 시스템에 설치되어 있지 않다면 먼저 pip를 설치해야 합니다. 대부분의 최신 파이썬 버전에는 pip가 함께 제공됩니다.2. 가상 환경 생성virtualenv를 설치했다면, 이제 프로젝트를 위한 가상 환경을 생성할 수 있습니다. 일반적으로 프로젝트 폴더 안에 가상 환경을 생성하는 것이 좋습니다.먼저, 프로젝트 폴더로 이동하거나 새로 만듭니다:mkdir my_projec..

Language/Python 2025.07.25

가상환경 - venv (virtual environment) 사용법

venv (virtual environment)는 파이썬 3.3부터 표준 라이브러리에 포함된 가상 환경 생성 모듈입니다. 특정 파이썬 프로젝트를 위한 격리된 환경을 만들어, 해당 프로젝트에 필요한 파이썬 인터프리터, 라이브러리, 스크립트 등을 독립적으로 관리할 수 있게 합니다.왜 venv를 사용해야 할까요?의존성 충돌 방지: 여러 프로젝트를 진행할 때, 각 프로젝트가 서로 다른 버전의 라이브러리를 필요로 할 수 있습니다. venv를 사용하면 각 프로젝트는 자신만의 독립된 라이브러리 세트를 가지므로, 전역 파이썬 환경에 설치된 패키지와의 충돌을 피할 수 있습니다.재현성: 프로젝트의 requirements.txt 파일과 함께 가상 환경을 사용하면, 다른 개발자가 동일한 환경을 쉽게 재현할 수 있습니다.깔끔한..

Language/Python 2025.07.25

Python 가상 환경(Virtual Environment)

Python에서 가상 환경(Virtual Environment)은 파이썬 프로젝트를 위한 독립적인 실행 환경을 생성하는 데 사용되는 핵심 도구입니다. 이는 파이썬 개발에서 매우 중요하며, 프로젝트 간의 의존성 충돌을 방지하고 환경을 깔끔하게 유지하는 데 필수적입니다.1. 가상 환경이 필요한 이유파이썬 프로젝트를 진행하다 보면 다양한 라이브러리(패키지)를 사용하게 됩니다. 예를 들어, 한 프로젝트에서는 Django 3.2를 사용하고, 다른 프로젝트에서는 Django 4.0을 사용해야 할 수 있습니다. 또는 어떤 프로젝트는 requests 라이브러리 특정 버전을 필요로 하고, 다른 프로젝트는 최신 버전을 필요로 할 수 있죠.이러한 상황에서 가상 환경을 사용하지 않고 모든 라이브러리를 시스템 전역(global..

Language/Python 2025.07.22

Markdown 문법

Markdown은 텍스트 기반의 가벼운 마크업 언어로, 일반 텍스트 문서를 구조화하고 서식을 지정하는 데 사용됩니다. 배우기 쉽고 다양한 플랫폼에서 지원되어 README 파일, 문서 작성, 블로그 포스팅 등 다방면으로 활용됩니다.1. 제목 (Headings)제목은 문서의 계층 구조를 나타냅니다. # 기호를 사용하여 표현하며, #의 개수에 따라 제목의 크기가 결정됩니다.# 가장 큰 제목 (h1)## 두 번째 큰 제목 (h2)### 세 번째 큰 제목 (h3)#### 네 번째 큰 제목 (h4)##### 다섯 번째 큰 제목 (h5)###### 가장 작은 제목 (h6)또 다른 방법으로는 제목 아래에 = 또는 -를 사용하는 방식이 있습니다. 이 방식은 h1과 h2만 지원합니다.가장 큰 제목========두 번째 큰..

Language/Markdown 2025.07.21

파이썬 스레드 동기화 방법

파이썬에서 여러 스레드(Thread)가 동시에 작업을 수행할 때, 공유되는 자원에 여러 스레드가 동시에 접근하여 문제가 생기는 것을 막기 위해 동기화(Synchronization)는 필수적인 요소예요. 동기화는 데이터의 무결성을 유지하고, 경쟁 조건(Race Condition)이나 교착 상태(Deadlock)와 같은 복잡한 문제를 방지하는 데 도움을 줍니다. 파이썬 스레드 동기화 방법파이썬의 threading 모듈은 스레드 기반 병렬 처리에서 동기화를 위한 다양한 도구들을 제공합니다.1. Lock (뮤텍스 - Non-reentrant Lock)가장 기본적인 동기화 메커니즘이에요. Lock은 한 번에 오직 하나의 스레드만 특정 코드 블록(임계 구역, Critical Section)에 접근하도록 허용해요.a..

Language/Python 2025.07.10

전역 인터프리터 락 - GIL(Global Interpreter Lock)

파이썬의 GIL(Global Interpreter Lock)과 멀티 프로세싱: 자바 synchronized의 오해와 파이썬의 동시성 모델개요: 자바 synchronized 개념으로 파이썬 동시성 구현 시도와 GIL의 등장자바의 synchronized 키워드처럼 메서드나 코드 블록에 락을 걸어 여러 스레드가 안전하게 동시에 실행되도록 하는 방식을 파이썬에서는 어떻게 사용하는지 확인해보니 파이썬의 threading 모듈을 살펴보고 관련 자료를 찾아보던 중, "파이썬에는 진정한 멀티 스레딩이 없다"는 이야기와 함께 GIL(Global Interpreter Lock)이라는 용어를 접하게 되었습니다. 이 GIL이 제가 이해하고 있던 동시성 모델과는 전혀 다른 방식으로 작동한다는 사실을 알게 되었고, 왜 파이썬에서..

Language/Python 2025.07.09

Node.js 설치 후 기본적인 커맨드 라인 도구인 node와 npm

1. node 커맨드: Node.js 런타임 실행node 커맨드는 여러분이 작성한 JavaScript 코드를 직접 실행하는 데 사용됩니다. Node.js는 웹 브라우저 밖에서 JavaScript를 실행할 수 있게 해주는 런타임 환경입니다.JavaScript 파일 실행: 가장 기본적인 사용법입니다. 여러분이 작성한 .js 파일을 Node.js가 읽고 실행합니다.예를 들어, app.js 파일에 다음과 같이 작성하고 저장했다면:터미널에서 node app.js를 실행하면, 해당 JavaScript 파일이 Node.js 환경에서 구동되며 웹 서버가 시작됩니다. // app.jsconsole.log("Node.js로 실행된 첫 번째 코드입니다!");const http = require('http'); // HTTP..

Language/NodeJS 2025.07.08

package.json 스크립트에서 환경 변수(environment variables)를 설정하는 방법

Node.js 프로젝트의 package.json 스크립트에서 환경 변수(environment variables)를 설정하는 방법은 운영체제에 따라 조금씩 다릅니다. 하지만 cross-env 패키지를 사용하면 OS에 상관없이 일관된 방법으로 환경 변수를 설정할 수 있어서 가장 권장되는 방법입니다. 1. cross-env 사용 (가장 권장)cross-env는 윈도우, macOS, 리눅스 등 모든 운영체제에서 동일하게 작동하도록 환경 변수 설정을 추상화해줍니다.설치:npm install --save-dev cross-env# 또는yarn add --dev cross-env package.json 스크립트 예시:package.json 파일의 scripts 섹션에 다음과 같이 추가합니다:{ "name": "my..

Language/NodeJS 2025.07.06

NVM (Node Version Manager)

Node.js 개발 과정에서 패키지들이 특정 Node.js 버전에 강한 의존성을 갖는 경우가 자주 발생합니다. 이로 인해 개발 환경에서 현재 사용 중인 Node.js 버전을 변경해야 할 필요성이 생기곤 합니다. Node.js 개발 환경에서 여러 버전의 Node.js를 편리하게 관리할 수 있는 도구인 nvm (Node Version Manager)에 대해 설명해 드리겠습니다. nvm (Node Version Manager) 이란?nvm은 Node.js의 다양한 버전을 설치하고, 관리하며, 필요에 따라 쉽게 전환할 수 있도록 도와주는 커맨드라인 도구입니다. 개발 프로젝트마다 요구하는 Node.js 버전이 다를 수 있는데, nvm을 사용하면 이 문제를 효과적으로 해결할 수 있습니다. 예를 들어, 어떤 프로젝트..

Language/NodeJS 2025.07.05

데코레이터 (Decorator)

Python의 데코레이터(Decorator)는 기존 함수의 코드를 직접 수정하지 않고도 함수의 동작을 확장하거나 변경할 수 있도록 해주는 강력하고 유연한 기능입니다. "장식하다(decorate)"라는 단어의 의미처럼, 함수를 "장식"하여 추가적인 기능을 덧붙이는 역할을 합니다. 데코레이터의 핵심 개념데코레이터는 본질적으로 다음과 같은 특징을 가집니다:함수를 인수로 받는 함수: 데코레이터는 다른 함수를 인수로 받습니다.새로운 함수를 반환하는 함수: 데코레이터는 인수로 받은 함수를 "감싸서(wrap)" 새로운 기능을 추가한 새로운 함수를 반환합니다.구문 설탕(Syntactic Sugar): @ 기호를 사용하여 함수 정의 위에 데코레이터를 적용할 수 있는데, 이는 함수 = 데코레이터(함수)와 같은 형태의 코드..

Language/Python 2025.07.03