데이터 엔지니어링/기술스택 및 알쓸신잡
데이터 엔지니어링 기술 스택의 필요성을 이해하고 직접 구현하며 얻은 지식을 정리한 페이지입니다. 피드백은 언제든 환영입니다!

-
저번 포스팅에서 도커 스웜을 활용해 스파크 클러스터를 구현하는 방법을 다뤘다.하지만, 모든 개발이 그렇듯, 테스트를 거쳐야 배포도 하는 것..이번엔 스파크 클러스터에 제출하기 전에, 동작하는지 테스트하기 위한 로컬 환경을 구축하는 방법에 대해 다룰 예정이다.스파크 클러스터 구축이 궁금하신 분들은 여기...https://9unu.tistory.com/34 TODO list로컬 환경 구축 전 핵심 개념 (스파크 = 자바 프레임워크)Java 설치 및 환경변수 설정Spark 설치 및 설정필요한 커넥터 및 라이브러리 설치마무리1. 로컬 환경 구축 전 핵심 개념 (스파크 = 자바 프레임워크)사실 로컬 환경 구축이 귀찮을 뿐, 중요한 내용은 없어서 빠르게 명령어 위주로 슥슥 하고 끝낼 것이다.그전에 핵심만 좀 짚자면..
[Spark] 로컬 환경 구축하기!저번 포스팅에서 도커 스웜을 활용해 스파크 클러스터를 구현하는 방법을 다뤘다.하지만, 모든 개발이 그렇듯, 테스트를 거쳐야 배포도 하는 것..이번엔 스파크 클러스터에 제출하기 전에, 동작하는지 테스트하기 위한 로컬 환경을 구축하는 방법에 대해 다룰 예정이다.스파크 클러스터 구축이 궁금하신 분들은 여기...https://9unu.tistory.com/34 TODO list로컬 환경 구축 전 핵심 개념 (스파크 = 자바 프레임워크)Java 설치 및 환경변수 설정Spark 설치 및 설정필요한 커넥터 및 라이브러리 설치마무리1. 로컬 환경 구축 전 핵심 개념 (스파크 = 자바 프레임워크)사실 로컬 환경 구축이 귀찮을 뿐, 중요한 내용은 없어서 빠르게 명령어 위주로 슥슥 하고 끝낼 것이다.그전에 핵심만 좀 짚자면..
09:05:24 -
저번 포스팅에서 도커 스웜을 구축하는 방법에 대해 포스팅했으니,이번 포스팅에선 도커 스웜을 활용하여 스파크 클러스터를 구축하는 방법에 대해 포스팅하려한다.아직 스파크 기본 개념과 도커 스웜에 대한 포스팅을 못 본 분들은 여기..https://9unu.tistory.com/32 [Spark] 스파크...왜 쓰는걸까? (하둡부터 스파크까지)지금까지는 전체적인 데이터 파이프라인 작업을 관리하는 Airflow에 대해 알아봤으니,이번엔 작업 들 중 '분산 데이터 처리'의 대명사로 불리는 Spark에 대한 포스팅을 시작해보려한다.당연히 이번9unu.tistory.comhttps://9unu.tistory.com/33TODO list1. 도커 스웜과 스파크 클러스터의 관계 복기2. 커스텀 스파크 이미지 생성3. 스파..
[Spark] 도커 스웜으로 스파크 클러스터 구축하기!저번 포스팅에서 도커 스웜을 구축하는 방법에 대해 포스팅했으니,이번 포스팅에선 도커 스웜을 활용하여 스파크 클러스터를 구축하는 방법에 대해 포스팅하려한다.아직 스파크 기본 개념과 도커 스웜에 대한 포스팅을 못 본 분들은 여기..https://9unu.tistory.com/32 [Spark] 스파크...왜 쓰는걸까? (하둡부터 스파크까지)지금까지는 전체적인 데이터 파이프라인 작업을 관리하는 Airflow에 대해 알아봤으니,이번엔 작업 들 중 '분산 데이터 처리'의 대명사로 불리는 Spark에 대한 포스팅을 시작해보려한다.당연히 이번9unu.tistory.comhttps://9unu.tistory.com/33TODO list1. 도커 스웜과 스파크 클러스터의 관계 복기2. 커스텀 스파크 이미지 생성3. 스파..
07:37:53 -
이전 포스팅에서 스파크 기본 이론에 대해 다뤄놓고 갑자기 도커?라고 생각할 수 있다.하지만 이 글을 다 읽고 나면, 아 이래서 도커 스웜을 다뤘구나~라고 이해하게 될 것이다.아직 스파크 기본 개념에 대한 포스팅을 못 본 분들은 여기..https://9unu.tistory.com/32 TODO list도커 스웜과 도커 컴포즈의 차이도커 스웜의 개념도커 스웜 세팅법 (포트 개방 매니저 연결)도커 서비스 배포 (service create, stack 배포)마무리1. 도커 스웜과 도커 컴포즈의 차이도커 스웜 (Docker Swarm)은 이름에서도 알 수 있듯,docker = 도커 컨테이너swarm = '무리' or '집단'즉, 컨테이너 집단을 관리하는 것을 의미한다.'그럼 도커 컴포즈랑 다를게 뭐야?' 예전 포..
[Docker] 도커 스웜 = 분산 시스템 구축 도우미?이전 포스팅에서 스파크 기본 이론에 대해 다뤄놓고 갑자기 도커?라고 생각할 수 있다.하지만 이 글을 다 읽고 나면, 아 이래서 도커 스웜을 다뤘구나~라고 이해하게 될 것이다.아직 스파크 기본 개념에 대한 포스팅을 못 본 분들은 여기..https://9unu.tistory.com/32 TODO list도커 스웜과 도커 컴포즈의 차이도커 스웜의 개념도커 스웜 세팅법 (포트 개방 매니저 연결)도커 서비스 배포 (service create, stack 배포)마무리1. 도커 스웜과 도커 컴포즈의 차이도커 스웜 (Docker Swarm)은 이름에서도 알 수 있듯,docker = 도커 컨테이너swarm = '무리' or '집단'즉, 컨테이너 집단을 관리하는 것을 의미한다.'그럼 도커 컴포즈랑 다를게 뭐야?' 예전 포..
2025.05.07 -
지금까지는 전체적인 데이터 파이프라인 작업을 관리하는 Airflow에 대해 알아봤으니,이번엔 작업 들 중 '분산 데이터 처리'의 대명사로 불리는 Spark에 대한 포스팅을 시작해보려한다.당연히 이번에도 시작은 스파크가 왜 필요한지부터 이해하는 것으로 시작~!TODO List스파크는 왜 필요한가?하둡의 등장스파크의 등장스파크 핵심 이론 (파티셔닝, 맵리듀스...)마무리1. 스파크는 왜 필요한가?일단 스파크가 왜 필요한지에 대해 이해하려면 '데이터 처리 과정'부터 알아야한다.데이터 처리 과정이라고 하면, 어려울 것 같지만 기본 전제만 알면 된다. '데이터를 처리하려면, 일단 데이터를 메모리에 올려야한다.' 일전에 CS지식 포스팅하면서 잠깐 언급했지만, 컴퓨터는 기본적으로 데이터를 메모리에 올려놓고 CPU 연..
[Spark] 스파크...왜 쓰는걸까? (하둡부터 스파크까지)지금까지는 전체적인 데이터 파이프라인 작업을 관리하는 Airflow에 대해 알아봤으니,이번엔 작업 들 중 '분산 데이터 처리'의 대명사로 불리는 Spark에 대한 포스팅을 시작해보려한다.당연히 이번에도 시작은 스파크가 왜 필요한지부터 이해하는 것으로 시작~!TODO List스파크는 왜 필요한가?하둡의 등장스파크의 등장스파크 핵심 이론 (파티셔닝, 맵리듀스...)마무리1. 스파크는 왜 필요한가?일단 스파크가 왜 필요한지에 대해 이해하려면 '데이터 처리 과정'부터 알아야한다.데이터 처리 과정이라고 하면, 어려울 것 같지만 기본 전제만 알면 된다. '데이터를 처리하려면, 일단 데이터를 메모리에 올려야한다.' 일전에 CS지식 포스팅하면서 잠깐 언급했지만, 컴퓨터는 기본적으로 데이터를 메모리에 올려놓고 CPU 연..
2025.05.07 -
이 포스팅을 다루기 위해 레디스 필요성부터 구현방법까지 작성하고 돌아왔다.드디어, 예전에 포스팅했던 에어플로우 DAG 작성법에 이어 커스텀 레디스 센서에 대해 작성하고자한다.이전 포스팅이 궁긍한 분들은 여기.. [Airflow] 에어플로우 도커 컴포즈로 한방에 올리기이번엔 저번 포스팅에 이어, 실제로 에어플로우를 어떻게 구현하고, 사용하는지에 대해 알아보자! TODO list도커 컴포즈로 Airflow 올리는 이유커스텀 airflow 이미지 만들기도커 컴포즈 yaml 파일 만들9unu.tistory.com TODO ListAirflow Sensoroperator 필요성기본 레디스 센서의 작동 방식 (poke 등)커스텀 센서 구현 방법마무리1. Airflow Sensor operator 필요성기본적으로 A..
[Airflow] 커스텀 센서 구현하기! (Redis key value sensor)이 포스팅을 다루기 위해 레디스 필요성부터 구현방법까지 작성하고 돌아왔다.드디어, 예전에 포스팅했던 에어플로우 DAG 작성법에 이어 커스텀 레디스 센서에 대해 작성하고자한다.이전 포스팅이 궁긍한 분들은 여기.. [Airflow] 에어플로우 도커 컴포즈로 한방에 올리기이번엔 저번 포스팅에 이어, 실제로 에어플로우를 어떻게 구현하고, 사용하는지에 대해 알아보자! TODO list도커 컴포즈로 Airflow 올리는 이유커스텀 airflow 이미지 만들기도커 컴포즈 yaml 파일 만들9unu.tistory.com TODO ListAirflow Sensoroperator 필요성기본 레디스 센서의 작동 방식 (poke 등)커스텀 센서 구현 방법마무리1. Airflow Sensor operator 필요성기본적으로 A..
2025.05.07 -
저번 포스팅에서 레디스의 필요성에 대해 설명했으니, (아직 못본 분들은 링크..)https://9unu.tistory.com/29 [Redis] 레디스? Nosql? 인메모리? 왜 쓰는건데?직전 포스팅에서 에어플로우 DAG, operator들을 뜯어보면서 sensor 특히, RedisSensor에 대해 설명하기로 했었다.근데 그 전에, Redis가 뭔지 알아야하지 않는가?그래서 레디스가 무엇인지, 왜 사용하는지9unu.tistory.com 이번 포스팅에서는 실제로 어떻게 레디스 MQ를 구현하고, 활용하는지 설명하려한다.TODO List레디스 활용 사례레디스 셋업 (Docker)레디스 자료구조 사용법 (Python)마무리1. 레디스 활용 사례본론에 들어가기전에, 실제 활용 사례를 먼저 풀자면본인은 Redi..
[Redis] 레디스 MQ 구현 및 활용법! (Python, Docker)저번 포스팅에서 레디스의 필요성에 대해 설명했으니, (아직 못본 분들은 링크..)https://9unu.tistory.com/29 [Redis] 레디스? Nosql? 인메모리? 왜 쓰는건데?직전 포스팅에서 에어플로우 DAG, operator들을 뜯어보면서 sensor 특히, RedisSensor에 대해 설명하기로 했었다.근데 그 전에, Redis가 뭔지 알아야하지 않는가?그래서 레디스가 무엇인지, 왜 사용하는지9unu.tistory.com 이번 포스팅에서는 실제로 어떻게 레디스 MQ를 구현하고, 활용하는지 설명하려한다.TODO List레디스 활용 사례레디스 셋업 (Docker)레디스 자료구조 사용법 (Python)마무리1. 레디스 활용 사례본론에 들어가기전에, 실제 활용 사례를 먼저 풀자면본인은 Redi..
2025.05.06 -
직전 포스팅에서 에어플로우 DAG, operator들을 뜯어보면서 sensor 특히, RedisSensor에 대해 설명하기로 했었다.근데 그 전에, Redis가 뭔지 알아야하지 않는가?그래서 레디스가 무엇인지, 왜 사용하는지에 대해 먼저 포스팅하려한다.TODO List레디스의 필요성레디스 특징 (인메모리)Nosql로서 레디스 (캐싱)MQ로서 레디스직전 포스팅에서 에어플로우 DAG, operator들을 뜯어보면서 sensor 특히, RedisSensor에 대해 설명하기로 했었다.근데 그 전에, Redis가 뭔지 알아야하지 않는가?그래서 레디스가 무엇인지, 왜 사용하는지에 대해 먼저 포스팅하려한다.1. 레디스의 필요성'그래서 레디스를 왜 쓰는걸까?'간단히 답하자면 사용하기 쉽고, 빨라서이지만,(더 들어가면 ..
[Redis] 레디스? Nosql? 인메모리? 왜 쓰는건데?직전 포스팅에서 에어플로우 DAG, operator들을 뜯어보면서 sensor 특히, RedisSensor에 대해 설명하기로 했었다.근데 그 전에, Redis가 뭔지 알아야하지 않는가?그래서 레디스가 무엇인지, 왜 사용하는지에 대해 먼저 포스팅하려한다.TODO List레디스의 필요성레디스 특징 (인메모리)Nosql로서 레디스 (캐싱)MQ로서 레디스직전 포스팅에서 에어플로우 DAG, operator들을 뜯어보면서 sensor 특히, RedisSensor에 대해 설명하기로 했었다.근데 그 전에, Redis가 뭔지 알아야하지 않는가?그래서 레디스가 무엇인지, 왜 사용하는지에 대해 먼저 포스팅하려한다.1. 레디스의 필요성'그래서 레디스를 왜 쓰는걸까?'간단히 답하자면 사용하기 쉽고, 빨라서이지만,(더 들어가면 ..
2025.05.05 -
직전 포스팅에서 도커 컴포즈로 에어플로우를 일단 실행까지는 해봤으니,즉, 툴을 사용할 준비는 되었으니,이제 그 툴을 어떻게 사용할지에 대해 알아보자.직전 포스팅은 여기에서...https://9unu.tistory.com/27 [Airflow] 에어플로우 도커 컴포즈로 한방에 올리기이번엔 저번 포스팅에 이어, 실제로 에어플로우를 어떻게 구현하고, 사용하는지에 대해 알아보자! TODO list도커 컴포즈로 Airflow 올리는 이유커스텀 airflow 이미지 만들기도커 컴포즈 yaml 파일 만들9unu.tistory.comTODO listDAG 파일 구성 요소default args 파라미터DAG 파라미터Operation이란Xcom이란Task 연결 방법마무리 1. DAG 파일 구성 요소ETL작업은 무조건 DA..
[Airflow] DAG 파일 구성 요소 더 뜯어보기 (operation, task, xcom)직전 포스팅에서 도커 컴포즈로 에어플로우를 일단 실행까지는 해봤으니,즉, 툴을 사용할 준비는 되었으니,이제 그 툴을 어떻게 사용할지에 대해 알아보자.직전 포스팅은 여기에서...https://9unu.tistory.com/27 [Airflow] 에어플로우 도커 컴포즈로 한방에 올리기이번엔 저번 포스팅에 이어, 실제로 에어플로우를 어떻게 구현하고, 사용하는지에 대해 알아보자! TODO list도커 컴포즈로 Airflow 올리는 이유커스텀 airflow 이미지 만들기도커 컴포즈 yaml 파일 만들9unu.tistory.comTODO listDAG 파일 구성 요소default args 파라미터DAG 파라미터Operation이란Xcom이란Task 연결 방법마무리 1. DAG 파일 구성 요소ETL작업은 무조건 DA..
2025.05.04 -
이번엔 저번 포스팅에 이어, 실제로 에어플로우를 어떻게 구현하고, 사용하는지에 대해 알아보자! TODO list도커 컴포즈로 Airflow 올리는 이유커스텀 airflow 이미지 만들기도커 컴포즈 yaml 파일 만들기도커 컴포즈로 Airflow 올리기1. 도커 컴포즈로 Airflow 올리는 이유저번 포스팅에서 말했듯 나는 에어플로우가 도커 컴포즈에 가장 어울리는 기술 중 하나라고 생각한다.이유는 예전 도커 컴포즈 포스팅에서 말했던 도커 컴포즈의 장점인 '여러 종류의 컨테이너 한번에 올리기 및 관리하기'가 에어플로우의 3가지 컴포넌트 (웹서버, 스케줄러, DB)를 한번에 올리고 관리하기에 최적이라고 생각하기 때문이다. [Docker] 도커 컴포즈? 그냥 컨테이너 동시에 올리는거 아니야?[Docker] 도..
[Airflow] 에어플로우 도커 컴포즈로 한방에 올리기이번엔 저번 포스팅에 이어, 실제로 에어플로우를 어떻게 구현하고, 사용하는지에 대해 알아보자! TODO list도커 컴포즈로 Airflow 올리는 이유커스텀 airflow 이미지 만들기도커 컴포즈 yaml 파일 만들기도커 컴포즈로 Airflow 올리기1. 도커 컴포즈로 Airflow 올리는 이유저번 포스팅에서 말했듯 나는 에어플로우가 도커 컴포즈에 가장 어울리는 기술 중 하나라고 생각한다.이유는 예전 도커 컴포즈 포스팅에서 말했던 도커 컴포즈의 장점인 '여러 종류의 컨테이너 한번에 올리기 및 관리하기'가 에어플로우의 3가지 컴포넌트 (웹서버, 스케줄러, DB)를 한번에 올리고 관리하기에 최적이라고 생각하기 때문이다. [Docker] 도커 컴포즈? 그냥 컨테이너 동시에 올리는거 아니야?[Docker] 도..
2025.05.04 -
이번에 하나의 데이터 파이프라인을 1차 완성한 기념으로, 내가 미친듯이 트러블 슈팅하며 공부한 기술 스택들을 하나씩 정리해보려한다.시작은 에어플로우부터..레디스, 빅쿼리, 도커스웜, 스파크까지내 정체성인 '이유 있는 기술 스택 공부'로 하나씩 다룰 예정이다. 암튼, 에어플로우부터... 시작함미다....^^TODO List에어플로우의 필요성에어플로우 컴포넌트 3가지 (UI, 스케줄러, DB)에어플로우 Executor 종류Task 상태 종류1. 에어플로우의 필요성에어플로우의 필요성은 간단하다.작업이 복잡해지는걸 효율적으로 관리하기 위한 툴이다.(주로 데이터 ETL 작업 관계를 관리하는데 사용하고, 탄생된 계기도 ETL이지만, 그냥 작업간 의존성을 관리하는데에도 사용하는 것 같다.)암튼, 본인은 VM 인스턴스..
[Airflow] 에어플로우...크론잡으로 설정하면 그만 아니야?이번에 하나의 데이터 파이프라인을 1차 완성한 기념으로, 내가 미친듯이 트러블 슈팅하며 공부한 기술 스택들을 하나씩 정리해보려한다.시작은 에어플로우부터..레디스, 빅쿼리, 도커스웜, 스파크까지내 정체성인 '이유 있는 기술 스택 공부'로 하나씩 다룰 예정이다. 암튼, 에어플로우부터... 시작함미다....^^TODO List에어플로우의 필요성에어플로우 컴포넌트 3가지 (UI, 스케줄러, DB)에어플로우 Executor 종류Task 상태 종류1. 에어플로우의 필요성에어플로우의 필요성은 간단하다.작업이 복잡해지는걸 효율적으로 관리하기 위한 툴이다.(주로 데이터 ETL 작업 관계를 관리하는데 사용하고, 탄생된 계기도 ETL이지만, 그냥 작업간 의존성을 관리하는데에도 사용하는 것 같다.)암튼, 본인은 VM 인스턴스..
2025.05.04 -
이전 포스팅에서는 AWS에서 클라우드 서버로 Postgresql 서버를 만들고, 크롤러와 연동하는 내용을 다뤘었다.하지만 프리티어, 즉 무료로 사용할 수 있는 데이터베이스 용량은 매우 매우 매우 부족하다.뭐 간단한 유저 정보 관리 용으로 만든 데이터베이스라면 가능하겠다만,필자는 매일 항공권 데이터를 수집하기 때문에 이정도의 용량으로는 터무니 없이 부족했다. (기억상 20기가정도가 max였던거로 기억함)그래서 지금은 클라우드에서 VPC, 방화벽 설정해본 경험을 토대로, 직접 홈서버를 구현해 약 2테라 정도까지 사용가능한 데이터베이스 서버를 만들어서 운영중에 있다.지금부터 홈서버 구현까지의 나름대로의 가이드를 작성할 예정이니, 홈서버 구현에 관심있다면 도전해보는 것을 추천한다.(클라우드에서 2테라 데이터베이..
[PostgreSQL] 안쓰는 노트북으로 데이터베이스 서버 만들기!이전 포스팅에서는 AWS에서 클라우드 서버로 Postgresql 서버를 만들고, 크롤러와 연동하는 내용을 다뤘었다.하지만 프리티어, 즉 무료로 사용할 수 있는 데이터베이스 용량은 매우 매우 매우 부족하다.뭐 간단한 유저 정보 관리 용으로 만든 데이터베이스라면 가능하겠다만,필자는 매일 항공권 데이터를 수집하기 때문에 이정도의 용량으로는 터무니 없이 부족했다. (기억상 20기가정도가 max였던거로 기억함)그래서 지금은 클라우드에서 VPC, 방화벽 설정해본 경험을 토대로, 직접 홈서버를 구현해 약 2테라 정도까지 사용가능한 데이터베이스 서버를 만들어서 운영중에 있다.지금부터 홈서버 구현까지의 나름대로의 가이드를 작성할 예정이니, 홈서버 구현에 관심있다면 도전해보는 것을 추천한다.(클라우드에서 2테라 데이터베이..
2025.03.26 -
이번에는 잠깐 기초중에 기초 CS 지식인 CPU, RAM, SSD, HDD,더 나아가서 스왑 메모리와 스왑 메모리 설정하는 방법까지 설명하고자한다.실제로 GCP, AWS와 같은 클라우드 서비스를 사용하지 않고, 자신의 노트북, PC로만 개발을 하는 경우에는 CPU, 메모리 성능이 부족하다고 느끼기 어렵다.현대의 대부분의 대학생들, 특히 SW 전공 학부생들은 아무리 낮아도 4코어 CPU, 8기가의 메모리, 256기가 SSD가 달린 노트북을 구매하기 때문에 학부 수준의 과제, 프로젝트를 수행하는데에는 큰 무리 없이 수행되는 경우가 많다.(그나마 게임이 끊긴다고 느껴도 그냥 노트북 사양이 낮다고 생각할 뿐 CPU, 메모리 때문이라고 생각하는 일반인은 거의 없으니...)하지만 실제로 내 돈을 내고 서버를 임대하..
[CS 지식] CPU, RAM, SSD, HDD....스왑 메모리는 뭐야?이번에는 잠깐 기초중에 기초 CS 지식인 CPU, RAM, SSD, HDD,더 나아가서 스왑 메모리와 스왑 메모리 설정하는 방법까지 설명하고자한다.실제로 GCP, AWS와 같은 클라우드 서비스를 사용하지 않고, 자신의 노트북, PC로만 개발을 하는 경우에는 CPU, 메모리 성능이 부족하다고 느끼기 어렵다.현대의 대부분의 대학생들, 특히 SW 전공 학부생들은 아무리 낮아도 4코어 CPU, 8기가의 메모리, 256기가 SSD가 달린 노트북을 구매하기 때문에 학부 수준의 과제, 프로젝트를 수행하는데에는 큰 무리 없이 수행되는 경우가 많다.(그나마 게임이 끊긴다고 느껴도 그냥 노트북 사양이 낮다고 생각할 뿐 CPU, 메모리 때문이라고 생각하는 일반인은 거의 없으니...)하지만 실제로 내 돈을 내고 서버를 임대하..
2025.03.22 -
이전 포스트에서 도커 이미지를 빌드하고 실행(컨테이너화)하는 방법에 대해 알아보았다.이번에 설명할 도커 기능은 도커 컴포즈이다.이전과 마찬가지로 도커 컴포즈에 대해 공부하기 전에, 먼저 왜 필요한지를 이해해보자.TODO List도커 컴포즈 필요성도커 컴포즈 파일 작성법 (docker_compose.yml)도커 컴포즈 관련 명령어1. Docker Compose 필요성Docker compose의 필요성을 설명하기 위해서는 이전 포스팅에 언급했던"VM 활용 가상화와 컨테이너 활용 가상화의 차이"를 다시 되돌아볼 필요가 있다.VM은 각각의 하이퍼바이저 (OS빌드를 위한 기초)위에 각각의 OS를 올리고, 그 위에 앱을 실행하고컨테이너는 동일한 호스트 머신의 OS를 공유하면서 여러개의 컨테이너를 각각의 목적에 맞춰..
[Docker] 도커 컴포즈? 그냥 컨테이너 동시에 올리는거 아니야?이전 포스트에서 도커 이미지를 빌드하고 실행(컨테이너화)하는 방법에 대해 알아보았다.이번에 설명할 도커 기능은 도커 컴포즈이다.이전과 마찬가지로 도커 컴포즈에 대해 공부하기 전에, 먼저 왜 필요한지를 이해해보자.TODO List도커 컴포즈 필요성도커 컴포즈 파일 작성법 (docker_compose.yml)도커 컴포즈 관련 명령어1. Docker Compose 필요성Docker compose의 필요성을 설명하기 위해서는 이전 포스팅에 언급했던"VM 활용 가상화와 컨테이너 활용 가상화의 차이"를 다시 되돌아볼 필요가 있다.VM은 각각의 하이퍼바이저 (OS빌드를 위한 기초)위에 각각의 OS를 올리고, 그 위에 앱을 실행하고컨테이너는 동일한 호스트 머신의 OS를 공유하면서 여러개의 컨테이너를 각각의 목적에 맞춰..
2025.03.21 -
도커는 학부 시절 수강했던 마이크로서비스 프로그래밍 과목에서 맨 처음 접했던 기술 스택이다.수업에서는 '도커 컨테이너 두개를 올리고, 두 컨테이너간 무언가를 주고 받는 프로그램'을 만드는 것이 과제였고, 나는 A 컨테이너에서 검색할 제품을 넘기면, B컨테이너에서 해당 제품의 정보를 쿠팡 웹사이트에서 크롤링하여 CSV파일로 반환해주는 프로그램을 구현했다.처음 과제를 완성했을 때는 오 그냥 좀 신기하네..? 정도였는데,이후에 개인 프로젝트에서 개발한 서비스를 배포하면서 도커의 참맛을 깨달았다.Nginx와 Django 이미지를 도커 컴포즈로 빌드하기만하면 서비스가 돌아가고, 수정이 필요할때는 도커 허브에서 이미지를 pull 받아서 재빌드하기만 하면 끝인... 콘다 가상환경을 넘어선 완벽 분리된 가상화...깃허..
[Docker] 도커 이미지 빌드하기!도커는 학부 시절 수강했던 마이크로서비스 프로그래밍 과목에서 맨 처음 접했던 기술 스택이다.수업에서는 '도커 컨테이너 두개를 올리고, 두 컨테이너간 무언가를 주고 받는 프로그램'을 만드는 것이 과제였고, 나는 A 컨테이너에서 검색할 제품을 넘기면, B컨테이너에서 해당 제품의 정보를 쿠팡 웹사이트에서 크롤링하여 CSV파일로 반환해주는 프로그램을 구현했다.처음 과제를 완성했을 때는 오 그냥 좀 신기하네..? 정도였는데,이후에 개인 프로젝트에서 개발한 서비스를 배포하면서 도커의 참맛을 깨달았다.Nginx와 Django 이미지를 도커 컴포즈로 빌드하기만하면 서비스가 돌아가고, 수정이 필요할때는 도커 허브에서 이미지를 pull 받아서 재빌드하기만 하면 끝인... 콘다 가상환경을 넘어선 완벽 분리된 가상화...깃허..
2025.03.20 -
실무...하면 대표적인 키워드 병렬처리... 특히 빅데이터가 핫해진 이유로 꼽히는 하둡도, 분산 처리 플랫폼... 결국 핵심은'백지장도 맞들면 낫다'이다. 한 사람이 1시간 걸리는 작업을두 사람이 하면 30분만에 끝낼 수 있다는 것즉, 소요 시간이 줄어든다는 것이다.그럼 무조건 병렬처리하면 좋은거 아닌가?이건 명백히 틀렸다.본인은 학부생시절 CPU, RAM 빵빵한 노트북, 데스크탑에서 개발을 진행할 때는 별 생각 없이 병렬처리로 코드를 구현했다.하지만 GCP, AWS와 같은 클라우드 서비스에서 1~2코어에 2기가 램을 가진 가상 머신에서 프로그램을 돌리면서병렬 처리의 Trade-off를 뼈저리게 깨달았다. 본론으로 돌아와서, 앞에서 말했듯 병렬처리는 기본적으로 '일하는 사람을 늘려서 소요 시간을 줄인다'..
[MultiThread, MultiProcess] 병렬처리...왜 필요할까?실무...하면 대표적인 키워드 병렬처리... 특히 빅데이터가 핫해진 이유로 꼽히는 하둡도, 분산 처리 플랫폼... 결국 핵심은'백지장도 맞들면 낫다'이다. 한 사람이 1시간 걸리는 작업을두 사람이 하면 30분만에 끝낼 수 있다는 것즉, 소요 시간이 줄어든다는 것이다.그럼 무조건 병렬처리하면 좋은거 아닌가?이건 명백히 틀렸다.본인은 학부생시절 CPU, RAM 빵빵한 노트북, 데스크탑에서 개발을 진행할 때는 별 생각 없이 병렬처리로 코드를 구현했다.하지만 GCP, AWS와 같은 클라우드 서비스에서 1~2코어에 2기가 램을 가진 가상 머신에서 프로그램을 돌리면서병렬 처리의 Trade-off를 뼈저리게 깨달았다. 본론으로 돌아와서, 앞에서 말했듯 병렬처리는 기본적으로 '일하는 사람을 늘려서 소요 시간을 줄인다'..
2025.02.19