강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

jkyjong님의 프로필 이미지
jkyjong

작성한 질문수

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

메타 애노테이션

그럼 SOURCE나 CLASS는 어떤 경우에 사용하나요?

해결된 질문

작성

·

40

0

특히 SOURCE는 소스 코드에만 남아있는거면

주석이랑 같은거 아닌가요?

답변 2

1

안녕하세요. jkyjong님, 공식 서포터즈 y2gcoder입니다.

@Retention 의 SOURCE , CLASS 은 주로 라이브러리 들과 관련하여 작동하게 됩니다. 예를 들어

  • SOURCE: .java 파일에서만 존재하고 자바 컴파일러가 자바 파일을 .class 파일로 컴파일할 때는 사라집니다. 그래서 컴파일러 단계에서의 체크가 필요할 때나 Lombok 과 같이 컴파일러 단계에서 코드를 생성해줘야 하는 도구에서 사용하게 됩니다. 이러한 라이브러리를 개발할 때도 사용할 수 있습니다.

  • CLASS: 애노테이션이 .class 파일까지는 포함되나 런타임에서는 무시됩니다. 이는 바이트 코드 분석 도구에서 해당 애노테이션을 체크할 때 활용할 수 있습니다. Mapstruct 와 같이 객체 간 매핑 코드를 생성해주는 도구는 클래스 파일 정보를 읽기 때문에 해당 애노테이션을 활용한다고 합니다 🙂

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

jkyjong님, “SOURCE” 나 “CLASS”는 소프트웨어 개발에서 사용되는 용어로, 특정 문맥에 따라 다른 의미를 가질 수 있습니다.

  1. SOURCE:

    • 보통 소스코드라는 의미로 사용됩니다. 소스코드는 프로그램의 실행 파일을 생성하기 위한 원시 배경 프로그램입니다. 주석은 소스코드에는 작성되지만, 실제 프로그램 동작에는 영향을 미치지 않는 설명용 텍스트인 반면, 소스코드는 프로그램의 기능을 실제로 구현하는 코드입니다. 따라서 주석과 소스코드는 같은 것이라고 볼 수는 없습니다.
  2. CLASS:

    • 클래스는 객체 지향 프로그래밍에서 객체 생성의 청사진 역할을 합니다. 객체의 구조와 행동을 정의합니다. Java와 같은 언어에서 클래스를 사용하여 객체를 생성하고 프로그램의 특정한 기능을 구현할 수 있습니다.

결론적으로, “SOURCE”는 코드의 작성 및 수정의 주체이고, 주석과는 다르게 프로그램의 기능과 직접적인 관련이 있습니다. “CLASS”는 프로그램 구조의 기본 단위로, 객체 지향 설계를 하는 데 중요한 역할을 맡고 있습니다.

추가적으로 Spring Boot에서의 구체적인 예시를 필요로 하시면, 그러한 내용을 다루는 자료로 다음 문서를 추천드립니다:

궁금하신 점 있으시면 언제든지 질문해 주세요!

jkyjong님의 프로필 이미지
jkyjong

작성한 질문수

질문하기