Ruby의 데이터 부재 처리 메서드들은 다음과 같습니다.
1. nil? – 엄격한 nil 확인
nil?은 Ruby Object에 정의된 핵심 메서드로, 객체가 nil인 경우에만 true를 반환합니다.
-
특징:
nil에만true, 모든 객체에서 사용 가능. -
사용:
NoMethodError방지, 안전 탐색 연산자(&.) 활용.
2. empty? – 컬렉션 요소 부재 확인
empty?는 Array, Hash, String 등 컬렉션 타입에서 요소가 없는지 확인합니다.
-
주의: 공백 문자열(
" ")과[nil]은false. 내용이 아닌 크기만 검사. -
사용: 폼 입력 유효성 검사, 조건부 렌더링.
3. blank? – Rails의 유연한 부재 도구
blank?는 Active Support 확장으로, nil, false, 빈 컬렉션, 공백 문자열을 모두 “비어있음”으로 간주합니다.
-
동작:
empty?에 응답하는 객체는 그 결과를 따르며,String은strip.empty?로 구현됩니다. -
적용: 사용자 입력 정리, 조건부 로직, 폼 유효성 검증.
4. present? – 긍정적인 존재 확인
present?는 blank?의 논리적 반대(!blank?)입니다. 객체가 비어있지 않은 경우 true를 반환합니다.
-
.presence활용: 값이 존재하면 해당 값을 반환, 아니면nil을 반환하여 기본값 설정(params[:page].presence || 1)에 유용합니다. -
사용: 기본값 설정, 조건부 할당.
핵심 요약
nil?과 empty?는 빠르고 엄격한 검사에, blank?와 present?는 유연한 “비어있음” 판단에 적합합니다. Active Support를 require하여 Rails 외 환경에서도 활용 가능합니다.