728x90 Java30 [Java] 향상된 try catch문: try-with-resources 개요최근 차세대 프로젝트에서 파일 입출력을 자주 다루게 되면서 자원 관리를 어떻게 최적화할지 고민하게 되었다. 기존의 try-catch-finally 구조를 사용해 자원을 닫는 코드를 작성했지만, 코드가 복잡해지고 실수할 가능성도 많았다. 코드 리뷰를 통해 자바 7에서 도입된 try-with-resources 문법을 알게 되었고, 자원 관리가 훨씬 간편해졌다. 이 글에서는 try-with-resources의 동작 방식과 이점에 대해 알아보고, 예제를 통해 쉽게 설명하려고 한다. 자바의 자원관리자바에서 파일, 데이터베이스 연결, 네트워크 소켓과 같은 자원은 프로세스가 사용한 후 반드시 명시적으로 해제해야 한다. 그렇지 않으면 메모리 누수와 같은 심각한 문제를 초래할 수 있다. 전통적으로는 try-catch.. 2024. 9. 21. 자바 StringBuilder와 StringBuffer는 뭐가 다를까? 개요최근 개발을 하며 문자열을 여러 개 이어붙일 일이 있었는데, 기존 코드를 보니 StringBuilder를 많이 사용하는것을 볼 수 있었다. 하지만 해당 프로젝트 외에 다른 프로젝트에서는 StringBuffer를 사용해서 문자열을 이어 붙였었는데 두 클래스간 어떤 차이가 있을지 궁금하여 비교해서 정리하려고 한다. StringBuilder와 StringBuffer일단 StringBuilder와 StringBuffer는 모두 문자열을 수정할 수 있는 가변 클래스이다. 둘 다 문자열을 효율적으로 처리할 수 있도록 설계되었으나, 사용 목적에 따라 선택해야 한다. 두 클래스의 대표적인 큰 차이는 아래와 같다. 동기화(Synchronization) 여부StringBuilder: 동기화되지 않은 클래스. 멀티스레드.. 2024. 9. 20. Cursor<T> 개요 최근 회사 프로젝트 PR을 보던 중, Mapper 파일에서 그동안 보지 못했던 리턴 타입을 보았다. 주소록 그룹에서 FAX 번호를 대량으로 조회하는 쿼리의 리턴 타입이 Cursor으로 되어 있었는데, 해당 리턴값을 사용하는 곳을 보니 일반 List처럼 for문을 사용해서 순회하는것을 확인할 수 있었다. 이를 통해 Cursor는 리스트와 비슷하게 순회가 가능하지만 다른 이점이 있을것이라고 생각했고, 그 내용에 대해 정리해 보았다. Cursor? Cursor contract to handle fetching items lazily using an Iterator. Cursors are a perfect fit to handle millions of items queries that would not n.. 2023. 3. 9. [Java] Spring Boot Actuator 개요 어플리케이션을 개발하는 것도 중요하지만 개발하는것만큼 중요한 것이 어플리케이션을 잘 운영하는 것이다. 서비스를 잘 운영하기 위해서는 여러 요소가 필요하겠지만, 모니터링은 빠질 수 없는 요소이며 이를 위한 도구들이 많이 개발되어 있다. 서비스의 운영에 있어서 모니터링은 필수 요소이지만, 모니터링만을 위해 별도의 엔드포인트를 만들거나 기능을 개발하는데 시간이 많이 든다면 배보다 배꼽이 더 커지는 경우일 수 있다. 스프링 부트에서는 spring-boot-actuator 모듈을 통해 이러한 모니터링 기능을 지원할 뿐만 아니라 서비스를 일부 조작할 수 있게 한다. Actuator 사용해보기 의존성 추가 Spring boot에서 엑추에이터를 사용하려면 spring-boot-starter-actuator모듈에 .. 2023. 2. 14. 이전 1 2 3 4 5 6 7 8 다음