πŸ˜€
Hyune's Wiki
  • Welcome
  • Article
    • Link
  • Mentor & Code Reviewer
    • μ§„ν–‰ν•˜κΈ°μ— μ•žμ„œ..
    • Code Review History
      • ν•œλ°© 쿼리 vs μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 쑰립
      • DBμ—μ„œ TIMESTAMP와 DATETIME νƒ€μž…μ˜ 차이
      • ServiceλŠ” μ–΄λ–€ dtoλ₯Ό λ°˜ν™˜ν•΄μ•Ό ν• κΉŒ?
        • ν™•μž₯ 질문
  • Legacy
    • 싀무 κ²½ν—˜ & 팁
      • Kotlin
        • 파일 μ‘°μž‘ν•˜κΈ°
      • Infra
        • Lightsail
          • μΈμŠ€ν„΄μŠ€ ꡬ성 예제
        • 곡인 ip ν™•μΈν•˜κΈ°
      • Database
        • INSERT INTO SELECT SHARED LOCK(row LOCK)
      • API Document
        • OpenAPI (Swagger 3.0)
          • 정적 λ¬Έμ„œ 내보내기
      • Side Project
        • Codesquad
      • ETC
        • HTTP Request μΆ”μ ν•˜κΈ° with HAR File
    • Study
      • Language
        • Java
          • Copy
          • λ©”λͺ¨λ¦¬ 관리
          • Garbage Collection
          • 자료ꡬ쑰
          • Java 17
        • Kotlin
          • Coroutine
      • Framework & Library
        • Spring
          • Spring Security
          • @Component vs @Configuration
        • JPA
          • show-sql μ„€μ •μ˜ 단점
          • @GeneratedValue strategy
          • Entity의 field type
        • Logback
          • κΈ°λ³Έ μ„€μ •
        • Monitoring
          • VisualVM
            • μ„€μΉ˜
            • λ¬Έμžμ—΄ μƒμ„±μœΌλ‘œ ν…ŒμŠ€νŠΈ
          • nGrinder
      • Database
        • MySQL
          • SQL λ¬Έ μˆ˜ν–‰ 절차
          • νŠΈλžœμž­μ…˜κ³Ό 잠금
          • 인덱슀
      • Infra
        • AWS
          • S3
            • μš©μ–΄
            • Amazon SDK 1.x with Spring
          • DynamoDB
            • Get vs Query vs Scan
        • Docker & Kubernetes
      • Computer Science
        • OS
          • Process vs Thread
          • Process
        • Web
          • HTTP
            • HTTP vs HTTPS
            • HTTP ꡬ성
            • HTTP κ·Έμ™Έ
          • REST API
            • GET λ©”μ„œλ“œμ— payloadλ₯Ό μ‚¬μš©ν•΄λ„ λ˜λŠ”κ°€?
            • νŠΉμ • λͺ©μ μ˜ APIλŠ” μ–΄λ–»κ²Œ λ§Œλ“€μ–΄μ•Ό ν• κΉŒ?
          • TCP / UDP
          • μΈν„°λ„·μ˜ μž‘λ™ 원리
          • OAuth 2.0
        • Design Pattern
          • Builder Pattern
        • MSA
        • DDD
      • Test
        • Test Doule
      • Book & Online Class
        • ν•œ λ²ˆμ— λλ‚΄λŠ” Spring μ™„.μ „.판 초격차 νŒ¨ν‚€μ§€ Online
          • AOP, Aspect Oriented Programming
          • Data Binding
          • IoC(Inversion of Control), DI(Dependency Injection)
          • Null Safety
          • Spring Resource
          • Spring Boot 버전별 λ³€ν™”
          • SpEL, Spring Expression Language
          • Validation
        • μ΄νŽ™ν‹°λΈŒ μžλ°” 3판
          • 2μž₯ 객체 생성과 파괴
            • μ•„μ΄ν…œ 1. μƒμ„±μž λŒ€μ‹  정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œλ₯Ό κ³ λ €ν•˜λΌ
            • μ•„μ΄ν…œ 2. μƒμ„±μžμ— λ§€κ°œλ³€μˆ˜κ°€ λ§Žλ‹€λ©΄ λΉŒλ”λ₯Ό κ³ λ €ν•˜λΌ
            • μ•„μ΄ν…œ 3. private μƒμ„±μžλ‚˜ μ—΄κ±° νƒ€μž…μœΌλ‘œ μ‹±κΈ€ν„΄μž„μ„ λ³΄μ¦ν•˜λΌ
            • μ•„μ΄ν…œ 4. μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μœΌλ €κ±°λ“  private μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λΌ
            • μ•„μ΄ν…œ 5. μžμ›μ„ 직접 λͺ…μ‹œν•˜μ§€ 말고 의쑴 객체 μ£Όμž…μ„ μ‚¬μš©ν•˜λΌ
            • μ•„μ΄ν…œ 7. λ‹€ μ“΄ 객체 μ°Έμ‘°λ₯Ό ν•΄μ œν•˜λΌ
          • 3μž₯ λͺ¨λ“  객체의 곡톡 λ©”μ„œλ“œ
            • μ•„μ΄ν…œ 11. equalsλ₯Ό μž¬μ •μ˜ν•˜λ €κ±°λ“  hashCode도 μž¬μ •μ˜ν•˜λΌ
            • μ•„μ΄ν…œ 12. toString을 항상 μž¬μ •μ˜ν•˜λΌ
            • μ•„μ΄ν…œ 14. Comparable을 κ΅¬ν˜„ν• μ§€ κ³ λ €ν•˜λΌ
          • 4μž₯ ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€
      • Webinar
        • μš”μ¦˜ νž™ν•œ μŠ€νƒ€νŠΈμ—…μ˜ DBDB DEEPν•œ 이야기
