반응형
하늘과 바람과 별과 코드
최신글
-
[go] package example.com/greet is not a main — go run 은 main 꾸러미만 실행합니다 1. 오류 설명: package example.com/greet is not a mainpackage example.com/greet is not a main packagego run 은 main 꾸러미만 실행합니다. 실행할 코드는 package main 에 두고 main() 을 둡니다.2. 오류 예시go run 이 실행을 거부합니다.고에서 실행 파일이 되는 꾸러미는 package main 하나뿐입니다. 그 안에 인자도 반환값도 없는 func main() 이 있어야 하고, 그것이 프로그램의 시작점입니다. 다른 이름의 꾸러미는 라이브러리라서 실행할 것이 없습니다.옛 판에서는 문구가 go: cannot run non-main package 였습니다. 지금은 꾸러미 이름까지 넣어 package example...
-
[docker] Cannot connect to the Docker daemon at — 도커 CLI는 있는데 데몬에 닿는 통로가 없습니다 1. 오류 설명: Cannot connect to the Docker daemon atCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?도커 CLI는 있는데 데몬에 닿는 통로가 없습니다. CLI와 데몬은 별개이고, 컨테이너 안에는 그 소켓이 없습니다.2. 오류 예시CI 작업이나 컨테이너 안에서 docker 명령이 통하지 않습니다.docker 명령은 클라이언트일 뿐입니다. 실제 일은 데몬(dockerd)이 하고, CLI 는 유닉스 소켓 /var/run/docker.sock 을 통해 그 데몬에게 부탁합니다.컨테이너 안에는 그 소켓이 없습니다. CLI 를 설치해도 마찬가지입니다 — 설치한..
-
[cpp] free double or corruption — 같은 메모리를 두 번 놓았습니다 1. 오류 설명: free double or corruptionfree(): double free detected in tcache 2 — Aborted (core dumped)같은 메모리를 두 번 놓았습니다. 대개 소유자가 둘이 된 것이고, 복사 생성자를 안 쓴 클래스가 그 출발점입니다.2. 오류 예시종료 코드 134 는 SIGABRT 입니다. glibc 가 힙이 망가진 것을 알아채고 스스로 프로그램을 끊은 것이라, 세그멘테이션 폴트(139) 와는 다른 죽음입니다.주소 검사기는 「이중 해제」가 아니라 「해제된 메모리 사용」이라고 말합니다. 더 앞을 잡은 것입니다 — 두 번째 delete[] 보다 먼저, 이미 놓은 자리를 읽는 줄이 있었습니다. freed by thread T0 here 아래가 누가 먼저..
-
[apache] 500 Internal Server Error — 브라우저의 500 화면에는 이유가 없습니다 1. 오류 설명: 500 Internal Server Error500 Internal Server Error — The server encountered an internal error or misconfiguration and was unable to complete your request.브라우저의 500 화면에는 이유가 없습니다. 이유는 언제나 오류 로그의 마지막 줄에 있고, 그 줄을 보기 전에는 고칠 것이 없습니다.2. 오류 예시어느 장을 열어도 이 화면이 나옵니다.화면에 적힌 것은 아무 정보가 없습니다. 「내부 오류 또는 설정 잘못」은 500 의 정의를 그대로 옮긴 것이라, 이 문장을 아무리 읽어도 얻을 것이 없습니다. 위 로그의 마지막 줄을 보세요 — .htaccess 의 RewriteEngi..
-
[typescript] TS2503: Cannot find namespace — `NodeJS` 는 `@types/node` 가 들여오는 1. 오류 설명: TS2503: Cannot find namespaceTS2503: Cannot find namespace 'NodeJS'.NodeJS 는 @types/node 가 들여오는 이름입니다. 깔려 있지 않거나 tsconfig 의 types 가 막고 있습니다.2. 오류 예시컴파일이 멈춥니다.NodeJS 는 우리가 만든 것이 아니라 @types/node 가 선언하는 전역 이름공간입니다. 그 안에 Timeout, ProcessEnv, ErrnoException 이 들어 있습니다.setTimeout 이 돌려주는 값의 타입이 환경마다 다릅니다.어디setTimeout 이 주는 것NodeNodeJS.Timeout (객체)브라우저number그래서 Node 쪽 타입을 적으려면 @types/node 가 있어야 ..
인기글
- [자바(java)] EOFException EOFException EOFException은 Java 개발 언어에서 발생하는 예외 상황 중 하나입니다. 이 예외는 EOF(End of File)를 만나면서 발생합니다. Java 개발 코드를 작성하고 실행하는 도중에 EOFException이 발생할 수 있습니다. EOFException이 발생하는 이유 EOFException이 발생하는 가장 흔한 이유는 개발자가 input stream을 읽는 중에 더 이상 데이터가 존재하지 않기 때문입니다. 이 때 스트림은 EOF 문자를 발견하고 이를 바탕으로 데이터가 더 이상 존재하지 않음을 감지하게 됩니다. EOFException 오류 사례 EOFException이 발생하는 가장 흔한 사례는 다음과 같습니다. 예시 1 InputStreamReader를 사용하여 텍스트.. 2023.02.16
- [apache] 414 Request-URI Too Long — 요청의 첫 줄이 LimitRequestLine 을 넘었습니다 1. 오류 설명: 414 Request-URI Too Long414 Request-URI Too Long — The requested URL's length exceeds the capacity limit for this server.요청의 첫 줄이 LimitRequestLine 을 넘었습니다. 기본값 8190 바이트에 걸렸다면 주소를 줄이는 쪽이 답입니다.2. 오류 예시주소가 긴 요청만 이 화면이 나옵니다. 짧은 주소는 멀쩡합니다.오류 로그에는 아무것도 안 남습니다. 아파치는 이것을 정상적인 거절로 여기기 때문입니다 — 접근 로그에 414 라는 숫자만 있습니다.LimitRequestLine 은 요청의 첫 줄 전체의 길이를 잽니다.GET /path?query=... HTTP/1.1└── 메서드 + 공백 .. 2026.09.30
- [cpp] /usr/bin/ld: cannot open output file — 지은 것을 내보낼 파일을 못 열었습니다 1. 오류 설명: /usr/bin/ld: cannot open output file/usr/bin/ld: cannot open output file build/app: No such file or directory — Permission denied지은 것을 내보낼 파일을 못 열었습니다. 컴파일은 다 끝났고, 남은 것은 폴더가 없거나 쓸 권한이 없다는 것뿐입니다.2. 오류 예시세 가지가 같은 문장으로 나옵니다. 콜론 뒤가 진짜 이유입니다.뒤에 붙는 말뜻No such file or directory폴더가 없다 — 파일이 아니라 그 위 폴더Permission denied그 폴더에 쓸 권한이 없다Text file busy그 파일이 지금 돌고 있다링커는 폴더를 만들어 주지 않습니다. -o build/app 은 .. 2026.09.25
- [typescript] TS2580: Cannot find name — 타입스크립트는 `require` 라는 이름을 모릅니다 1. 오류 설명: TS2580: Cannot find nameTS2580: Cannot find name 'require'. Do you need to install type definitions for node?타입스크립트는 require 라는 이름을 모릅니다. 그건 Node 가 주는 것이고, Node 의 타입 정의를 깔아야 이름이 생깁니다.2. 오류 예시컴파일이 멈춥니다.컴파일러가 답까지 적어 줍니다 — npm i --save-dev @types/node.옛 타입스크립트는 같은 상황에서 TS2304: Cannot find name 'require' 만 내놓았습니다. 지금은 require·module·process 같은 Node 전용 이름을 알아보고 TS2580 으로 바꿔 이 안내를 붙입니다. 찾아보실.. 2026.09.30
- [mysql] ERROR 2002 cant connect through socket — `-h localhost` 는 TCP 가 아니라 유닉스 소켓 1. 오류 설명: ERROR 2002 cant connect through socketERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'-h localhost 는 TCP 가 아니라 유닉스 소켓 파일을 씁니다. 그 파일이 없으면 서버가 옆에 떠 있어도 못 붙습니다.2. 오류 예시첫 줄이 답의 절반입니다 — 이 컨테이너에는 그 소켓 파일이 아예 없습니다.MySQL 클라이언트는 localhost 를 특별하게 다룹니다.-h 에 적은 것어떻게 붙나localhost유닉스 소켓 파일 (/var/run/mysqld/mysqld.sock)127.0.0.1TCPdb, 10.0.0.5TCPloca.. 2026.09.27
프로그래밍
- [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
반응형