본문 바로가기

All102

[Docker] Docker Volume (도커 강의 정리 #3) 비전공자도 이해할 수 있는 Docker 입문/실전 (박재성)#1. Docker 기본 개념#2. Docker 기본 CLI#3. Docker Volume (해당 글) 도커 볼륨 어떨 때 왜 사용?컨테이너 삭제하면 내부에 있는 데이터도 같이 삭제된다.컨테이너 내부에 저장된 데이터가 컨테이너와 함께 삭제되지 않도록 하려면? ‘도커 볼륨’을 활용해 보자! 도커 볼륨 (Docker Volume) 이란?도커 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법.컨테이너 자체의 저장 공간을 사용하지 않고, 호스트 자체의 저장 공간을 공유해서 사용한다. 도커 볼륨 사용 방법$ docker run -v [호스트 디렉토리 절대 경로]:[컨테이너 디렉토리 절대 경로] [이미지명]:[태그명]# 예시$ docker run -e M.. 2025. 4. 23.
[Postgres] pgadmin Utility file not found. Please correct the Binary Path in the Preferences dialog 배경pgAdmin을 통해서 데이터베이스 백업하려고 했는데 에러가 발생하였다. 에러 pgadmin Utility file not found. Please correct the Binary Path in the Preferences dialog 이유pgAdmin이 필요한 실행 파일(pg_dump, pg_restore 등)의 경로를 찾지 못해서 생기는 오류. pgAdmin이 백업이나 복원 기능을 실행할 때 내부적으로 pg_dump.exe 같은 PostgreSQL 도구를 호출해야 하는데,현재 올바른 경로가 설정되어 있지 않아서 해당 유틸리티 파일을 찾지 못하는 것이다. 설정1. 설정 열기 File > Preferences 2. 경로 설정Paths > Binary paths자신의 PostgreSQL 버전에 맞는.. 2025. 4. 22.
[Spring] React 라우팅을 위한 SPA 서버 세팅 배경Spring Boot에 React 빌드 파일을 통합한 후 서버를 실행했지만, 라우팅 경로로 직접 접근할 경우 404 Not Found 오류가 발생했다. 이유React의 라우팅 문제React에서는 react-router-dom을 사용해 클라이언트 사이드에서 라우팅을 처리한다. 예를 들어, 사용자가 /login, /mypage 등으로 직접 URL 경로에 접근하면, 서버는 해당 경로에 정적 파일이 없기 때문에 404 에러를 반환한다. 하지만 SPA인 React 앱은 모든 라우팅을 클라이언트 측에서 처리해야 하므로, 서버는 모든 경로 요청을 `index.html`로 포워딩하여 React가 적절한 화면을 렌더링할 수 있도록 해야 한다. 설정@Configurationpublic class WebConfig im.. 2025. 4. 20.
[Docker] Docker 기본 CLI (도커 강의 정리 #2) 비전공자도 이해할 수 있는 Docker 입문/실전 (박재성)#1. Docker 기본 개념#2. Docker 기본 CLI (현재 !)이미지 다운로드1. 가장 최신 이미지 다운받기docker pull nginx# 이미지:latest(default)2. 특정태그 이미지 다운받기docker pull nginx:stable-alpine3.19-perl# 이미지:특정태그명 이미지 조회/삭제 3. pull 받은 이미지 목록보기docker image ls# ls : list를 뜻함# 예시REPOSITORY TAG IMAGE ID CREATED SIZEnginx latest uuid 4 days ago 193MB# REPOSITORY : 다운받은 이미지 이름# .. 2025. 4. 14.
[Spring] RestTemplate RestTemplate이란?Spring Framework에서 제공하는 동기 방식 HTTP 클라이언트 도구서버 사이의 RESTful API 통신을 간편하게 처리할 수 있다.JSON/XML 응답을 Java 객체로 매핑할 수 있다.다양한 HTTP 메서드(GET, POST, PUT, DELETE 등) 지원한다Spring Boot 2.4 이후로는 RestTemplate에는 더이상 기능이 추가되지 않는다고 하며, WebClient(비동기) 사용을 권장한다고 한다.⇒ 주로 외부 REST API와 통신할 때 사용되며, 서버 간의 데이터 송수신(요청/응답)을 Java로 쉽게 구현할 수 있습니다.기본구조RestTemplate restTemplate = new RestTemplate();String url = "https:.. 2025. 4. 9.
[Docker] Docker 기본 개념 (도커 강의 정리 #1) 나는 회사 솔루션을 Docker 이미지로 만들어 배포하고 관리해 본 경험이 있지만, 그동안 너무 아는 것만 써왔다는 생각이 들었다. 특히 누군가에게 개념을 설명하려는 순간에 나 스스로도 명확하게 개념을 모르고 있다는 걸 깨달았고, 그래서 이번에 제대로 정리해 보고자 강의를 듣기 시작했다.앞으로 정리해나갈 강의는 박재성님의 "비전공자도 이해할 수 있는 Docker 입문/실전"이다. 우선 첫 번째 정리는 Docker 기본 개념이다. Docker란?Docker는 각각의 프로그램을 분리된 환경(컨테이너)에서 실행 및 관리할 수 있게 도와주는 툴이다.쉽게 말해, 하나의 컴퓨터 안에서 여러 개의 '미니 컴퓨터 환경'을 만들어서, 그 안에서 각각 독립적으로 프로그램을 돌릴 수 있도록 해준다. 도커 컨테이너란?하나.. 2025. 4. 8.
[Spring] was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')” 에러 내용프론트에서 POST 방식으로 서버에 JSON 데이터를 전송했을 때, 아래와 같은 에러 메시지가 발생했다.was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')” 에러 파악이 에러는 서버가 JSON 데이터를 받겠다고 선언해 뒀지만, 실제로는 비어 있거나 형식이 잘못된 본문(body)이 들어왔을 때 발생한다. 주로 아래와 같은 상황에서 발생할 수 있다.1. 요청 본문이 비어 있음서버 측 컨트롤러가 @RequestBody로 JSON 데이터를 받게 되어 있을 때, 요청 본문이 비어 있으면 json 파서가 파싱 할 수 없어서 위 에러가 발생한다.2. 본문이 JSON 형식이 아님Content-Type은 app.. 2025. 4. 5.
[Git] Rebase 1. 기본 rebase 명령어git rebase rebase는 브랜치의 커밋들을 다른 브랜치의 최신 상태 위에 다시 쌓는 명령어. 쉽게 말해, 내 작업을 최신 상태 기준으로 정리해서 얹는 작업이다. git rebase 브랜치명현재 브랜치의 커밋들을 '지정한 브랜치'의 최신 커밋 뒤로 재배치한다. 주로 feature 브랜치를 최신 main 브랜치 기준으로 정리할 때 사용한다.git checkout featuregit rebase main// 실행 전main: A---B---C \feature: D---E---F// 실행 후main: A---B---C \feature: D'--E'--F' 2. 왜 re.. 2025. 3. 31.
[DEV] curl curl이란?curl은 'Client URL'의 줄임말로, 다양한 프로토콜(HTTP, HTTPS, FTP 등)을 이용해 데이터를 전송할 수 있는 커맨드라인 기반 도구이다. 주로 서버와의 통신 테스트, API 호출, 파일 다운로드 등에 사용된다. HTTP 요청을 빠르게 테스트하거나, 스크립트 안에서 네트워크 요청을 자동화해야 할 때 아주 유용하게 쓰인다. 언제 사용하면 좋을까?백엔드 API를 빠르게 테스트하고 싶을 때Postman 없이 CLI에서 바로 API 요청을 보내고 싶을 때서버 상태를 확인하고 싶을 때 (GET 요청 등)파일 업로드/다운로드를 자동화하고 싶을 때CI/CD 파이프라인에서 외부 API를 호출할 때서버의 응답 헤더 및 바디를 확인하고 싶을 때 기본 명령어curl [옵션] [URL]// 예.. 2025. 3. 30.