Powered by GitBook
On this page
  • @NonNull Annotation
  • @Nullable Annotation

Was this helpful?

Edit on GitHub
  1. Legacy
  2. Study
  3. Book & Online Class
  4. ν•œ λ²ˆμ— λλ‚΄λŠ” Spring μ™„.μ „.판 초격차 νŒ¨ν‚€μ§€ Online

Null Safety

PreviousIoC(Inversion of Control), DI(Dependency Injection)NextSpring Resource

Last updated 3 years ago

Was this helpful?

널 μ•ˆμ •μ„±μ„ λ†’μ΄λŠ” 방법

  • μ•„λž˜μ™€ 같은 μ½”λ“œλ₯Ό λ§Œλ“€μ§€ μ•ŠλŠ” 방법

  • ν˜Ήμ€ μ•„λž˜μ™€ 같은 널 체크λ₯Ό ν•˜μ§€ μ•Šμ•„μ„œ λ°œμƒν•˜λŠ” NPE λ₯Ό (Null Pointer Exception) λ°©μ§€ν•˜λŠ” 방법

  • μ™„λ²½ν•œ 방법은 μ•„λ‹ˆμ§€λ§Œ IDE μ—μ„œ κ²½κ³ λ₯Ό ν‘œμ‹œν•¨μœΌλ‘œμ¨ 1차적인 문제λ₯Ό λ°©μ§€ν•˜κ³ , μ •ν™•ν•œ μ—λŸ¬ μœ„μΉ˜λ₯Ό 확인할 수 μžˆλ„λ‘ 도움

public void method(String request) {
	if(request == null) return;

	// normal process
	System.out.println(request.toUpperCase());
}

@NonNull Annotation

  • ν•΄λ‹Ή κ°’μ΄λ‚˜ ν•¨μˆ˜ 등이 Null 이 μ•„λ‹˜μ„ λ‚˜νƒ€λ‚΄λŠ” μ–΄λ…Έν…Œμ΄μ…˜

  • org.springframework.lang.NonNull μ‚¬μš©

  • λ©”μ„œλ“œ νŒŒλΌλ―Έν„°μ— λΆ™μ΄λŠ” 경우: null 이 λ“€μ–΄μ˜€λŠ” 것을 사전에 방지함

  • ν”„λ‘œνΌν‹°μ— λΆ™μ΄λŠ” 경우: null 을 μ €μž₯ν•˜λŠ” 경우 κ²½κ³ 

  • λ©”μ„œλ“œμ— λΆ™μ΄λŠ” 경우: null 을 λ¦¬ν„΄ν•˜λŠ” 경우 κ²½κ³ , 응닡값을 μ €μž₯ν•˜κ±°λ‚˜ ν™œμš©ν•˜λŠ” μͺ½λ„ NonNull 이라고 μ‹ λ’°ν•˜κ³  μ‚¬μš©

@Nullable Annotation

  • @NonNull κ³Ό λ°˜λŒ€λ‘œ ν•΄λ‹Ή 데이터가 null 일 수 μžˆμŒμ„ λͺ…μ‹œν•¨

  • ν•΄λ‹Ή μ–΄λ…Έν…Œμ΄μ…˜μ΄ 뢙은 값을 μ‚¬μš©ν•˜λŠ” 경우 null check λ₯Ό 항상 μˆ˜ν–‰ν•˜λ„λ‘ κ²½κ³