본문 바로가기

All104

[Docker] Dockerfile (도커 강의 정리 #4) 비전공자도 이해할 수 있는 Docker 입문/실전 (박재성)#1. Docker 기본 개념#2. Docker 기본 CLI#3. Docker Volume#4. Dockerfile (해당 글) Dockerfile이란? 도커 이미지 생성을 위해 필요한 파일 FROM : 베이스 이미지 생성 FROM : 베이스 이미지를 생성하는 역할Docker 컨테이너를 특정 초기 이미지(베이스 이미지)를 기반으로 추가적인 세팅을 할 수 있다.# 예시FROM openjdk:17-jdkFROM node 도커파일 이미지로 빌드docker build -t my-jdk17-server {상대경로}# -t : 태그명 지정# 지정하지 않으면 latest# 상대경로 작성docker run -d my-jdk17-server이렇게 입력했을.. 2025. 4. 30.
[Tomcat] org.apache.jsp.jsp.error.error_jsp [_jspService:135] 스프링 프로젝트 진행 중 Tomcat 7 버전에서 9 버전으로 업그레이드한 이후, 서버 콘솔에 error.jsp 관련 에러 로그가 반복적으로 출력되는 현상이 발생하였다. 에러 내용ERROR 17:32:01.300 [http-nio-8123-exec-4] org.apache.jsp.jsp.error.error_jsp [_jspService:135] - error 에러 파악web.xml 파일을 확인한 결과, 설정에 나 이 명시되어 있지 않았다. Tomcat 7까지는 이러한 설정 누락에도 불구하고 서버가 처리(fallback)했기 때문에 문제가 드러나지 않았다. 그러나 Tomcat 8부터는 Servlet 스펙 준수 기준이 강화되어, 또는 이 없는 설정은 정상적으로 처리되지 않도록 변경되었다. 이로 인해.. 2025. 4. 29.
[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.