본문 바로가기

IT 서적19

[클린 아키텍처] 1부 2장 두 가지 가치에 대한 이야기 👩🏻‍💻 [클린 아키텍처 소프트웨어 구조와 설계의 원칙 - 로버트C.마틴] 을 읽으면서 정리한 글입니다. 읽으면서 기억하고 싶거나 다시 보고 싶은 문구 위주로 정리합니다. 2장 두 가지 가치에 대한 이야기 소프트웨어 시스템은 서로 다른 두 가지 가치 ‘행위 Behavior’와 ‘구조 structure’를 제공한다. 소프트 웨어 개발자는 두 가지 가치를 모두 반드시 높게 유지해야 하는 책임을 진다. 행위 Behavior 소프트웨어의 첫 번째 가치는 바로 행위다. 프로그래머는 요구사항을 구현하고 버그를 수정하는 일이 전부가 아니다. 아키텍처 소프트웨어는 행위를 쉽게 변경할 수 있어야 한다. 변경사항을 적용하는 데 드는 어려움은 변경되는 범위 Scope에 비례해야 하며, 변경사항의 형태 shape와는 관련이 .. 2022. 2. 11.
[클린 아키텍처] 1부 1장. 설계와 아키텍처란? 1부. 1장 설계와 아키텍처란? 👩🏻‍💻 [클린 아키텍처 소프트웨어 구조와 설계의 원칙 - 로버트C.마틴] 을 읽으면서 정리한 글 입니다. 읽으면서 기억하고 싶거나 다시 보고 싶은 문구 위주로 정리합니다. 아키텍처는 시스템을 구체화하는 중요한 설계 결정을 표현하며, 그 결정의 중요도는 변경에 드는 비용으로 측정된다. - 그래디 부티 좋은 아키텍처가 비싸다는 생각이 든다면, 나쁜 아키텍처를 시도해 보라 - 브라이언 푸트와 조셉 요더 아티켁처는 구현과 측정을 통해 증명해야 하는 가설이다. - 톰 길브 빨리 가는 유일한 방법은 제대로 가는 것이다. - 로버트 C.마틴 1부 소개 1장 설계와 아키텍처란? 설계(Design)와 아키텍처(Architecture)는 아무런 차이가 없다. 아티텍처는 저수준의 세부사항과.. 2022. 2. 11.
(클린코드) 5장. 형식 맞추기 5장.형식 맞추기 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야한다. 킴으로 일한다면 팀이 합의해 규칙을 정하고 모두가 그 규칙을 따라야한다. 형식을 맞추는 목적 적절한 행 길이를 유지하라 신문기사 처럼 작성하라 이름은 간단하면서도 설명가능하게 짓는다. 소스파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수록 의도를 세세하게 묘사한다. 마지막에는 가장 저차원함수와 세부내역이 나온다. 개념은 빈 행으로 분리하라 빈 행은 새로운 개념을 시작한다는 시각적 단서다. 세로 밀집도 세로 밀집도는 연관성을 의미한다. 서로 밀접한 코드행은 세로로 가까이에 놓여야한다. 수직거리 변수 선언 변수는 사용하는 위치에 최대한 가까이 선언한다. 인스턴스 변수 클래스 맨 처음에 선언한다. 종속 함수 한 함수가 다.. 2022. 2. 11.
(클린코드) 4장. 주석 4장. 주석 나쁜 코드에 주석을 달지마라. 새로 짜라. - 브라이언 W. 커니핸, P.J. 플라우거 주석은 순수하게 선하지 못하다. 사실상 주석은 기껏해야 필요악이다. 프로그래밍 언어를 치밀하게 사용해 의도를 표현할 능력이 있다면 주석은 거의 필요하지 않으리라. 코드로 의도를 표현하지 못해 (실패를 만회하기 위해) 주석을 사용한다. 주석을 달 때 마다 자신에게 표현력이 없다는 사실을 푸념해야 마땅하다. 주석을 유지보수하기란 현실적으로 불가능해서 오래될수록 완전히 그릇될 가능성도 커진다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 부정확한 주석은 결코 이뤄지지 않을 기대를 심어준다. 진실은 한 곳에만 존재한다. 바로 코드다. 코드만이 자기가 하는 일의 정보를 정확히 제공하는 유일한 출처다. 그러.. 2022. 2. 11.
(클린코드) 3장. 함수 3장. 함수 어떤 프로그램이든 가장 기본적인 단위가 함수다. 이 장은 함수를 잘 만드는 법을 소개한다. 작게 만들어라! 함수를 만드는 첫째 규칙은 ‘작게’다. 함수를 만드는 둘째 규칙은 ‘더 작게’다. 20줄도 길다. 얼마나 짧아야 좋을까? 블록과 들여쓰기 if문/else문/while 문등에 들어가는 블록은 한 줄이어야 한다는 의미다. 이 말은 중첩 구조가 생길만큼 함수가 커져서는 안된다는 뜻이다. 그러므로 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안된다. 그래야 함수는 읽고 이해하기 쉬워진다. 한가지만 해라! 함수는 한가지를 해야한다. 그 한가지를 잘해야한다. 그 한가지만을 해야한다. 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 한다. 단순히 다.. 2022. 2. 11.
(클린코드) 2장. 의미있는 이름 2장. 의미있는 이름 들어가면서 이름을 잘 지으면 여러모로 편하다. 이름을 잘 짓는 규칙을 몇 가지 소개한다. 의도를 분명히 밝혀라 의도가 분명하게 이름을 지으라 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 변수/함수/클래스의 존재이유는? 수행기능은? 사용방법은? int d;//경과 시간(단위: 날짜) int elapsedTimeInDay; int daysSinceCreation; int daysSinceModification; int fileAgeInDays 의도가 들어나는 이름을 사용하면 코드 이해와 변경이 쉬워진다 코드 맥락이 코드 자체에 명시적으로 드러나게하기. 변수에 이름을 잘 붙여서 함축성을 줄이고 코드는 더 명확하게 만들 수 있다. 함수가 하는일을 이해.. 2022. 1. 26.
(클린 코드 - 로버트C. 마틴) 추천사 & 들어가면서, 1장 깨끗한 코드 👩‍💻새해를 맞아 다시 읽어보기로 마음먹은 '클린 코드' 완독하기 바라면서 기록해보고자 한다. 추천사 사소한 곳에서 발휘하는 정직은 사소하지 않다. 신은 세세함에 깃들어 있다. 큰 실무에서 실력을 쌓고 신뢰를 얻으려는 전문가는 먼저 작은 실무부터 실력을 쌓고 신뢰를 얻어야한다. 아주 사소한 것들이 전체의 매력을 깎아먹지 않게 하기위해 깨끗한 코드를 유지하는 것은 중요하다. 5S 정리, 조직, 정렬 Sort 정돈, 단정함, 체계화, Seition 청소, 정리, 광내기 Seiso 청결, 표준화 Seiketsu 생활화, 규율 Shutsuke 작은 것에도 충실한 사람이 큰 것에도 충실하다. 호미로 막을 일을 가래로 막지 마라 일찍 일어나는 새가 벌레를 잡는다 오늘 할 수 있는 일을 내일로 미루지 마라 시 란 영.. 2022. 1. 25.
[책] 코딩인터뷰 완전 분석 -게일 라크만 맥도웰 (1. 면접과정) 서문 면접은 어렵습니다! 구글에서 면접관으로 일하는 동안, 어떤 면접관들은 쉬운 문제를 내는 반면 어떤 면접관들은 어려운 문제를 출제하는 것을 보았습니다. 하지만 이거 아세요? 쉬운 문제를 받는다고 취업이 쉬워지지는 않습니다. 채용 여부는, 문제를 흠결 없이 풀어냈느냐에 좌우되는 것이 아닙니다. 중요한 것은 '다른 지원자보다 나은 답변을 했느냐'입니다. 그러니 어려운 문제를 받았다하더라도 낙담하지 마세요. 다른 사람들에게도 까다롭기는 마찬가지입니다. 열심히 공부하시고, 연습하세요. 행운을 빕니다. - 게일 맥도웰 면접 과정 1. 개요 사전면접 한 두번. 회사에서 치러지는 대면 면접 네 번에서 여섯번정도. 점심식사면접 2. 문제 선정 문제 경향은 면접관에 따라 달려있다. CareeCap.com 같은 곳에서.. 2021. 8. 30.
[책터디] 모던 자바 인 액션 (ch1. 무슨일이 일어나고 있는가?) CHAPTER1 JAVA 8, 9, 10, 11 : 무슨 일이 일어나고 있는가? 자바 8에서 제공하는 새로운 기술 - 스트림 API - 메서드에 코드를 전달하는 기법 - 인터페이스와 디폴트 메서드 * 자바8의 요구사항 : 간결한 코드, 컬티코어 프로세서의 쉬운 활용 * 스트림 API 사용하면 좋은점 에러를 자주 일으키며 멀티코어 cpu 를 이용하는 것보다 비용이 훨씬 비싼 키워드 synchronized를 사용하지 않아도 된다. * 왜 언어가 진화하는가 1. 자바가 멀티코어 병렬성을 더 쉽게 이용할 수 있도록 진화하는 과정 2. 코드를 메서드로 전달 하는 기법이 강력한 이유와 새로운 프로그래밍의 도구인 이유 3. 스트림 API가 강력한 이유와 새로운 프로그래밍의 도구인 이유 4. 디폴트 메서드, 인터페시으.. 2020. 2. 13.