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)를 사용합니다.이 옵션은 데이터를 네트워크로 … 더 읽기

로컬의 main 브랜치 내용을 dev 브랜치에 합치고(Merge), 원격 저장소(Remote)에 올리는(Push) 방법

로컬의 main 브랜치 내용을 dev 브랜치에 합치고(Merge), 원격 저장소(Remote)에 올리는(Push) 방법

로컬의 main 브랜치 내용을 dev 브랜치에 합치고(Merge), 원격 저장소(Remote)에 올리는(Push) 순서는 다음과 같습니다. 가장 안전하고 정석적인 단계를 순서대로 정리해 드립니다. 1. 작업 순서 요약 dev 브랜치로 이동 (타겟 브랜치로 이동) dev 최신화 (원격 저장소의 dev 내용 가져오기 – 충돌 방지) main을 dev에 병합 (Merge) 원격 저장소에 업로드 (Push) 2. 상세 명령어 가이드 터미널(Git Bash, iTerm 등)에서 아래 명령어를 순서대로 입력하세요. 1단계: dev 브랜치로 이동 먼저 변경 사항을 반영받을 브랜치인 dev로 이동해야 … 더 읽기

oh-my-opencode 설치 및 사용방법

oh-my-opencode 설치 및 사용방법

oh-my-opencode는 OpenCode 위에서 동작하는 플러그인(에이전트 하네스)이라, 먼저 OpenCode가 설치·동작하는 상태여야 합니다. 1. 사전 준비 OpenCode 설치·버전 확인 opencode –version 실행 시 1.0.150 이상이면 충분합니다.​ Node.js와 bun (또는 최소 Node.js만) 준비 oh-my-opencode는 npm 패키지로 배포되고 bunx 또는 npx로 실행합니다. 2. 기본 설치 방법 터미널에서 다음 중 하나를 실행합니다. bash bunx oh-my-opencode install # bun이 없다면 npx … 더 읽기