도서

도서/리뷰

[도서 리뷰] 만들면서 배우는 클린 아키텍처

취업 준비 과정에서 아직 필요성을 크게 느끼지 못해 클린 아키텍처를 적용해 본 경험이 없었습니다. 하지만 요즘 신입 채용 공고를 보면 드문 드문 아키텍처에 관한 우대사항도 보이고, 많은 기업들의 블로그,유튜브 영상을 보면 아키텍처에 관한 부분이 많은 부분을 차지하고 있다라고 느꼈습니다. 당장 제가 사용해볼만한 부분은 아니라고 생각하지만, 이번에 '만들면서 배우는 클린 아키텍처'를 읽으며 주로 많이 사용해왔던 레이어드 아키텍처와 책에서 소개하는 클린 아키텍처의 차이를 비교해가며 공부할 수 있었습니다. 책을 통해 서비스 레이어가 클린 아키텍처에서는 유스케이스로 대체되는 등 각 계층의 역할과 규칙을 이해할 수 있었습니다. 정보 저자 : 톰 홈버그 옮긴이 : 박소은 감수 : 조영호 한줄평 : 실제 예제 프로젝..

도서/리뷰

[도서 리뷰] 가상 면접 사례로 배우는 대규모 시스템 설계 기초1

최근 취업 준비를 하며 면접도 보러오는 등, 더디지만 조금의 발전을 하고 있다고 스스로 느끼고 있습니다.개인 프로젝트를 프론트부터 배포까지 A to Z 진행을 해보는 것은 저에게 큰 도움이 되었고, 하나의 서비스를 혼자서 진행해보니 시스템 설계에 관해서도 관심이 많이 갔습니다.그러던 중 꼭 읽고 싶어서 샀지만 아직 와닿지가 않아 묵혀 두었던 '가상 면접 사례로 배우는 대규모 시스템 설계 기초1' 을 다시 꺼내 읽었습니다. 정보 저자 : 알렉스 쉬 옮긴이 : 이병준 한줄평 : 여러가지 시스템 설계 디자인을 가볍게 알아볼 수 있는 책 읽으면 좋을 독자 : 프로젝트를 몇번 해봤고, 단순히 API만 짜본 것이 아니라 시스템 설계에 대해서 고민을 해본 독자들 (반대로 기본적인 API 구성만 해본 독자는 당장 와..

도서/리뷰

[도서 리뷰] 이것이 취업을 위한 백엔드 개발이다 with 자바

최근 취업 준비에 박차를 가하고 있다. 공부를 하며 이런 저런 기술도 써보았습니다. 쉬운 기술, 어려운 기술, 트렌디한 기술등등 여러 기술을 접하고 적용해보는 경험을 했다. 하지만 취업을 앞두고 면접또한 준비를 해야하는 상황이었는데, 자바와 웹 기술에 대한 전반적인 기본기를 한 번더 빠르게 다지고 싶은 마음이 있었다. 그러다 한빛 미디어의 '이것이 취업을 위한 백엔드 개발이다' 라는 책을 알게 되었고 구성과 내용이 너무 알차서 개발자로 취업을 희망하는 취준생에게 소개하고자 한다. 정보 출판사 : 한빛 미디어 저자 : 이준형 한줄평 : 제목 그대로 취업을 앞둔 백엔드 개발자. 특히 자바 개발자들이 보면 이 한 권(?)으로 개념을 다시 잡을 수 있는 책 전반적인 구성 책의 전체적인 목차등은 도서 사이트에서도..

도서/정리

[이펙티브 자바] 아이템21. 인터페이스는 구현하는 쪽을 생각해 설계하라

아이템21. 인터페이스는 구현하는 쪽을 생각해 설계하라 자바 8 디폴트 메서드 (Default Method) 자바 8 전에는 기존 구현체를 깨뜨리지 않고는 인터페이스에 메서드를 추가할 방법이 없었다. 인터페이스에 메서드를 추가하면 보통은 컴파일 오류가 나는데, 추가된 메서드가 우연히 기존 구현체에 이미 존재할 가능성은 아주 낮기 때문이다. 자바 8에 와서 기존 인터페이스에 메서드를 추가할 수 있도록 디폴트 메서드가 생겼다. 디폴트 메서드의 문제점 디폴트 메서드를 선언하면, 그 인터페이스를 구현한 후 디폴트 메서드를재정의하지 않은 모슨 클래스에서 디폴트 구현이 쓰이게 됨으로, 모든 기존 구현체들과 연동되지 않을 수 있는 문제가 발생한다. 자바 8부터는 주로 람다를 활용하기 위해서 다수의 디폴트 메서드가 추..

도서/정리

[이펙티브 자바] 아이템20. 추상 클래스보다는 인터페이스를 우선하라

아이템20. 추상 클래스보다는 인터페이스를 우선하라 자바가 제공하는 다중 구현 메커니즘은 인터페이스와 추상 클래스, 이렇게 두 가지다. 추상 클래스 vs 인터페이스 자바 8부터는 인터페이스도 디폴트 메서드를 제공할 수 있게 되어, 두 방식 모두 인스턴스 메서드를 구현 형태로 제공할 수 있다. 둘의 가장 큰 차이는 추상 클래스가 정의한 타입을 구현하는 클래스는 반드시 추상 클래스의 하위 클래스가 되어야 한다는 점이다. 즉, 추상 클래스는 좀 더 상세한 구현과 필드를 가질 수 있지만, 인터페이스와 달리 다중 상속은 불가능 하다는 점이다. 비슷한 역할을 하는듯 하지만, 인터페이스는 추상 클래스에 비해 다양한 장점이 있다. 기존 클래스에 손쉽게 새로운 인터페이스를 구현해 넣을 수 있다. 인터페이스는 믹스인(mi..

도서/정리

[이펙티브 자바] 아이템17. 변경 가능성을 최소화하라

아이템17. 변경 가능성을 최소화하라 불변 불변 불변!! 불변 클래스 한 줄 요약 인스턴스 내부 값을 수정할 수 없는 클래스를 말한다. 불변 클래스는 생성될 때 불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. 불변 클래스는 가변 클래스보다 설계하고 구현하고 사용하기 쉬우며, 오류가 생길 여지도 적고 훨씬 안전하다. 불변 클래스의 장점 가변 클래스보다 설계하고 구현하고 사용하기 쉽다. 단순하기 때문이다. 상태가 가변한 인스턴스는, 동일한 인스턴스를 활용하는 곳이 많아질수록 오류의 가능성이 늘어난다. 내가 사용하려던 인스턴스의 상태와 동일한지 확인을 하지 않는다면, 원하는 동작을 보장받을 수 없다. 불변 객체는 근본적으로 Thread Safe 하며 따로 동기화할 필요 ..

도서/정리

[이펙티브 자바] 아이템16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라

아이템16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 종종 인스턴스 필드들을 모아놓는 일 외에는 아무 목적도 없는 퇴보한 클래스를 작성하려 할 때가 있다. 퇴보한 클래스는 public이어서는 안된다. class Point { public double x; public double y; } Point 클래스의 x, y 값은 아무곳에서나 접근 가능하고 그 결과 x, y에 대한 관리 책임은 Point가 가지고있지 않는다. 이런 클래스의 단점은 아래와 같다. 데이터 필드에 직접 접근할 수 있어 캡슐화의 이점을 제공하지 못한다. API를 수정하지 않고는 내부 표현을 바꿀 수 없다. 불변식을 보장할 수 없고 외부에서 필드에 접근할 때 부수 작업을 수행할 수도 없다. 철저한 객체 지..

도서/정리

[이펙티브 자바] 아이템15. 클래스와 멤버의 접근 권한을 최소화하라

아이템15. 클래스와 멤버의 접근 권한을 최소화하라 어설프게 설계된 컴포넌트와 잘 설계된 컴포넌트의 가장 큰 차이는 뭘까? 바로 클래스 내부 데이터와 내 부 구현 정보를 외부 컴포넌트로부터 얼마나 잘 숨겼느냐이다. 정보 은닉의 장점은 무엇이 있을까 시스템 개발 속도를 높인다. 여러 컴포넌트를 병렬적으로 개발할 수 있기 때문이다. 시스템 관리 비용을 낮춘다. 각 컴포넌트를 더 빨리 파악하여 디버깅 할 수 있기 때문이다. 다른 컴포넌트로 교체하는 부담도 적기 때문이다. 소프트웨어 재사용성을 높인다. 외부에 거의 의존하지 않고 독자적으로 동작할 수 있는 컴포넌트라면 그 컴포넌트와 함께 개발되지 않은 낯선 환경에서도 유용하게 쓰일 가능성이 크기 때문이다. 큰 시스템을 제작하는 난이도를 낮춰준다. 시스템 전체가 ..

맹수호빵
'도서' 카테고리의 글 목록