독서(35)
-
(Effective Java) 싱글턴 패턴을 만드는 방법 + 싱글턴 패턴
private 생성자나 열거 타입으로 싱글턴임을 보증하라. 이펙티브 자바 아이템 3에서는 싱글턴에 대해서 간략하게 설명하고 있다. 싱글턴은 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 스프링 사용자들은 싱글턴에 대해서 알고 있을 것이다. 왜냐하면 스프링의 컨테이너가 객체를 싱글턴으로 관리하기 때문이다. 각설하고 싱글턴을 만드는 방식에 대해서 책에서는 2가지를 소개하고 있다. 🧐public static final 필드 방식의 싱글턴 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } public void leaveTheBuilding() { ... } } Elvis.INSTAN..
2022.09.20 -
(Effective Java) 빌더 패턴(Builder) + Lombok Builder
이펙티브 자바에서 빌더 패턴을 소개하고 있다. 스프링을 사용하는 분들 혹은 Gradle에서 Lombok을 쓰는 분들이라면 @Builder, 빌더 어노테이션에 대해서 잘 알고 있을 것이다. Lombok은 다들 아시겠지만, 이 자체가 어떤 새로운 것을 만들어 내는 것이 아닌, 기존의 것을 쉽게 어노테이션만으로 처리할 수 있게끔 만들어 놓은 수단에 불과하다. @Builder 역시 그중에 하나인데, 자바의 빌더 패턴을 살펴봄과 동시에 롬복의 @Builder도 같이 살펴보면 좋을 것 같다. 🧐생성자 쓰지 왜.... 왜 빌더를 쓸까? (생성자 걍 쓰지) 아래 책의 예제 코드를 보자. public class NutirtionFacts { private final int servingSize; private final..
2022.09.20 -
(Effective Java) 생성자 대신 정적 팩터리 메서드를 고려하라
클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자다. 이 외에도 클래스 인스턴스를 반환하는 다양한 방법이 있고, 이 문서에서는 에 나온 정적 팩터리 메서드에 대해서 소개하려 한다. 책에서도 언급했지만 디자인 패턴에 있는 팩터리 메서드와는 다르다. (팩터리 메서드는 OCP를 목적으로 하고 있고, 정적 팩터리 메서드는 클래스 인스턴스 반환을 목적으로 한다.) 먼저 팩터리 메서드의 장점에 대해서 알아보자. 👍 이름을 가질 수 있다 기존의 생성자 코드를 살펴보자. @Getter class Book { private String name; private String author; public Book() {}; public Book(String name, String author) { th..
2022.09.19 -
(함수형 코딩) 1장/ 함수형 사고란 무엇인가?
책을 펴고 1장을 펴면 다음과 같은 챕터에 대한 설명을 볼 수 있다. 이 장에서는 함수형 사고가 무엇인지, 왜 함수형 사고가 더 좋은 소프트웨어를 만들려는 개발자에게 도움이 되는지 설명합니다. 1장을 읽으면 함수형 사고가 무엇인지 알 수 있어야하고, 함수형 사고가 왜 도움이 되는지 설명할 수 있어야한다. 함수형 사고를 알기 전에 먼저 함수형 프로그래밍이란 무엇일까? 🧐 함수형 프로그래밍이란? 함수형 프로그래밍에 대해서 위키피디아를 찾으면 다음과 같이 2가지를 언급하고 있다. 1. 수학 함수를 사용하고 부수 효과를 피하는 것이 특징인 프로그래밍 패러다임. 2. 부수 효과 없이 순수 함수만 사용하는 프로그래밍 스타일 위 2문장을 읽고 수학 함수는 무엇이고 부수 효과는 무엇이며, 순수 함수는 무엇인지가 궁금해..
2022.07.28 -
<실용주의 프로그래머> 서평
이 책을 처음 받아 들고 든 생각은 '프로그래머에게 실용적인 것이 무엇인가'라는 생각이 들었다. 일상 생활에서 실용적인 것은 실생활을 편리하게 해주는 것이 아니겠는가? 이런 관점에서 를 바라본다면, 프로그래머가 행동을 함에 있어서 편리하게 혹은 프로그래머로서의 행동에 도움을 줄 만한 것들이 있을 것이라 생각했다. 그럼 어떤 것이 실용적일까? 1장 실용주의 철학에서 '실용주의 프로그래머는 직면한 문제 너머를 고민한다.' 라는 말이 있다. 큰 맥락에서 더 큰 그림을 보려고 노력하는 것이 실용주의 핵심이라는 것이다. 노력이라는 관점에서 볼때 "왜 직접 바꾸지 않습니까?"라는 p.3에 있는 구절이 와닿았다. 2장 실용주의 접근법에서는 좋은 코드 작성에 대한 접근법에 대해 얘기한다. 그중에서 "ETC는 규칙이 아..
2022.05.11 -
프로그래머의 뇌 서평
"훌륭한 프로그래머가 알아야 할 인지과학의 모든 것"이라는 표지의 문장이 책을 대변하고 있다. 이 책은 단순히 문제를 바라보는 시각에 대해서 얘기하는 것에 그치지 않고, 이를 인지과학적 관점에서 바라본다. 책에서는 코드를 인지하는 인지과학적 관점에서 우리의 프로그래밍에 어떻게 인지과학이 적용되는지, 어떻게 하면 복잡한 코드에 대해 깊이 있게 이해할 수 있는지 등에 대해 소개하고 있다. 🏴인상 깊었던 것 -인지적 관점에서의 코드를 바라볼 때 생기는 문제- 코드를 읽을 때 혼란이 생기는 이유는 지식 부족, 쉽게 찾을 수 있는 정보의 부족, 두뇌의 처리 능력의 부족, 이렇게 세 가지다 - 13p 지식의 부족은 *LTM의 문제이고, 정보의 부족은 *STM의 문제이며, 처리 능력의 부족은 작업 기억 공간..
2022.03.30