Hadoop(HDFS)을 Docker로 구축하고, Python(Flask)을 사용하여 HDFS에 파일을 저장, 조회, 삭제하는 CRUD API를 만드는 과정

Hadoop(HDFS)을 Docker로 구축하고, Python(Flask)을 사용하여 HDFS에 파일을 저장, 조회, 삭제하는 CRUD API를 만드는 과정

1단계: Docker로 Hadoop 설치 (docker-compose) 가장 널리 사용되는 bde2020/hadoop 이미지를 기반으로 Namenode와 Datanode만 실행하는 경량화된 구성을 사용합니다. (MapReduce/YARN은 파일 CRUD에 필수적이지 않으므로 제외했습니다.) 프로젝트 폴더를 만들고 docker-compose.yml 파일을 생성합니다. codeYaml version: “3” services: namenode: image: bde2020/hadoop-namenode:2.0.0-hadoop3.2.1-java8 container_name: namenode restart: always ports: – 9870:9870 # WebHDFS 및 UI 포트 – 9000:9000 # IPC 포트 volumes: – namenode_data:/hadoop/dfs/name environment: – CLUSTER_NAME=test – HDFS_CONF_dfs_permissions_enabled=false … 더 읽기

Node.js (Express) 와 Mongoose를 사용하여 MongoDB를 Docker로 띄우고 CRUD API를 구축

Node.js (Express) 와 Mongoose를 사용하여 MongoDB를 Docker로 띄우고 CRUD API를 구축

프로젝트 구성을 위해 Docker Compose를 사용하여 DB와 API 서버를 한 번에 관리하는 방식으로 구성하겠습니다. 📂 프로젝트 폴더 구조 먼저 폴더를 하나 만들고 아래와 같은 구조로 파일들을 생성합니다. codeText my-mongo-api/ ├── Dockerfile # Node.js 앱 이미지 빌드 설정 ├── docker-compose.yml # MongoDB와 Node 앱 오케스트레이션 ├── package.json # Node.js 의존성 파일 └── server.js # API 서버 코드 … 더 읽기

Elasticsearch를 Docker로 구축하고, **Python (FastAPI)**을 사용하여 CRUD API를 만드는 전체 과정

Elasticsearch를 Docker로 구축하고, **Python (FastAPI)**을 사용하여 CRUD API를 만드는 전체 과정

1. Elasticsearch Docker 구축 (docker-compose) 개발 및 테스트 편의를 위해 보안 설정(HTTPS, 인증)을 끄고 단일 노드(Single Node)로 구성하겠습니다. 폴더 구조: codeText es-crud-project/ ├── docker-compose.yml └── main.py docker-compose.yml 작성: codeYaml version: ‘3.8’ services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0 container_name: es-container environment: – discovery.type=single-node – xpack.security.enabled=false # 개발용: 보안 비활성화 (HTTPS/ID/PW 없이 접속) – “ES_JAVA_OPTS=-Xms512m -Xmx512m” # 메모리 제한 (로컬 … 더 읽기

Git에서 작업을 하다 보면 커밋을 잘못했거나, 실수로 원격 저장소(GitHub 등)에 푸시(Push)까지 해버린 경우가 종종 있습니다. 상황별로 가장 적절한 취소 방법

Git에서 작업을 하다 보면 커밋을 잘못했거나, 실수로 원격 저장소(GitHub 등)에 푸시(Push)까지 해버린 경우가 종종 있습니다. 상황별로 가장 적절한 취소 방법

Git에서 작업을 하다 보면 커밋을 잘못했거나, 실수로 원격 저장소(GitHub 등)에 푸시(Push)까지 해버린 경우가 종종 있습니다. 상황별로 가장 적절한 취소 방법을 정리해 드립니다. 1. Local에서 commit만 취소하고 싶을 때 (아직 Push 안 함) 가장 많이 사용하는 명령어는 git reset 입니다. 취소 후 변경 사항(코드)을 남길지 여부에 따라 옵션이 나뉩니다. 1) 코드는 살리고, Staging Area(add 상태)로 되돌리기 (추천) 방금 한 … 더 읽기

Git에서 ‘detached HEAD’ 상태

Git에서 'detached HEAD' 상태

Git에서 ‘detached HEAD’ 상태는 개발자들이 처음 마주했을 때 가장 당황스러워하는 개념 중 하나지만, 원리를 알면 매우 유용한 기능입니다. 이 상태를 이해하기 위해 HEAD, 브랜치, 커밋의 관계를 중심으로 자세히 정리해 드리겠습니다. 1. 기본 개념: HEAD란 무엇인가? HEAD는 “현재 내가 보고 있는 작업 공간”을 가리키는 **포인터(화살표)**입니다. 정상적인 상태 (Attached): 보통 HEAD는 **브랜치(Branch)**를 가리킵니다. 그리고 브랜치가 가장 최신 **커밋(Commit)**을 가리킵니다. HEAD → main → Commit ID (a1b2c) … 더 읽기

