728x90
최근에 회사에서 코드 수정 후에 배포하였는데 오류가 떴다
로컬에서는 빌드가 잘 되어서 상당히 당황스러웠다
현재 회사 시스템 상, 운영 오류 로그 보려면 원격 서버 들어가서 로그 창 뒤져야 했기 때문,,,
근데 운영중인 시스템에 다른 로그까지 다 찍혀서 찾기도 힘들었는데 서비스 미 이용시간에 남아서 로그를 분석해본 결과 아래와 같은 로그가 떴다
클래스명.$1 어쩌고 로그가 뜨길래 뭔가 했는데

검색해보니 저 파일이 누락되었다고 한다. 그래서 봤더니 생긴지도 몰랐는데 클래스명+ $1.class 파일이 있어서 찾아보았다
코드 수정할 때 Comparator를 사용했는데,
자바 컴파일러는 익명 내부 클래스(anonymous inner class) 가 등장하면
클래스명$번호.class 형태로 별도의 파일을 자동 생성한다고 한다.
생성되는 원인을 추려보면
1) 익명 내부 클라스(Anonymous Class) 사용
2) 람다식 (Java 8+) 사용
3) Comparator, Function 등 익명 구현체 등장
등등등,,,,
여기서 나의 경우 3번에 속한다.

정렬 코드를 넣느라 이 코드를 넣었어서 $1.class 파일이 생긴 것 같다.
이 class 파일을 서버 업로드 누락시켜서 뜬 오류로 확인됐고
다시 넣고 재배포 했더니 운영에서도 잘 돌아가는 것을 확인했다.
'Coding > JAVA' 카테고리의 다른 글
| Scanner와 BufferedReader 차이 (0) | 2024.10.27 |
|---|---|
| [JAVA]StringBuilder (0) | 2024.09.18 |
| [JAVA]OCP(Open-Close Principle) 원칙 (0) | 2024.09.07 |
| [JAVA]상속과 메서드 오버라이딩(@override) (1) | 2024.09.03 |
| [JAVA] 클래스/메서드 호출 코드 리팩토링 (0) | 2024.08.23 |