프로그래밍 7

[책] 코딩도 하고, 사장도 합니다. 리뷰

이 책은 제이펍 리뷰 이벤트 신청을 받기 전에 찜해놓았던 책인데 마침 리뷰이벤트에 이 책이 나와서 얼른 신청했었습니다. 안드로이드 개발, 중소기업 전산실 근무, 웹, 서버개발 등을 하며 개발자로 일한지 13년차가 되었고, 30대 중반이 되니 이 후의 삶을 생각하며 커리어에 대한 고민이 있었습니다. 이럴 때 이런 인생의 선배의 에세이를 보았으니 찜을 하지 않을 수 없었고, 책을 받자 마자 거의 한숨에 다 읽었었습니다. 이 책은 유튜버나 유명 강의 사이트에 나오는 스타개발자의 이야기는 아닙니다. 하지만, 나와 비슷하게 묵묵히 그냥 개발자로써의 삶을 산 선배개발자의 진솔한 이야기가 담겨 있습니다. 아래에 사진으로 첨부된 작가님의 여는 글에 보면 왜 이 책을 쓰게 되었고 목적이 무엇인지, 또 어떤 사람들이 도움..

Review/책 2024.02.16

[책] 쏙쏙 들어오는 함수형 코딩 서평

이 책은 제목에서 알 수 있다시피, 함수형 프로그램을 설명하는 흔한 책과 같이 느껴져서 처음 나왔을 때에는 별로 관심을 두지 않다가 SNS에서 팔로우하고 있는 개발자의 추천으로흥미를 가지고 책을 사서 읽게된 책이며, 책을 읽는 가운데 제이펍 리뷰 진행 이벤트를 발견하고 신청해서 책을 받기도한 책이다. 개인적으로 가지고 있는 다른 함수형 프로그래밍을 설명하고 교과서처럼 파고드는 책과 달리 이 책은 이야기 형식으로 실무적으로 풀어간다. 그래서, 잘 읽히고 수학적인 용어가 난무하지 않는다. 따라서 쉽다. 그리고, 자바스크립트를 예제코드로 작성되어 있는데, 함수형 프로그래밍을 하기 쉽지 않은 어로 프로그래밍하면서 함수형 프로그래밍하기 부족한 부분들을 어떻게 할지 고민할 수 있기 때문에 이 언어를 택했다고 저자..

Review/책 2022.08.24

팩토리 패턴(Factory Pattern) 이란?

이번 시간에는 팩토리 패턴(Factory Pattern)에 대해서 알아보도록 하겠습니다. 원칙 : 바뀔 수 있는 부분을 찾아내서 바뀌지 않는 부분하고 분리시켜야 한다. new를 사용하는 것은 구상클래스의 인스턴스를 만드는 것입니다. 구상클래스를 바탕으로 코딩을 하면 나중에 코드를 수정해야할 가능성이 높아지고, 유연성이 떨어지게 됩니다. 그 이유는 바로 변화에 약하기 때문입니다. 인터페이스에 맞춰서 코딩을 하면 시스템에서 일어날 수 있는 여러가지 변화를 이겨낼 수 있습니다. 이렇게 구상클래스의 인스턴스를 만드는 부분을 찾아서 분리/캡슐화 하기 위해서 바로 팩토리 패턴을 씁니다.팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만..

스테이트 패턴(State Pattern) 이란?

이번 시간에는 스테이트 패턴(State Patter)에 대해서 알아보겠습니다. 사탕 뽑기 기계 프로그램을 구현한다고 가정하면 사탕뽑기 기계는 '동전없음', '동전있음', '상품배출', '상품품절' 상태를 가질 것입니다.그리고, 사탕뽑기의 각 상태는 아래와 같은 행위를 통해서 다른 상태로 변이하게 됩니다. 이 행위들과 상태를 코드로 구현하면 아래와 같이 구현할 수 있을껍니다. public class GumBallMachine { final static int SOLD_OUT = 0; final static int NO_QUARTER = 1; final static int HAS_QUARTER = 2; final static int SOLD = 3; private int numberOfGumBall = 0;..

이터레이터 패턴 (Iterator Pattern) 이란?

2019년은 리펙토링 및 소스코드의 품질, 설계 공부에 초점을 맞춰서 책을 읽고, 공부를 하고 있습니다.그 중 Head First Design Patterns 책을 보고 패턴에 대해 공부한 내용들을 조금씩 정리해서 시리즈로 꾸준히 올려보도록 하겠습니다. 금일은 이터레이터(iterator) 패턴입니다. 이터레이터(iterator) 패턴은 컬렉션 구현방법을 노출 시키지 않으면서도 그 집합체 안에 들어 있는 모든 항목에 접근할 수 있게 해주는 방법을 제공해 줍니다. 이터레이터(iterator) 패턴을 사용하면 객체안의 항목 또는 컬렉션 객체 안에 들어있는 모든 항목에 접근하는 방식을 통일할 수 있습니다. 이렇게 접근 방식을 통일하게 되면 어떤 종류의 객체에 대해서도 사용할 수 있는 다형적인 코드를 만들 수 있..

주석을 잘쓰는 방법 : 주석에 담아야하는 내용 (2/2)

이 글은 아래 글에서 이어지는 글이며, '읽기 좋은 코드가 좋은 코드다 - The Art of Readable Code' 에서 발췌했습니다. 이전글 : 2017/12/19 - [Study] - 주석을 잘쓰는 방법 : 주석에 담아야하는 내용 (1/2) 아래 내용들은 주석에 들어갈 내용을 찾아낼 때 유용하게 쓰일 수 있다. 코드를 읽는 사람의 입장이 되어라1. 나올것 같은 질문예측하기 작성한 코드를 읽고 뭐하는 코드인지 궁금해 할 것 같은 부분에 주석을 적는다.struct Recorder {vector data;...void Clear() {// 벡터가 메모리를 반납하도록 강제한다. ("STL swap trick" 을 보라.) -> 코드를 보고 왜 data.clear()를 호출하지 않고 빈데이터와 swap ..

주석을 잘쓰는 방법 : 주석에 담아야하는 내용 (1/2)

업무를 하면서 프로그램을 짜다가 주석을 쓸 때가 많습니다. 그런데, 이 때 이 후에 내가 보았을 때 도움이 되거나 동료가 이 코드를 보았을 때 도움이 되도록 잘 적으려면 어떻게 무엇을 적어야할 지 막막할 때가 많습니다. 책을 읽다가 이런 상황에서 도움을 줄만한 내용이 있어 발췌하여 정리합니다. 아래 내용은 '읽기 좋은 코드가 좋은 코드다 - The Art of Readable Code' 의 주석에 담아야하는 대상 챕터를 읽고 정리한 내용 입니다. 주석의 목적은 코드를 읽는 사람이 코드를 작성한 사람만큼 코드를 잘 이해하게 돕는데 있다.따라서 가치없는 주석도 있다. 적지 말아야할 주석1. 코드에서 빠르게 유추할 수 있는 내용은 주석을 달지말라// 주어진 이름과 깊이를 이용해서 서브르리[h1]에 있는 노드를..