본문 바로가기
728x90

자바7

[Java] 향상된 try catch문: try-with-resources 개요최근 차세대 프로젝트에서 파일 입출력을 자주 다루게 되면서 자원 관리를 어떻게 최적화할지 고민하게 되었다. 기존의 try-catch-finally 구조를 사용해 자원을 닫는 코드를 작성했지만, 코드가 복잡해지고 실수할 가능성도 많았다. 코드 리뷰를 통해 자바 7에서 도입된 try-with-resources 문법을 알게 되었고, 자원 관리가 훨씬 간편해졌다. 이 글에서는 try-with-resources의 동작 방식과 이점에 대해 알아보고, 예제를 통해 쉽게 설명하려고 한다. 자바의 자원관리자바에서 파일, 데이터베이스 연결, 네트워크 소켓과 같은 자원은 프로세스가 사용한 후 반드시 명시적으로 해제해야 한다. 그렇지 않으면 메모리 누수와 같은 심각한 문제를 초래할 수 있다. 전통적으로는 try-catch.. 2024. 9. 21.
GC 개념 및 동작 원리 지난 글에서 JVM의 구조에 대해 정리해 보았는데 JVM의 구성 요소중 GC에 대해서는 자세한 설명이 빠져있었다. GC만 정리하더라도 글 한 개의 분량이 될 것 같아서 이번 글에 이어서 GC에 대해 정리해본다. Garbage Collection 이란 학부생 때 C언어를 이용한 과제를 진행했을 때 malloc() 함수 사용 후 free() 함수를 실행해서 메모리를 해제해준 기억이 있다. 그 다음 학기에 자바 강의를 수강했는데 자바에서는 별도로 메모리를 관리하지 않아도 되고, GC가 알아서 메모리를 관리해준다고 배웠던 기억이 남아있다. 지난 JVM 정리에서 알 수 있듯이 자바를 이용해 개발할 때는 직접 메모리 공간을 할당/반환을 하지 않고, JVM을 통해 할당받고, 반환하게 된다. 이렇게 자바에서는 JVM의.. 2022. 9. 13.
JVM 이란? 들어가며 최근 자바 AOP에 관심이 생겨 수강했던 백기선의 더 자바 - 바이트코드 조작의 마법 강의 내용 중 바이트코드를 설명하기 전, JVM과 그것과 관련된 것들에 대한 내용을 접하게 되었다. 입사 후 자바를 사용한지 2년 가까이 되었지만 JVM과 관련된 지식은 학부생때 잠깐 배웠던 지식이 전부라 관련 내용을 정리해보고 싶어서 간단하게 정리하였다. 자바와 JVM, JRE, JDK 학부생 시절에 자바 수업을 위해 인터넷에서 자바를 다운로드받은적이 있다. 당시 다운로드할 때 jre, jdk 등 차이를 알수없는 요소들이 있던것으로 기억한다. JVM 구조에 대해 정리하기 전, 자바와 JVM, JRE, JDK가 어떻게 다른지 정리하려고 한다. 이 챕터를 읽고 나면 자바를 다운로드했다 라는 말에서 어색함을 느낄 .. 2022. 8. 23.