[TIL] 자바 가변 인수
by 달쿨상황
공통으로 사용하는 권한 처리 로직을 어떻게 구현할지 논의하던 중, 팀원분께서 아래와 같은 방식을 제안하셨다.
해당 메서드에 아래 코드처럼 확인할 권한을 여러 개 넘길 수 있는 구조이다.
해당 코드를 보면서 메서드 파라미터에 ...을 사용해 배열로 받을 수 있다는 것을 알게 되었고, 궁금해져서 조금 더 찾아보니 이런 기법을 가변 인수(Variable Arguments, Varargs) 라고 부른다는 것을 알게 되었다.
자바 가변 인수 (Varargs)
가변 인수는 매서드 파라미터 부분에 타입... 매개 변수명 으로 처리하면 사용이 가능하고, 파라미터로 넘겨지는 값들을 모아서 컴파일 시 배열로 처리한다. 주의할 점은 다른 매개 변수를 받는 경우 메서드의 가장 마지막 파라미터로만 사용 가능한 점이다.
원하는 개수의 인수를 자유롭게 넘길 수 있어서 편해 보이지만, 메서드가 호출될 때마다 배열을 새로 할당하고 초기화해 성능에 문제가 될 수 있다. 그래서 가변 인수를 사용해야 할 상황이라면, 아래 코드처럼 유연적인 오버 로딩으로 처리하는 것을 권장한다고 한다.
느낀 점
학교에서 리액트를 배울 때 스프레드 연산자라는 개념으로 알고 있었는데 자바에서도 비슷한 개념이 있다는 것을 처음 알았고 놀랐다. 잘 기억해 두고 필요한 경우가 생기면 사용하면 좋을 것 같다는 생각이 들었다. 또 성능 개선 방법에 대해 알게 되어서 해당 부분 팀원들과 공유하고 의견을 나눠보면 좋을 것 같다.
'TIL' 카테고리의 다른 글
[TIL] 메타 어노테이션 @Repeatable (1) | 2024.11.18 |
---|---|
[TIL] @Valid와 @Validated의 차이 (0) | 2024.11.15 |
[TIL] Pageable에서 여러 정렬 조건 설정하기 (2) | 2024.11.14 |
[TIL] RequestParam 필수 여부 지정 (0) | 2024.11.13 |
[TIL] 프로젝트 초반을 진행하며 (1) | 2024.11.11 |
블로그의 정보
note
달쿨