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 |
Tags
- JPA
- SnowFalke
- redis
- 백엔드
- Spring
- 백엔드개발
- 캐시
- 네트워크
- 세션
- http
- 웹성능최적화
- 백엔드기초
- interceptor
- devops
- DEVIEW2023
- 데이터베이스
- Spring Boot
- 웹개발
- db
- 프론트엔드
- 보안
- 인프라
- AbstractAggregateRoot
- 성능최적화
- CS
- 인증
- 백엔드개발자
- spring event
- java
- 클린코드
Archives
- Today
- Total
이것저것 개발기록
NullPointerException(NPE)을 방지하는 안전한 코딩 습관 본문
"백엔드 개발자의 최대 숙적, 널 포인트 예외!"
런타임에 갑자기 터지는 NPE를 막기 위해 우리는 어떤 노력을 해야 할까요? 코드를 더 견고하게 만드는 습관들을 소개합니다.
1. 왜 NPE가 무서운가?
NPE는 컴파일 시점이 아닌 실행 시점(Runtime)에 발생합니다. 즉, 개발 환경에서는 멀쩡하다가 운영 서버에서 사용자가 서비스를 이용할 때 갑자기 에러가 터진다는 뜻입니다.
2. NPE를 피하는 3가지 필살기
- 🔒 Optional 활용하기: 값이 "없을 수도 있음"을 객체로 감싸서 명시합니다.
- 🔒 문자열 비교 시 리터럴을 앞에:
if("ADMIN".equals(role))처럼 사용하면 role이 null이어도 안전합니다. - 🔒 기본값 반환: null 대신 빈 리스트(Collections.emptyList())나 빈 문자열을 반환하세요.
💡 실무 노트
Optional을 배우면 모든 곳에 Optional을 쓰고 싶어집니다. 하지만 메소드 파라미터로 Optional을 넘기거나 필드 값으로 사용하는 건 오히려 비용이 크고 가독성을 해칠 수 있어요.
팁: Optional은 주로 반환 타입으로만 사용하고, 내부 로직에서는 명확한 null 체크나 어노테이션(@NonNull 등)을 활용하는 것이 더 세련된 방식입니다.
'IT 이야기' 카테고리의 다른 글
| TDD(테스트 주도 개발)가 왜 필요한가요? (0) | 2025.12.30 |
|---|---|
| 쿠키와 세션, 로그인 유지의 비밀 (0) | 2025.12.30 |
| 브라우저 저장소 총정리 (Cookie vs LocalStorage vs SessionStorage) (0) | 2025.12.29 |
| Git Merge vs Rebase, 상황에 맞는 협업 전략 (0) | 2025.12.28 |
| 서버가 터지지 않게! 로드 밸런싱(Load Balancing)의 기초 (0) | 2025.12.28 |