programming 3

[고급반] Step 3. Concurrency & Parallel: 멀티태스킹의 두 얼굴 완벽 이해하기

현대 소프트웨어 개발에서 "빠른 서비스"는 필수입니다. 하지만 무작정 스레드를 늘린다고 속도가 빨라지지는 않습니다. 내 프로그램이 왜 느린지, 어떤 방식의 병렬 처리가 필요한지 명확한 개념부터 실전 적용법까지 알아봅니다.1. ❓ [Concurrency vs Parallel] 개념의 실체많은 개발자가 이 둘을 혼용하지만, 핵심은 '동시'의 의미가 물리적인가 논리적인가에 있습니다.동시성 (Concurrency): 여러 작업을 번갈아 가며 처리하여 동시에 실행되는 것처럼 보이게 하는 논리적인 개념입니다. (싱글 코어에서도 가능)병렬성 (Parallelism): 여러 작업을 실제로 동시에 물리적인 여러 코어에서 처리하는 개념입니다. (멀티 코어 필수)"동시성은 한 번에 많은 것을 다루는(Dealing) 것이고,..

개발/Python 2026.01.05

[고급반] Step 2. Advanced Function: 단순 호출을 넘어 설계의 미학으로

프로그래밍 실력이 한 단계 도약하는 지점은 함수를 '실행 도구'가 아닌 '데이터'로 다루기 시작할 때입니다. 클로저, 제너레이터, 고차 함수 등 복잡한 로직을 우아하게 만드는 고급 함수 기법들을 살펴보겠습니다.1. ❓ [Advanced Function] 개념의 실체고급 함수란 함수를 인자로 전달하거나, 함수를 반환하거나, 혹은 함수 내부의 상태를 기억하는 등의 확장된 기능을 가진 함수를 의미합니다. 이는 코드의 재사용성을 극대화하고, 메모리 효율을 높이며, 선언적인 코드 작성을 가능하게 합니다.2. 🔍 주요 원인 분석 (체크리스트)내 코드가 너무 길고 복잡하거나, 클래스를 만들기엔 과하다고 느껴진다면 아래 기법들이 필요한 신호입니다.✅ 상태 유지의 필요성: 특정 변수 값을 유지해야 하지만, 클래스(Cl..

개발/Python 2026.01.05

[ES6][중급반] Step 4. 비동기 프로그래밍 1: Promise와 콜백 지옥 탈출

1. 비동기란 무엇인가? (Blocking vs Non-blocking)자바스크립트 엔진은 한 번에 하나의 작업만 수행할 수 있습니다. 하지만 네트워크 요청이나 타이머 같은 작업은 시간이 오래 걸립니다.동기(Synchronous): 앞선 작업이 끝날 때까지 다음 작업을 멈추고 기다립니다. (화면 멈춤 현상 발생)비동기(Asynchronous): 작업을 요청한 뒤, 결과가 나오기 전이라도 다음 코드를 먼저 실행합니다.2. 콜백 지옥 (Callback Hell)Promise가 등장하기 전에는 비동기 처리를 위해 함수 안에 함수를 계속 중첩시키는 '콜백' 방식을 사용했습니다. 이는 가독성을 해치고 에러 처리를 매우 어렵게 만듭니다.JavaScript // ❌ 콜백 지옥의 예시getData(function(a)..

개발/Javascript 2025.12.24
반응형