Razelo 기술노트

  • 홈
  • 태그
  • 방명록
  • 카카오 브런치

java immutable object 1

[Java] 자바 방어적 복사와 불변객체 생성

자바에서 등장하는 방어적 복사와 불변객체 생성에 대한 내용을 알아보도록 하자. 용어가 어렵지만 사실 내용은 그다지 어려운 내용은 아니다. 방어적 복사는 즉 매개변수의 유효성을 검사하기 전에 방어적 복사본을 만들고, 이 복사본으로 유효성을 검사한 점에 주목하자. 순서가 부자연스러워 보이겠지만 반드시 이렇게 작성해야 한다. 멀티스레딩 환경이라면 원본 객체의 유효성을 검사한 후 복사본을 만드는 그 찰나의 취약한 순간에 다른 스레드가 원본 객체를 수정할 위험이 있기 때문이다. 방어적 복사를 매개변수 유효성 검사 전에 수행하면 이런 위험에서 해방될 수 있다. 컴퓨터 보안 커뮤니티에서는 이를 검사시점/사용시점(time of check/time of use) 공격 혹은 영어 표기를 줄여서 TOCTOU 공격이라 한다...

Java 2021.01.04
이전
1
다음
더보기
프로필사진

Razelo 기술노트

안녕하세요 반갑습니다. Software Engineer Razelo라고 합니다. 기술에 대한 자유로운 이야기를 하고 있습니다. 백엔드/인프라에 관심이 많습니다.

  • 분류 전체보기 (435)
    • 생각들 (0)
    • 개발 이야기 (7)
    • Google Developer Student Cl.. (8)
      • GDSC 백엔드 스터디 (7)
      • GDSC 면접 리뷰 (0)
      • GDSC CS 스터디 (1)
    • 오픈소스 (1)
      • 분석 (1)
    • 기술 서적 리뷰 (9)
    • 개발 정보 (58)
    • 백엔드 개발 (1)
      • RabbitMQ (6)
      • 관련 기술 (1)
    • Spring Framework (48)
      • Spring (8)
      • SpringBoot (40)
    • Java (62)
    • 인공지능 (11)
      • 2021 AI엔지니어 고급반 (7)
      • Deep learning (4)
    • kubernetes (1)
    • Python3 (27)
      • Python3 lang (14)
      • Flask (5)
      • Django (7)
      • Apache Airflow (1)
    • Linux (4)
    • C & C++ (29)
      • C (15)
      • C++ (14)
    • Web (18)
      • javascript (17)
      • typescript (1)
    • Computer Graphics (7)
    • Servlet & Jsp (14)
    • Kotlin (6)
    • Lua (0)
    • Rust (5)
    • Go (8)
    • Blockchain (11)
    • 스타트업 (1)
      • 스토리 (1)
    • 기술 에세이 (2)
    • Functional Programming (3)
      • Scala (0)
    • Computer Security (6)
    • Unreal Engine (4)
    • Algorithm (31)
      • 알고리즘 이론 (12)
      • 문제풀이 (19)
    • 개발툴 (4)
    • Database (11)
      • OracleDB (4)
      • Redis (4)
      • MySQL (3)
    • 모바일 프로그래밍 (1)
      • Android (1)
      • ios (0)
    • Cloud (13)
      • AWS (10)
      • NCP (2)
      • GCP (1)
    • 인프라 (17)
      • Git (12)
      • Docker (4)
      • 기타 인프라 관련 (1)

최근글과 인기글

  • 최근글
  • 인기글

최근댓글

공지사항

  • Razelo 기술노트 블로그 소개

Archives

방문자수Total

  • Today :
  • Yesterday :

Copyright © Kakao Corp. All rights reserved.

티스토리툴바