태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
블로그 이미지
흙에서 좋은 원석을 찾고 좋은 원석을 정확하고 정밀하고 구체적이며 계획적으로 만들어야 그 중 10%가 이목의 집중을 받을 만한 보석이 된다. 소프트웨어 개발도 그러하다.

카테고리

전체보기 (381)
IT Trend (32)
Programming (200)
System (43)
Software Engineer (7)
Computer Architecture (3)
Computer Engineer(Ge.. (1)
Wireless Network (52)
Network (23)
Favorites (15)
Links (3)
Total65,978
Today8
Yesterday8

달력

« » 2019.8
        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

공지사항

태그목록

URL : http://blog.seulgik.im/2014/01/raii.html



RAII는 C++에서 자주 쓰이는 idiom으로 자원의 안전한 사용을 위해 객체가 쓰이는 스코프를 벗어나면 자원을 해제해주는 기법이다. C++에서 heap에 할당된 자원은 명시적으로 해제하지 않으면 해제되지 않지만, stack에 할당된 자원은 자신의 scope가 끝나면 메모리가 해제되며 destructor가 불린다는 원리를 이용한 것이다.
 원래는 exception 등으로 control flow가 예상치 못하게 변경될 때를 대비하기 위해서 쓰이던 기법이다.


heap 메모리 이외에도 파일이나 db와 같은 것들도 전부 RAII를 이용해 안전하게 사용할 수 있다.
여기에 더 나아가서 특정 scope를 벗어나면 반드시 실행돼야 하는 코드들도 RAII를 이용해 처리할 수 있다. 즉, 다른 언어에서 finally에 해당하는 구문을 RAII를 이용해서 처리할 수 있다. 실제로 C++의 아버지이자 RAII라는 용어를 처음 만든 Bjarne Stroustrub는 c++에 finally를 집어넣지 않는 이유를 "RAII가 있는데 굳이 있을 필요가 없다."라고 말하고 있다.




'Programming > C/C++' 카테고리의 다른 글

RAII는 무엇인가  (0) 2014.05.22
Posted by 개Foot/Dog발?!

댓글을 달아 주세요

최근에 달린 댓글

최근에 받은 트랙백

글 보관함