본문 바로가기
728x90
반응형

Dev/Python14

[Python] 동시성(Concurrency)과 병렬성(Parallelism) 개요프로그래밍에서 동시성(Concurrency)과 병렬성(Parrallelism)은 시스템의 효율성과 성능을 높이는 데 필수적인 개념입니다. 두 용어는 종종 혼용되지만, 실제로는 근본적인 차이가 있습니다. 주제 개념 및 용어 정리구분동시성(Concurrency)병렬성(Parallelism)실제 단어 뜻동시 + 성 : 여러 일이 함께 진행될 수 있는 성질병렬 + 성 : 여러 일이 실제로 나란히 수행되는 성질IT 용어 개념단일 코어에서도 여러 작업을 동시에 진행되는 것처럼 보이게 처리하는 논리적인 기술(시간을 짧게 쪼개 번갈아 가며 작업)멀티 코어 환경에서 여러 작업을 진짜로 동시에 실행하는 물리적 기술(하드웨어적 다중 처리)핵심관리(Dealing) : 여러 작업을 동시에 처리하는 방법을 구조화하고 관리하는.. 2025. 10. 12.
[Python] 이벤트 루프 (Event Loop): 비동기 작업들의 실행 순서를 관리하고 제어하는 핵심 엔진 파이썬은 전통적으로 동기적인 프로그래밍 언어였지만, asyncio 모듈의 등장과 함께 이벤트 루프(Event Loop)를 핵심으로 하는 비동기 프로그래밍의 강력한 플레이어로 자기매김했습니다. Node.js의 이벤트 루프가 자바스크립트의 싱글 스레드 한계를 극복하기 위해 태어났다면, 파이썬의 이벤트 루프는 고성능 네트워크 I/O 작업을 효율적으로 처리하기 위한 해답입니다.개요 : 왜 파이썬에 이벤트 루프가 필요한가?파이썬의 이벤트 루프는 싱글 스레드 내에서 여러 코루틴(Coroutine)의 실행을 관리하여 논블로킹(Non-blocking) 방식으로 동시성(Concurrency)을 구현하는 핵심 메커니즘입니다. 일반적인 동기 파이썬 코드는 파일 읽기, 웹 요청 등 I/O 작업이 발생하면 해당 작업이 완료될 .. 2025. 10. 11.
[Python] 튜플(Tuple) & 딕셔너리(Dictionary) 개요파이썬에는 다양한 자료구조가 있습니다. 그중에서도 튜플(Tuple)과 딕셔너리(Dictionary)는 실무에서 자주 사용되는 핵심 자료형입니다. 이 둘의 특징과 활용법을 제대로 이해하고 사용하면 코드를 더 효율적으로 작성할 수 있습니다. 지금부터 튜플과 딕셔너리의 정의, 사용 이유, 그리고 실제 활용 예시까지 함께 살펴보겠습니다.튜플(Tuple)튜플의 정의튜플은 여러 개의 데이터를 순서대로 나열하는 자료형입니다. 괄호()를 사용하여 데이터를 묶습니다. 리스트와 비슷하지만, 가장 큰 차이점은 불변성(Immutable)에 있습니다. 한 번 생성된 튜플은 요소를 수정, 추가, 삭제할 수 없습니다. 튜플의 각 요소는 고유한 위치인 인덱스를 통해 접근할 수 있습니다.튜플을 사용하는 이유데이터의 안전성 보장 :.. 2025. 10. 4.
[Python] 빛과 그림자 : GIL(Global Interpreter Lock) 파헤치기 개요Python은 배우기 쉽고 강력한 언어로 많은 사랑을 받고 있지만, 때로는 성능상의 논쟁에 휩싸이기도 합니다. 그 중심에 바로 GIL(Global Interpreter Lock, 전역 인터프리터 잠금)이 있습니다. GIL은 CPython(가장 일반적인 Python 구현체)의 설계상 제약으로, 단일 프로세스 내에서 한 번에 오직 하나의 스레드만이 Python 바이트코드를 실행할 수 있도록 강제하는 메커니즘입니다. 즉 Python이 멀티코어 CPU를 효율적으로 활용하는 것을 방해하는 병목현상의 주범으로 여겨지기도 합니다. 이 글에서는 이 미스터리한 GIL의 정체, 작동 원리, 그리고 Python 개발에 미치는 영향에 대해 자세히 알아보겠습니다.GIL : 주제 개념 및 용어 정리주제 개념 : GIL(Glo.. 2025. 10. 3.
[Python] 파이썬 이터레이터와 제너레이터: 메모리를 잡아먹는 괴물 리스트 대신 현명하게 데이터 다루기 개요대용량 데이터를 다룰 때 필수적인 이터레이터와 제너레이터에 대해 쉽고 명확하게 정리해 보려고 합니다. 이 두 가지를 제대로 이해하면 코드를 더 효율적이고 간결하게 작성할 수 있습니다. 이터레이터(Iterator)란?개념 : 데이터를 순서대로 하나씩 꺼내는 장치 이터레이터(Iterator)는 반복하는 장치라는 의미 그대로, 데이터를 순서대로 하나씩 꺼낼 수 있는 객체입니다. 리스트나 튜플처럼 모든 데이터를 메모리에 한꺼번에 올려놓는 방식이 아니라 필요할 때마다 값을 하나씩 가져오는 똑똑한 객체라고 볼 수 있습니다. 핵심 용어 정리이터러블(Iterable) : for 루프에 사용할 수 있는 객체. __iter__() 메서드를 가지고 있습니다. 리스트, 튜플, 문자열 등이 대표적인 이터러블입니다. 던더(.. 2025. 9. 27.
[Python] Python 예외 처리 개요프로그래밍을 하다 보면 예상치 못한 문제에 부딪히기 마련입니다. 사용자가 잘못된 값을 입력하거나, 존재하지 않는 파일을 열려고 하는 등 다양한 상황에서 에러 또는 예외(Exception)가 발생할 수 있습니다. 이러한 예외를 제대로 처리하지 않으면 프로그램이 갑자기 멈춰버려 사용자 경험을 크게 해치게 됩니다. 이번 글에서는 파이썬을 예시로 들어, 예외가 무엇인지 알아보고 프로그램의 안정성을 높이는 예외 처리 방법에 대해 자세히 살펴보겠습니다. 예외(Exception)란 무엇인가?프로그래밍에서 예외란 프로그래밍이 실행되는 도중 발생하는 예상치 못한 문제를 말합니다. 보통 에러와 혼용해서 쓰이기도 하지만, 엄밀히 말하면 에러는 시스템 자체의 문제(메모리 부족, 하드웨어 오류 등)를 의미하고, 예외는 개.. 2025. 9. 26.
728x90
반응형