GitLab에서 사용자 비밀번호를 초기화(변경)하는 방법

GitLab에서 사용자 비밀번호를 초기화(변경)하는 방법

GitLab에서 사용자 비밀번호를 초기화(변경)하는 방법은 관리자가 변경해주는 경우와 사용자 본인이 변경하는 경우 두 가지로 나뉩니다. 상황에 맞는 메뉴 경로를 확인하세요. 1. 관리자가 특정 사용자의 비밀번호를 강제 초기화할 때 (Admin) 관리자 계정(root 등)으로 로그인한 상태여야 합니다. 메뉴 경로: Admin Area (관리자 영역) 접속 상단 메뉴 바(또는 사이드바)의 Menu > Admin (스패너 아이콘 🔧) 클릭 Overview (개요) > Users (사용자) 왼쪽 사이드바에서 Overview 선택 후 Users 클릭 사용자 선택 비밀번호를 변경할 … 더 읽기

Maven 빌드 명령어

Maven 빌드 명령어

Maven 빌드 명령어는 크게 라이프사이클(Lifecycle) 단계와 **옵션(Flags)**으로 나뉩니다. 개발할 때 가장 자주 사용하는 명령어들과 중요한 옵션들을 정리해 드릴게요. 1. 주요 라이프사이클 명령어 (순서대로 실행됨) Maven의 기본 라이프사이클은 단계적입니다. 예를 들어 mvn install을 실행하면 그 이전 단계인 compile, test, package가 모두 자동으로 실행됩니다. 명령어 설명 주요 용도 mvn clean 빌드 결과물(target 폴더)을 삭제합니다. 이전 빌드의 잔여물 때문에 발생하는 오류를 방지하기 … 더 읽기

쇼펜하우어에 대하여 정리

쇼펜하우어에 대하여 정리

아르투어 쇼펜하우어 (Arthur Schopenhauer, 1788-1860) 아르투어 쇼펜하우어는 독일의 염세주의 철학자로, “의지와 표상으로서의 세계”를 통해 독자적인 철학 체계를 구축했습니다. 그의 사상은 칸트 철학을 계승하면서도 니체, 바그너, 프로이트 등 후대 철학자와 예술가들에게 지대한 영향을 미쳤습니다. 주요 사상: 의지 (Wille): 쇼펜하우어 철학의 핵심 개념으로, 세계의 근원적 실재이자 모든 존재의 맹목적이고 비합리적인 원동력입니다. 인간을 포함한 모든 존재는 “살려는 의지(Wille … 더 읽기

Linux 및 Unix 시스템에서 파일 전송을 위해 가장 많이 사용되는 **scp**와 **rsync**의 차이점과 사용법을 정리

Linux 및 Unix 시스템에서 파일 전송을 위해 가장 많이 사용되는 **scp**와 **rsync**의 차이점과 사용법을 정리

결론부터 말씀드리면, 단순하고 빠른 1회성 전송은 scp, **대용량 파일, 백업, 반복적인 동기화 작업은 rsync**가 유리합니다. 1. SCP (Secure Copy Protocol) **scp**는 SSH(Secure Shell) 프로토콜을 기반으로 파일을 안전하게 복사하는 명령어입니다. 로컬의 cp 명령어와 사용법이 비슷합니다. 동작 방식: 소스 파일을 읽어서 대상 경로에 그대로 덮어쓰기 합니다. 장점: 사용법이 매우 간단하고 직관적입니다. 대부분의 운영체제에 기본적으로 설치되어 있습니다. 작은 파일 한두 개를 빠르게 보낼 때 편리합니다. 단점: … 더 읽기

scp 를 압축해서 보내고 받는곳에서 압축해제되는 옵션

scp 를 압축해서 보내고 받는곳에서 압축해제되는 옵션

사용자의 의도에 따라 두 가지 방법이 있습니다. 전송 구간만 압축하기 (scp -C): 파일은 그대로 두고, 전송하는 도중에만 데이터를 압축해서 속도를 높이는 방법. 묶어서 보내고 풀기 (tar + ssh): 폴더 전체를 압축 파일로 만들어 보내면서, 동시에 도착지에서 즉시 압축을 해제하는 방법. (작은 파일이 많을 때 scp -r보다 훨씬 빠름) 방법 1: 전송 구간만 압축 (scp -C) scp 자체 옵션인 -C (Compression)를 사용합니다.이 옵션은 데이터를 네트워크로 … 더 읽기