
백엔드
JavaParser
두줄요약
JavaParser로 자바 소스를 AST로 파싱하고 Visitor, SymbolSolver로 정적 분석에 활용하는 방법을 정리했습니다. 멀티 프로젝트와 Lombok 환경에서의 한계와 우회 방법도 함께 소개했습니다.
핵심 내용
- JavaParser를 사용해 자바 소스를 AST로 파싱하고, 주석 수집·Visitor 기반 노드 탐색·SymbolSolver 기반 시그니처 추론·코드 생성까지 활용하는 흐름 정리
- 정적 분석에서 메소드 호출 관계 추출, 깊이/영향도/인지적 복잡도 분석, DTO 필드 정리 같은 활용 가능성 제시
- pretty printing과 lexical preserving printing 차이, TypeSolver 종류와 사용 범위 설명
주의할 점
- SymbolSolver는 멀티 프로젝트 구조에서 타 프로젝트 소스만으로는 한계가 있어 JarTypeSolver와 Fat-JAR 구성이 필요
- Lombok getter/setter 같은 컴파일 시 생성 메소드는 JavaParserTypeSolver만으로 추론 어려움
- 분석 대상과 외부 의존성의 타입 정보 제공 방식에 따라 추론 가능 범위가 달라짐
적용해볼 점
- 소스 분석 자동화가 필요한 경우 Visitor와 SymbolSolver 조합 검토
- 외부 모듈이 많은 환경에서는 분석용 통합 JAR 준비 고려
- Lombok 사용 프로젝트는 delombok 소스 제공 방식 검토
