🏭 에러공장 2편 - cannot find symbol: class AptApiFetcher 오류 완전 정리

💥 이번 에러는 Maven 프로젝트에서 클래스가 분명히 있는데도 import가 안 된다는 미스터리한 상황입니다.
직접 javac로 컴파일할 때 자주 만나게 되는, 실전 개발자라면 100% 한 번쯤은 겪는 오류죠.


❗ 에러 메시지

CrawlerMain.java:3: error: cannot find symbol
import com.koyn.crawler.AptApiFetcher;
                       ^
  symbol:   class AptApiFetcher
  location: package com.koyn.crawler

CrawlerMain.java:10: error: cannot find symbol
         AptApiFetcher crawler = new AptApiFetcher();
         ^  
  symbol:   class AptApiFetcher
  location: class CrawlerMain

🔍 원인 분석

  • javac로 하나의 파일만 컴파일하면 import된 다른 클래스는 자동 컴파일되지 않음
  • 또한 현재 디렉토리가 package 구조와 일치하지 않으면 import 오류 발생
  • Maven은 이 문제를 자동 해결해주지만, javac는 세심하게 관리해야 함

🛠 해결 방법

✅ 1. 전체 소스 컴파일하기 (javac *.java)

javac com/koyn/crawler/*.java

또는 재귀적으로 전체 컴파일:

find . -name "*.java" > sources.txt
javac @sources.txt

➡️ 의존 클래스(AptApiFetcher 등)를 반드시 같이 컴파일해야 오류가 안 납니다.

✅ 2. package 경로와 디렉토리 일치 여부 확인

package com.koyn.crawler;

이 선언이 되어 있으면, 해당 파일은 반드시 src/com/koyn/crawler/ 경로에 있어야 하며, 컴파일도 src에서 수행해야 합니다.

✅ 3. Maven으로 전체 컴파일

Maven을 쓴다면 아래 명령어 한 줄로 해결됩니다:

mvn clean compile

➡️ Maven은 src/main/java 기준으로 전체 클래스 자동 인식 및 컴파일 진행


🧩 마무리 요약

cannot find symbol: class AptApiFetcher 부분 컴파일 또는 패키지/경로 불일치 전체 컴파일 or Maven 사용

📌 다음 글 예고

👉 에러공장 3편 - method run() 호출 오류 및 Excepton 오타 에러 해결편!

https://koynalpha-dev.tistory.com/entry/error3


🏷️ 추천 태그

javac, Java, cannot find symbol, 컴파일 오류, 클래스 인식 실패, Maven, Java 패키지, Java import, 개발자 에러, AptApiFetcher, 에러공장