728x90
728x90
6월의 서평 도서는 '엔터프라이즈 자바 마이크로서비스'이다. 이전에 길벗 출판사의 '마이크로서비스 패턴' 책을 서평하면서 마이크로서비스를 처음 접하게 되었다. 사실 내용이 신입개발자인 나에게는 쉽지 않았다고 생각한다. 마이크로서비스 패턴이 아무래도 모놀리식을 여러 마이크로서비스로 쪼개는 것 자체가 신입 개발자 입장에서는 생소하고 접해보지 못한 영역이다 보니 그렇겠지...? 라고 스스로를 위로해본다. 아무튼 이번 책은 저번과는 조금 더 쉽게 이해할 수 있기를 바라면서... 또한 책 제목에도 적혀있듯이, 자바 개발자를 겨냥한 책이다. 자바 개발자로 훌륭하게 성장하고 싶다면, 언젠가는 접해야할 내용일 것이다. (언젠가 DDD를 공부할 나를 위한 선행학습이라고 생각하자!! 참고로 DDD는 '도메인 주도 설계'라..
자바 라이브러리에는 close 메서드를 호출해 직접 닫아줘야 하는 자원이 많다. InputStream, OutputStream, java.sql.Connection 등이 좋은 예다. 자원 닫기는 클라이언트가 놓치기 쉬워서 예측할 수 없는 성능 문제로 이어질 수도 있다. 이런 자원 중 수 상당수가 안전망으로 finalizer를 활용하고는 있지만 finalizer는 그리 믿을만하지 못하다. 전통적으로 자원이 제대로 닫힘을 보장하는 수단으로 try-finally가 쓰였다. 예외가 발생하거나 메서드에서 반환되는 경우를 포함해서 말이다. static String firstLineOfFile(String path) throws IOException { BufferedReader br = new BufferedRea..
이전글에 이어서 아이템6의 내용을 정리한다. 똑같은 기능의 객체를 매번 생성하기보다는 객체 하나를 재사용하는 편이 나을때가 많다. 재사용은 빠르고 세련됐다. 특히 불변 객체는 언제든 재사용할 수 있다. 다음 코드는 하지 말아야 할 극단적인 예이다. 자세히 살펴보고 절대 따라하지 말자 String s = new String("bikini"); // 따라 하지 말 것! 이 문장은 실행될 때마다 String 인스턴스를 새로 만든다. 완전히 쓸데없는 행위다. 생성자에 넘겨진 "bikini" 자체가 이 생성자로 만들어내려는 String과 기능적으로 완전히 똑같다. 이 문장이 반복문이나 빈번히 호출되는 메서드 안에 있다면 쓸데없는 String인스턴스가 수백만 개 만들어질 수도 있다. 개선된 버전을 보자 String..
Equals와Hashcode, toString 등.. 기존의 정의되어있는 메소드를 오버라이딩을 하여 사용하는 경우가 많다. Equals와 toString은 어떤 용도로 사용하는지 알고있었지만, Hashcode의 경우 IntelliJ IDE의 자동완성 기능에서 종종 보았지만, 의미와 용도를 잘 모르고 지나치는 경우가 많았다. (부끄럽지만 알아볼 생각도 안했다) Equals와 Hashcode 메소드에 대해 알아보자 ! 아래의 코드와 같이 member1객체와 member2객체를 선언하고 객체를 비교하였을 때, 결과는 어떻게 될까? 답은 당연히 false일 것이다. 그 이유는 둘은 동일 객체가 아니기 때문이다. public class Test { public static void main(String[] arg..