Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- es6
- 1px border
- Websocket
- Strict
- literal
- 전역변수
- TS
- 데이터베이스 #try #이중
- 0.5px border
- ZOOM
- jwt
- entity
- ES5
- npm
- 당근마켓
- Props
- font-size
- 컴포넌튼
- 문서번호
- &연산
- TypeScript
- 클론코딩
- 타입스크립트
- 서버리스 #
- github
- angular
- 0.25px border
- 으
- 0.75px border
- 10px
Archives
- Today
- Total
복잡한뇌구조마냥
[JAVA] Effective Java - 지역변수의 범위를 최소화하라 (57) 본문
요약
- 지역변수는 짧게, 필요한 순간에만 선언·사용하라.
- 선언과 동시에 초기화 → 초기화가 어렵다면 정보가 생길 때까지 선언 미루기.
- 반복문에서는 for문/for-each문을 우선 사용해 변수 범위를 최소화.
- 메서드는 짧게 유지 → 지역변수도 자연스럽게 짧은 생존 범위를 갖게 된다.
- 범위 최소화는 가독성, 유지보수성, 안정성을 높이고 버그 발생 가능성을 낮춘다.
1. 왜 지역변수 범위를 최소화해야 할까?
- 변수의 생존 기간이 길수록 잘못된 사용 가능성이 높아진다.
- 긴 범위의 변수는 코드 가독성을 해치고, 디버깅과 유지보수에도 불리하다.
- 따라서 변수는 필요할 때 선언하고, 사용 직후 소멸되도록 작성하는 것이 바람직하다.
2. 기본 원칙
- 선언과 동시에 초기화
- 대부분의 지역변수는 값을 선언과 동시에 초기화해야 한다.
- 초기화가 어렵다면, 초기화에 필요한 정보가 생기는 순간까지 선언을 미루라.
- try 블록 내부에서 초기화
- 예외 발생 가능성이 있는 객체는 try 블록 안에서 선언·초기화하는 것이 안전하다.
- 필요한 범위에서만 사용
- 변수는 딱 필요한 블록 안에서만 선언하고 사용 후 곧바로 범위를 끝내야 한다.
3. 반복문에서의 변수 범위
while문보다 for문
- while문은 반복 변수를 블록 밖에서 선언해야 하므로, 반복 종료 후에도 변수가 살아남는다. → 잘못 사용 위험.
- for문은 반복 변수를 반복문 내부로 한정하기 때문에 범위가 자동으로 줄어든다.
// while 문 — i가 반복문 바깥에서도 접근 가능
int i = 0;
while (i < n) {
...
i++;
}
int i2 = 0;
while (i < n) {
...
i++;
}
// 여기서 i를 실수로 다시 사용할 수도 있음
// for 문 — i는 반복문 내부에서만 유효
for (int i = 0; i < n; i++) {
...
}
// i는 여기서 접근 불가 → 안전
for-each 문
- 컬렉션이나 배열 순회에는 for-each 문을 사용하자.
- 반복자를 직접 다루지 않으므로 코드가 간결하고 오류 가능성이 적다.
4. 지역변수 범위를 최소화하는 추가 방법
1. 루프 변수 재사용 금지
- 변수를 반복문 외부에 선언해두고 여러 루프에서 재사용하면,
이전 값이 남아 있어 버그가 발생할 수 있다. → 루프 내부에서 선언하자.
2. 메서드를 짧게 유지
- 긴 메서드는 지역변수의 생존 범위를 불필요하게 늘린다.
- 메서드를 짧게 쪼개면 변수 수도 줄고 범위도 자연스럽게 짧아진다.
3. 불필요한 지역변수 제거
- 한 번만 쓰이는 변수는 선언하지 말고 식(expression)으로 바로 사용하자.
// 나쁨
int result = compute();
return result;
// 좋음
return compute();
4. 섀도잉(shadowing) 방지
- 지역변수가 클래스 필드 이름을 가려 혼동을 주는 경우가 많다.
- 범위를 짧게 가져가면 이런 위험도 줄어든다.
5. 정리
- 지역변수는 필요할 때 선언하고 즉시 초기화하라.
- 반복문에서는 for문/for-each문을 우선적으로 사용해 범위를 제한하라.
- 메서드를 작게 쪼개면 변수 범위도 자연스럽게 줄어든다.
- 불필요하거나 한 번만 쓰이는 변수는 제거해 코드 단순성을 높여라.
📌 결론
지역변수의 범위를 최소화하면 코드의 가독성과 유지보수성이 높아지고, 버그 발생 가능성은 줄어든다.
변수는 필요한 순간에 선언하고, 가능한 한 빨리 소멸되도록 관리하는 습관을 들이자.
LIST
'BE > JAVA' 카테고리의 다른 글
[JAVA] Effective Java - 표준 예외를 사용하라 (72) (0) | 2025.09.04 |
---|---|
[JAVA] Effective Java - 일반적으로 통용되는 명명 규칙을 따르라 (68) (2) | 2025.09.01 |
[JAVA] Effective Java - 다중정의는 신중히 사용하라 (52) (0) | 2025.08.24 |
[JAVA] Effective Java - 스트림은 주의해서 사용하라 (45) (0) | 2025.08.24 |
[JAVA] AOP (관점 지향 프로그래밍) 기초 정리 (0) | 2025.08.22 |