dev 44

Github에서 사용되는 주요 라이선스 종류 및 허용, 제약 사항

오픈 소스 프로젝트를 시작하거나 기여할 때 가장 먼저 고려해야 할 것 중 하나는 라이선스(License)입니다. Github에는 수많은 프로젝트가 존재하며, 각 프로젝트는 코드 사용에 대한 권리와 의무를 규정하는 라이선스를 가지고 있습니다.라이선스를 제대로 이해하지 못하고 코드를 사용하면 법적 분쟁에 휘말릴 수 있습니다. 이 글에서는 Github에서 가장 널리 사용되는 주요 오픈 소스 라이선스들의 특징과 허용 범위, 제약 사항을 정리해 봅니다.1. MIT 라이선스 (MIT License)MIT 라이선스는 가장 단순하고 제한이 적은 라이선스 중 하나로, Github에서 가장 많이 사용되는 라이선스입니다.1-1. 특징매우 관대함: 사용자가 코드를 자유롭게 사용, 수정, 배포할 수 있으며, 상업적 이용도 가능..

dev 2025.12.12

웹 개발 필수 개념: SOP, CORS, CORP의 관계 정리

현대 웹 환경에서는 Cross-Origin 리소스 접근을 관리하기 위한 복잡한 보안 메커니즘이 존재합니다. 그 중심에는 SOP, CORS, CORP 세 가지 정책이 있습니다.특히 CDN(Content Delivery Network)을 사용하는 경우, 이 정책들을 정확히 이해하지 못하면 예측하지 못한 로드 오류(CORS/CORP 에러)에 직면하게 됩니다.1. 웹 보안의 근간: 출처(Origin)와 SOP웹 보안의 모든 논의는 출처(Origin)의 개념에서 시작됩니다.1-1. 출처(Origin)의 정의두 URL이 동일한 출처가 되기 위해서는 다음 세 가지 요소가 모두 일치해야 합니다.프로토콜 (Scheme): http 또는 https호스트 (Host): 도메인 이름 (예: example.com)포트 (Por..

dev 2025.12.09

락프리(Lock-Free) 알고리즘 이해하기

멀티스레드 프로그래밍 환경에서 동시성 제어는 성능과 직결되는 매우 중요한 문제입니다. 이번 글에서는 전통적인 락 기반 동시성 제어의 한계를 극복하기 위해 등장한 락프리(Lock-Free) 알고리즘에 대해 알아보고, 그 개념과 구현 방법, 그리고 장단점을 살펴보겠습니다.락프리 알고리즘이란?락프리(Lock-Free)는 이름 그대로 "자물쇠(Lock) 없이" 여러 스레드가 동시에 데이터를 처리하는 기술입니다.쉽게 비유하자면 회전문과 같습니다.락(Lock): 한 번에 한 명만 들어갈 수 있는 화장실입니다. 누군가 안에 있으면 밖에서 열쇠를 받을 때까지 마냥 기다려야 합니다.락프리(Lock-Free): 여러 사람이 동시에 지나갈 수 있는 회전문입니다. 가끔 문이 꽉 차서 한 바퀴 더 돌아야 할 수도 있지만, 멈추..

dev 2025.12.08

Linux vs Windows 쓰레딩 모델 비교

쓰레드는 운영체제가 프로세스 내에서 작업을 병렬로 실행하기 위해 사용하는 기본 실행 단위입니다. 리눅스와 윈도우는 이 쓰레드를 관리하고 스케줄링하는 방식에서 서로 다른 모델을 채택하고 있으며, 이러한 차이는 시스템 성능과 프로그래밍 방식에 영향을 미칩니다.🐧 리눅스 쓰레딩 모델: N:1 및 1:1 혼합 (NPTL)리눅스는 역사적으로 다양한 쓰레딩 모델을 거쳐왔으나, 현재는 NPTL(Native POSIX Thread Library)이라는 1:1 모델과 N:1 모델의 장점을 결합한 형태가 주류입니다.1. 핵심 개념: 경량 프로세스 (LWP, LightWeight Process)리눅스 커널의 관점: 리눅스 커널은 프로세스와 쓰레드를 구분하지 않고, 모두 태스크(Task) 또는 경량 프로세스(LWP)로 취급..

dev 2025.11.24

Python 유용한 생산성 라이브러리

파이썬으로 개발할 때 생산성을 크게 향상시켜주는 유용한 라이브러리들을 소개합니다.tqdm간략 설명tqdm은 "taqaddum"의 약자로, 아랍어로 "진행"을 의미합니다. 긴 작업의 진행 상황을 시각적으로 보여주는 스마트한 프로그레스 바를 쉽게 추가할 수 있게 해주는 라이브러리입니다.사용 잇점작업의 진행률을 시각적으로 확인할 수 있어 대기 시간을 예측하고 지루함을 덜 수 있습니다.반복문(loop)에 간단하게 적용할 수 있어 코드 수정이 거의 필요 없습니다.처리 속도, 남은 시간 등 유용한 정보를 함께 표시해줍니다.설치pip install tqdm간략 예제 코드import timefrom tqdm import tqdmfor i in tqdm(range(100), desc="Processing"): ti..

dev 2025.11.18

Python uv 프로젝트 구조

uv를 활용한 현대적인 Python 프로젝트 구조, src 레이아웃과 Flat 레이아웃의 차이점, 그리고 uvx를 통한 원격 도구 실행 방법을 알아봅니다.Python 프로젝트 구조의 중요성잘 구성된 프로젝트 디렉토리 구조는 코드의 유지보수성, 확장성, 그리고 협업 효율성을 크게 향상시킵니다. Python에서는 전통적으로 두 가지 주요 레이아웃이 사용됩니다: Flat 레이아웃과 src 레이아웃. 현대적인 Python 프로젝트에서는 src 레이아웃이 많은 이점을 제공하여 표준으로 자리 잡고 있습니다.일반적인 Python 프로젝트 디렉토리 구조현대적인 Python 프로젝트는 일반적으로 다음과 같은 구조를 가집니다.my-project/├── .venv/├── src/│ └── my_package/│ ..

dev 2025.07.21

정규식의 멀티라인 expressions 활용

멀티라인 표현식의 활용법, Dotall (Single Line) 모드, Multi Line 모드, Non-Dotall 모드의 차이점, 여러 줄을 처리하는 방법정규식의 멀티라인 표현식이란?정규식(Regular Expression, Regex)은 텍스트 패턴을 검색하거나 조작할 때 강력한 도구로 사용됩니다. 특히 멀티라인 표현식은 여러 줄에 걸친 텍스트를 처리할 때 유용하며, 줄바꿈(\n)을 포함한 패턴 매칭을 가능하게 합니다. 이번 포스트에서는 멀티라인 표현식의 활용법, Dotall (Single Line) 모드, Multi Line 모드, Non-Dotall 모드의 차이점, 여러 줄을 처리하는 방법, 그리고 특정 패턴(예: start로 시작하고 end로 끝나는 패턴) 매칭 방법 등을 다룹니다. 또한, /..

dev 2025.07.02

MCP-SuperAssistant 사용법

Model Context Protocol(MCP)이란?Model Context Protocol(MCP)은 AI 모델과 외부 데이터 소스 및 도구 간의 안전하고 표준화된 상호작용을 가능하게 하는 오픈 표준 프로토콜입니다. MCP는 AI가 로컬 파일, 데이터베이스, API, 또는 사용자 정의 스크립트와 동적으로 연결되도록 하여 복잡한 작업을 수행하거나 워크플로우를 자동화할 수 있도록 지원합니다. 이를 통해 AI는 단순한 텍스트 생성을 넘어 실제 작업 환경과 통합된 강력한 기능을 제공합니다.MCP-SuperAssistant란?MCP-SuperAssistant는 MCP를 활용해 AI 플랫폼(ChatGPT, Perplexity, Google Gemini, Grok 등)과 외부 데이터 및 도구를 연결하는 크롬 확장..

dev 2025.06.27

Gemini CLI의 MCP(Model Context Protocol) 지원 현황과 활용법

Gemini CLI의 MCP(Model Context Protocol) 지원 현황Model Context Protocol(MCP)이란?Model Context Protocol(MCP)은 AI 모델과 외부 데이터 소스 및 도구 간의 안전하고 표준화된 상호작용을 가능하게 하는 오픈 표준 프로토콜입니다. MCP는 AI가 로컬 파일, 데이터베이스, API, 또는 사용자 정의 스크립트와 같은 외부 시스템과 동적으로 연결되도록 하여, 복잡한 작업을 수행하거나 워크플로우를 자동화할 수 있도록 지원합니다. 이를 통해 AI는 단순한 텍스트 생성을 넘어 실제 작업 환경과 통합된 강력한 기능을 제공합니다.Gemini CLI와 MCP 지원 개요Gemini CLI는 Google의 생성형 AI 모델인 Gemini를 터미널에서 활..

dev 2025.06.27

Gemini CLI 툴 소개

Gemini CLI 툴: VSCode 플러그인과의 차이, 활용법, 실전 시나리오Gemini CLI 이란?Gemini CLI는 Google의 생성형 AI 모델인 Gemini를 터미널 환경에서 직접 사용할 수 있도록 지원하는 커맨드라인 도구입니다. 이 도구를 활용하여 코드 생성, 요약, 번역, 문서화 등 다양한 AI 기능을 명령어 한 줄로 빠르게 수행할 수 있습니다. 특히, 별도의 통합 개발 환경(IDE) 없이도 쉘 스크립트, 자동화, 지속적 통합(CI)과 같은 다양한 환경에서 AI 기능을 활용할 수 있다는 점이 큰 특징입니다. Gemini CLI는 또한 **mcp(Model Context Protocol)**를 지원하여 다양한 파일, 노트, 외부 시스템과의 연동을 가능하게 하며, 워크플로우 자동화 및 데이..

dev 2025.06.26