Home
oopty
Cancel

Effective Java 정리 Item10 [Eqauls는 일반 규약을 지켜 재정의하라]

eqauls 메서드는 Object 클래스에 정의되어 있고 기본적으로 동일성(identity) 검사를 하게 됩니다. 즉, 가지고 있는 속성(멤버 변수)가 같아도 객체가 다르면 false를 반환한다는 말입니다. 이 Equals를 재정의 할 때는 고려해야할 것이 많고 구현하고 검증 과정을 반드시 거쳐야 하기 때문에 정말 eqauls를 구현해야 하는 것이 맞...

객체지향의 사실과 오해 책 후기

요즘 부서 이동때문에 출퇴근이 4시간이 넘게 걸리네요.. ㅎㅎ 부랴부랴 회사옆에 집은 구했는데 아직 입주까지 2주가 남은 상황이라 조금 더 힘을 내야할듯 합니다. 😅 출퇴근 시간에 읽은 조영호 저자님의 객체지향의 사실과 오해에 대해 후기를 남기려고 합니다. 책 내용 정리보다는 제가 이해한 내용을 바탕으로 글을 쓰려고 합니다. 객체지향 프로그래밍은 우...

Effective Java 정리 Item6 [불필요한 객체 생성을 피하라]

Item6에서는 불필요한 객체를 만들어내는 실수에 대해 다룹니다. 예를 들어, new String("bikini")와 "bikini"는 기능적으로 완전히 똑같지만 메모리와 cpu 자원을 낭비합니다. (라고 책에서 말하지만, Java 컴파일러가 잡아서 최적화 시켜줄 거 같습니다 ㅎㅎ) 또한 생성자보단 정적 팩토리 메서드를 사용해서 불필요한 객체 생성을 ...

Effective Java 정리 Item5

Item5에서는 정적 유틸리티 클래스나 싱글톤 패턴을 잘못 사용한 예에 대해 설명하면서 의존성 주입을 사용하라고 권고합니다. 예시를 든 코드는 철자 검사기인데 이 철자 검사기 클래스는 정확한 맞춤법이 적혀진 사전을 필드에 가지고 있습니다. 이를 싱글톤이나 유틸리티 클래스로 만들면 하나의 사전만 시스템에서 사용할 수 있습니다. 하지만 현실에선 영어사전도...

Effective Java 정리 Item3

item3는 싱글톤 객체를 만드는 방법에 대해 설명합니다. 싱글톤으로 만들면 그 객체를 mocking하기 어려워진다고 합니다. 시스템에 하나의 객체밖에 없도록 설계된 클래스라 mock 객체를 만들기 어렵기 때문입니다. 싱글톤 객체를 만드는 방법은 세가지 입니다. 필드 정적 멤버, 메서드 정적 멤버와 열거타입입니다. 필드 정적 멤버 public cla...

Effective Java 정리 Item1

안녕하세요. 최근에 Effective Java를 읽으면서 자바의 고급 스킬에 대해 많이 배웠는데요 이를 글로 적어 다시 복습하려고 합니다. item1. 생성자 대신 정적 펙토리 메서드를 고려하라 정적 펙터리 메서드는 아래와 같이 private 생성자를 통해 객체를 생성하는 방법입니다. class MyClass { int myField1; ...

왜 제네릭을 쓰는 걸까?

자바 소스코드를 보다보면 제네릭을 사용한 코드를 많이 볼 수 있습니다. 제네릭에 대해서는 단순 타입을 지정해서 사용하는 것이다 정도만 알고 있으니 해당 코드에 대해 정확히 이해하지 못하고 제가 제네릭을 활용하려 할 때 한계가 있었습니다 그래서 제네릭이 언제 도입되었는지 왜 사용하는지를 나름 정리해서 업무에 활용해보려고 합니다. 제네릭을 사용하는 이유...

Java의 공통 메서드

안녕하세요, 오랜만에 글을 남기는데 회사에서 부서이동도 하고 출장도 갔다오면서 바쁜 나날을 보내 블로그 포스팅은 잠시 접어 두었네요. Effective Java를 읽으면서 내용 정리를 해보려고 합니다. 공부 기록 목적도 있고 복습 차원에서 글을 남기는 점 고려하시고 틀린 내용은 지적 부탁드리겠습니다~! 먼저 자바에서 기본 타입이 아닌 모든 객체는 O...

Spring Boot와 @WebMVCTest로 MVC Controller를 테스트 하는 방법

이 글은 Testing MVC Web Controllers with Spring Boot and @WebMvcTest을 해석하고 정리한 글입니다. 이번 글에서는 Controller에 대해 살펴볼 것이다. 먼저 책임 전체를 수용하는 테스트를 작성하기 위해 web Controller가 무엇을 하는지 탐색할 것이다. 그러고 각각 책임을 수용하는 테스트를 ...

가비지 컬렉터 튜닝

지난 이야기 Garbage Collector에 대해 정리해놓은 글에서 Reference & Reachable Object와 Heap 영역의 구조, GC 알고리즘에 대해 설명했습니다. 이번 시간에는 Parallel Collector에 대해 조금 더 설명한 후에 GC 튜닝 방법에 대해 설명하려고 합니다. Parallel Collector (Thro...