June 01, 2022
try-finally 닫아야 하는 자원을 자용할 경우 회수할 때 를 전통적으로 사용하곤 했다. 하지만 이 방식이라면, 자원이 둘 이상일 경우에 지저분해진다는 단점이 있다. 또, 예외 사항이 무시되어 디버깅을 어렵게 하기도 한다. try-with-resources 앞서 설명한 문제들은 로 쉽게 해결이 가능하다. 이 구조를 사용하기 위해서는 자원이 인터페…
May 27, 2022
객체를 생성했으면 나중에 사용이 끝났을 때는 없애기도 해야할 것이다. 자바는 두 가지 객체 소멸자를 제공하는데, 바로 와 이다. 그런데, 이 두 소멸자는 기본적으로 사용하지 말아야 한다. 그 이유는 크게 예측할 수 없고, 느리고, 위험하기 때문이다. 좀 더 자세하게 알아보자. 자바에서의 객체 회수 방법 C++에서는 자원을 회수하기 위해 destructor…
May 24, 2022
Java의 경우, C, C++과는 달리 다 쓴 객체를 알아서 회수한다. 하지만 메모리 관리에 신경을 써야하는 몇 가지 경우가 있는데, 이러한 경우를 예시와 함께 알아보자. 1. 배열, 리스트 등으로 메모리를 관리하는 경우 책에 있는 예시인 스택 구현 코드를 보자. 메서드를 보면, 가 0일 때 객체를 생성만 하고, 빼지 않기 때문에 배열인 에 계속해…
May 17, 2022
같은 기능의 객체를 불필요하게 만드는 것보다 재사용하는 것이 좋은데, 각각의 경우를 살펴보자. 불필요한 객체를 만드는 예 1 - 문자열 문자열에서 불필요한 객체를 만들게 되는 경우를 알아보자. 첫번째 코드는 String 객체를 계속해서 만드므로, 객체 생성이 불필요하게 될 수 있다. 두번째 코드는 하나의 String 객체를 재사용한다. 따라서 첫번째보다는…
May 16, 2022
의존 관계 한 객체가 다른 객체를 생성하거나 메서드를 호출하면, 그 객체에 의존한다고 표현한다. 책에 예시로 나와있는 클래스는 스펠링이 맞는지 틀린지를 판단하는 클래스이기 때문에, 사전 클래스인 를 의존한다. 의존 관계를 정적 유틸리티 클래스와 싱글턴으로 구현 정적 유틸리티 클래스로 구현 싱글턴으로 구현 정적 유틸리티 클래스와 싱글턴으로 구현하게 되면,…
May 10, 2022
정적 멤버만 담은 유틸리티 클래스 정적 메서드와 정적 필드만을 담은 단순한 클래스는 다음과 같이 사용된다. 기본 타입 값이나 배열 관련 메서드 모으기 ex. , 인터페이스를 구현하는 객체를 생성해주는 정적 메서드(또는 팩터리)를 모으기 ex. final 클래스와 관련한 메서드 모으기 final 클래스를 상속받아 메서드에 넣을 수 없기 때문이다. 이런 …
May 09, 2022
싱글턴(singleton) 객체의 인스턴스를 오직 1개만 생성할 수 있는 클래스. 생성자의 호출이 반복적으로 이뤄져도 객체는 최초 생성된 객체를 반환해준다. 클래스를 싱글턴으로 만드는 이유? 메모리 낭비를 방지할 수 있다 최초 한 번 생성하면 이후에도 고정된 메모리 영역을 사용하기 때문에 객체에 접근할 때 메모리 낭비를 방지할 수 있다. 다른 클래스 간에…
May 03, 2022
선택적 매개변수가 많을 때는 정적 팩터리 메서드와 생성자 모두 적절하게 대응하기가 힘든데, 빌더 패턴을 사용하면 해결 가능하다. 점층적 생성자 패턴(Telescoping constructor pattern) 빌더 패턴을 설명하기 전, 비교를 위해 다른 패턴들을 살펴보자. 빌더 패턴 전에는 점층적 생성자 패턴을 사용하여 이 문제를 해결했다고 한다. 클래스…
May 02, 2022
정적 팩터리 메서드 정적 팩터리 메서드(static factory method)는 클래스의 인스턴스를 반환하는 정적 메서드이다. 예를 몇 가지 들어보자. 클래스의 메서드 클래스의 메서드 두 메서드 다 반환 값이 클래스인 정적 메서드이기 때문에, 객체 생성의 역할을 할 수 있다. 그렇다면 왜 생성자 대신 정적 팩터리 메서드를 고려해야할까? 정적 팩…
May 01, 2022
이번 주 계획 이행 실전 JPA 강의, Spring Data JPA 강의 듣고 프로젝트 구성 ⭕ 토이프로젝트 로그인 화면 구현 ❌ 토이프로젝트 필요한 API 정리 ⭕ '부의 추월차선' 책 끝내기 ❌ 블로그 글 짧게 2번 포스팅하기 ❌ 해낸 일 운동을 주 3회 했다 책 '이펙티브 자바'의 내용을 정리해서 블로그에 올리기로 했다 현재 이펙티브 자바 책을 읽…