Java 의문점 정리 2 — @ 기호와 주석

2025. 11. 12. 18:00Frontend

우테코 8기 2주 차 Java 미션을 하면서
JavaScript와 다른 점과 의문점을 정리해 봤다.

 

1. @ 이란?

Annotation으로 어노테이션 선언 기호로 사용한다.

 

2. Annotation 이란?

어노테이션은 코드 실행에 영향을 주지 않고,
추가적인 정보를 컴파일러나 도구에 제공하는 역할이다.

java.lang.annotation 패키지는
어노테이션을 정의하거나 그 동작 방식을 지정하기 위한
메타 어노테이션(@Target, @Retention 등)을 제공한다.

 

3. Nest @와 동일한 기능인지?

서로 다르다.

Java는 @ 기호를 어노테이션으로 부르며 메타 데이터를 제공하는 역할이고
NestJS는 데코레이터(Decorator)로 부르며 함수를 실행하는 역할이다.

데코레이터는 관심사 분리 역할이고
프록시 패턴을 쉽게 구현할 수 있다.

프록시 패턴이란, 객체 대신 동작하는 대리인 역할이다.

데코레이터는 TypeScript의 기능으로
함수로 구현할 수 있다.

function hi(arg) {
  console.log('This is a decorator.');
  return arg;
}

@hi
class A {}

// hi(A) → arg === class A
// 출력: This is a decorator.

 

4. Doc 주석 작성 방법

JavaScript와 동일하게 /** */ 주석으로 작성할 수 있다.
InteliiJ는 VSC와 다르게 Java Doc 주석 인터페이스를 제공한다.

인텔리제이 주석 인터페이스
비주얼 스튜디오 코드 주석 인터페이스

특이하게 Java는 HTML 태그를 사용할 수 있다.

JavaScript는 엔터 두 번이면 줄바꿈 되지만
Java는 문단 구분 할때 <p> 태크를 권장한다.

InteliiJ에서 JavaDoc 주석은 
좌측 연필 모양을 눌르면 수정할 수 있다.

수정 클릭 이전
수정 클릭 이후

 

참고
- W3Schools, “Java Annotations”
- GeeksforGeeks, “Annotations in Java”
- TypeScript Handbook (KO), “Decorators”
- Mirone, “A Complete Guide to TypeScript Decorator”
- Inpa Dev, “GOF 💠 프록시(Proxy) 패턴 제대로 배워보자”
- JetBrains, “Generating JavaDoc Comments”
- JSDoc, “Documentation Guide”