반응형
하늘과 바람과 별과 코드
최신글
-
[docker] Conflict. The container name is already in — 멈춘 컨테이너도 이름을 계속 갖고 있습니다 1. 오류 설명: Conflict. The container name is already inConflict. The container name is already in use by container멈춘 컨테이너도 이름을 계속 갖고 있습니다. 멈추는 것과 지우는 것은 다릅니다.2. 오류 예시같은 이름으로 컨테이너를 다시 띄우려는데 막힙니다.로그 가운데 줄이 원인을 그대로 보여 줍니다 — 멈춘 뒤에도 jn-demo-1 Exited (137) 로 여전히 목록에 있습니다.컨테이너를 멈추는 것과 지우는 것은 다른 일입니다. docker stop 은 안의 프로세스를 끝낼 뿐, 컨테이너 자체는 Exited 상태로 남습니다. 이름·설정· 파일시스템 변경분을 그대로 갖고 있고, 이름은 한 호스트에서 하나뿐이므로 다음 ..
-
[cpp] error: expected — 문장이 안 끝났습니다 1. 오류 설명: error: expectederror: expected ';' after class definition문장이 안 끝났습니다. 클래스·구조체·enum 정의 끝의 세미콜론이 가장 흔한 자리입니다.2. 오류 예시In file included from 이 앞에 붙으면 잘못은 그 헤더에 있습니다. 고치는 파일은 main.cpp 가 아니라 box.h 입니다.GCC 14 는 넣어야 할 글자까지 캐럿 아래에 그려 줍니다.C++ 에서 정의를 세미콜론으로 끝내는 것은 셋입니다.class Box { ... }; // ← 필요struct Point { ... }; // ← 필요enum class Color { ... }; // ← 필요void f() { ... } // ←..
-
[apache] ERROR: Site site does not exist! — a2ensite 는 sites-available 안의 파일만 1. 오류 설명: ERROR: Site site does not exist!ERROR: Site site does not exist!a2ensite 는 sites-available 안의 파일만 켤 수 있습니다. 그 자리에 파일이 없거나, 이름 뒤에 .conf 가 빠진 것입니다.2. 오류 예시가상 호스트를 켜려는데 이렇게 나옵니다.a2ensite 는 데비안·우분투에만 있는 작은 셸 스크립트입니다. 하는 일은 하나 뿐입니다 — sites-available/이름.conf 를 sites-enabled/ 에 심볼릭 링크로 걸어 주는 것./etc/apache2/sites-available/site.conf — 여기에 파일을 둔다/etc/apache2/sites-enabled/site.conf → — a2ensite..
-
[typescript] TS17004: Cannot use JSX unless the — `
` 같은 표시를 쓰려면 tsconfig 에 `jsx`
1. 오류 설명: TS17004: Cannot use JSX unless theTS17004: Cannot use JSX unless the '--jsx' flag is provided. 같은 표시를 쓰려면 tsconfig 에 jsx 를 적어야 합니다. 안 적으면 타입스크립트가 그것을 부등호로 읽습니다.2. 오류 예시컴파일이 멈춥니다.app.tsx(2,10) 은 return 의 자리입니다.JSX 는 자바스크립트 문법이 아닙니다. 타입스크립트가 알아보고 바꿔 주는 덤이고, 그 기능은 기본으로 꺼져 있습니다.tsconfig 의 jsx 항목이 그 스위치이면서 무엇으로 바꿀지까지 정합니다.값무엇이 나오나언제 쓰나react-jsxreact/jsx-runtime 을 부르는 코드리액트 17 이상 — 요즘 기본re.. -
[redis] Could not connect to Redis at — 그 주소의 그 포트에서 아무도 듣고 있지 않습니다 1. 오류 설명: Could not connect to Redis atCould not connect to Redis at 127.0.0.1:6379: Connection refused그 주소의 그 포트에서 아무도 듣고 있지 않습니다. 도커·컴포즈에서는 대개 127.0.0.1 을 그대로 쓴 것이 원인입니다.2. 오류 예시레디스에 붙지 못하고 연결이 거부됩니다.「연결 거부」는 거기까지는 갔는데 아무도 안 받았다는 뜻입니다. 방화벽이 말없이 버리면 이 문구가 아니라 시간 초과가 납니다. 즉 주소는 닿았고, 그 포트에 듣는 프로그램이 없는 것입니다.압도적으로 흔한 원인은 127.0.0.1 을 그대로 쓴 것입니다.컨테이너 안에서 127.0.0.1 은 그 컨테이너 자신입니다. 애플리케이션 컨테이너와 레디스 컨테이..
인기글
- [자바(java)] EOFException EOFException EOFException은 Java 개발 언어에서 발생하는 예외 상황 중 하나입니다. 이 예외는 EOF(End of File)를 만나면서 발생합니다. Java 개발 코드를 작성하고 실행하는 도중에 EOFException이 발생할 수 있습니다. EOFException이 발생하는 이유 EOFException이 발생하는 가장 흔한 이유는 개발자가 input stream을 읽는 중에 더 이상 데이터가 존재하지 않기 때문입니다. 이 때 스트림은 EOF 문자를 발견하고 이를 바탕으로 데이터가 더 이상 존재하지 않음을 감지하게 됩니다. EOFException 오류 사례 EOFException이 발생하는 가장 흔한 사례는 다음과 같습니다. 예시 1 InputStreamReader를 사용하여 텍스트.. 2023.02.16
- [파이썬(python)] PermissionError: 파이썬에서 권한 오류 PermissionError는 파이썬에서 파일이나 디렉토리에 접근할 권한이 없을 때 발생하는 오류입니다. 이 오류는 운영체제에서 파일 또는 디렉토리에 대한 접근 권한을 관리하는 경우에 발생합니다. 예시 # example.txt 파일을 읽기 모드로 열려고 할 때 with open("example.txt", "r") as file: contents = file.read() # Output: PermissionError: [Errno 13] Permission denied: 'example.txt' 해결방법 파일 또는 디렉토리의 권한을 변경하는 방법 # 파일의 권한을 읽기/쓰기 권한으로 변경 import os os.chmod("example.txt", 0o777) 관리자 권한으로 코드를 실행하는 방법 # Wi.. 2023.02.10
- [nginx] 499 client closed request — 클라이언트가 응답을 기다리지 않고 끊었습니다 1. 오류 설명: 499 client closed request499 — 클라이언트가 응답을 다 받기 전에 끊었다클라이언트가 응답을 기다리지 않고 끊었습니다. 서버 잘못이 아닐 수도, 상류가 느리다는 신호일 수도 있습니다.2. 오류 예시접근 로그에만 남습니다. 오류 로그에는 아무것도 안 적힙니다 — nginx 는 이것을 오류로 보지 않습니다.[access] status=499 time=2.004 GET / HTTP/1.1time=2.004 가 중요합니다. 클라이언트가 2초에 포기했고, 그때 상류는 아직 답을 안 준 상태였습니다.499 는 nginx 가 만든 코드입니다. 표준 HTTP 상태 코드가 아닙니다. 「응답을 다 만들기 전에 클라이언트가 끊었다」는 뜻이고, 클라이언트에게는 아무것도 안 나갑니다 — .. 2026.09.27
- [자바(java)] UnsatisfiedLinkError Java의 UnsatisfiedLinkError Java의 UnsatisfiedLinkError는 실행 시 발생하는 오류로, 라이브러리를 찾지 못하거나 로딩하는 중에 문제가 발생하는 경우 생기는 오류다. 이 오류는 자바 프로그램을 실행할 때 발생하며, 라이브러리를 찾지 못하거나 로딩하는 중에 문제가 발생하는 경우 생기게 된다. UnsatisfiedLinkError의 예시 UnsatisfiedLinkError의 예시는 다음과 같다. java.lang.UnsatisfiedLinkError: /lib/libhello.so: libhello.so (libhello.so: cannot open shared object file: No such file or directory)위 오류는 다음과 같이 설명할 수 있다.. 2023.03.04
- [nginx] connect 502 bad gateway connection refused — nginx는 뒷단 주소를 찾았지만 그 포트에서 거절당했습니다 1. 오류 설명: connect 502 bad gateway connection refusedconnect() failed (111: Connection refused) while connecting to upstreamnginx는 뒷단 주소를 찾았지만 그 포트에서 거절당했습니다. 이름은 맞고 듣고 있는 것이 없습니다.2. 오류 예시nginx 는 잘 떠 있는데 요청마다 502 가 돌아옵니다.에러 로그의 upstream: 부분을 봐야 합니다. http://172.18.0.2:3000/ — 이름이 주소로 풀렸습니다. DNS 는 문제가 아닙니다. 그 주소의 3000 번을 두드렸더니 거절당한 것입니다.111 은 ECONNREFUSED 의 번호입니다. 「그 포트에서 아무도 듣고 있지 않다」는 운영체제의 대답입니다.. 2026.10.03
프로그래밍
- [Spring] Failed to configure a DataSource — 드라이버가 없을 때 1. 오류 설명: Failed to configure a DataSource스프링 부트를 띄우자마자 이 메시지를 만나는 경우가 있습니다.Failed to configure a DataSource: 'url' attribute is not specified andno embedded datasource could be configured.Reason: Failed to determine a suitable driver classDB 스타터는 들어 있는데 접속 정보나 드라이버가 없을 때 발생합니다. 스프링 부트가 자동 설정으로 DataSource 빈을 만들려 했지만, 어떤 DB에 어떻게 붙을지 알 수 없어 포기한 것입니다.원인은 셋 중 하나입니다.JDBC 드라이버가 클래스패스에 없다 — 의존성 누락sprin.. 2026.09.12
- [Spring] 404를 직접 처리하기 — NoHandlerFoundException은 이제 안 잡힌다 1. 오류 설명: 매핑되지 않은 경로REST API를 만들면 없는 경로에 대한 404 응답을 직접 만들고 싶어집니다. 기본 응답이 이렇게 밋밋하기 때문입니다.{"timestamp":"...","status":404,"error":"Not Found","path":"/nowhere"}검색하면 거의 모든 자료가 같은 방법을 안내합니다.spring.mvc.throw-exception-if-no-handler-found=truespring.web.resources.add-mappings=false@ExceptionHandler(NoHandlerFoundException.class)public ResponseEntity handle(NoHandlerFoundException e) { ... }Spring Boot.. 2026.09.11
- [Spring] LazyInitializationException — could not initialize proxy: no Session 1. 오류 설명: LazyInitializationExceptionorg.hibernate.LazyInitializationException: could not initialize proxy - no Session은 지연 로딩으로 설정된 연관 데이터를, 영속성 컨텍스트가 닫힌 뒤에 꺼내려 할 때 발생합니다.JPA는 연관 엔티티를 기본적으로 바로 가져오지 않습니다. 대신 껍데기(프록시)만 넣어두고, 실제로 그 값을 쓰는 순간 DB에 다시 물어봅니다. 그런데 그 시점에 세션(영속성 컨텍스트)이 이미 닫혀 있으면 물어볼 곳이 없어 이 예외가 납니다.기본 페치 전략을 알아두면 어디서 터질지 예측할 수 있습니다.연관관계기본 페치 전략@OneToManyLAZY@ManyToManyLAZY@ManyToOneEAGER@.. 2026.09.10
- [Spring] BeanCreationException — Could not resolve placeholder 1. 오류 설명: BeanCreationExceptionBeanCreationException은 빈을 만드는 도중 실패했을 때 발생하는 포괄적인 예외입니다. "빈 생성에 실패했다"만 알려주므로, 원인은 항상 Caused by 아래에 있습니다.이 글에서는 그중 가장 흔한 원인인 @Value로 주입하려는 설정 키가 없는 경우를 다룹니다.BeanCreationException ← 빈을 못 만들었다 (결과) └ IllegalArgumentException ← 왜? (원인) Could not resolve placeholder주입 관련 오류와 구분하면 이렇습니다.예외상황NoSuchBeanDefinitionException주입할 빈이 없음NoUni.. 2026.09.09
- [Spring] HttpMessageNotReadableException — JSON 파싱 실패와 405 1. 오류 설명: HttpMessageNotReadableExceptionHttpMessageNotReadableException은 요청 본문을 객체로 변환하지 못했을 때 발생합니다. @RequestBody가 붙은 파라미터에 JSON을 매핑하는 단계에서 실패한 것입니다.여기서 중요한 구분이 하나 있습니다. 이 예외는 검증(@Valid)보다 앞 단계에서 납니다.요청 도착 ↓① JSON → 객체 변환 ← 실패하면 HttpMessageNotReadableException ↓② 검증 (@Valid) ← 실패하면 MethodArgumentNotValidException ↓③ 컨트롤러 실행객체로 만들지도 못했으니 검증은 시작조차 못 합니다. @Valid를 아무리 잘 걸어도 이 오류.. 2026.09.07
반응형