[Design Go] 빌더 패턴
·
소프트웨어 공학
들어가기에 앞서... 지난 글에서 언급했듯 해당 시리즈의 이번 글부터는 각 디자인 패턴에 대해 설명하면서 Go언어로 만들어보도록 하겠다. 책 'GoF의 디자인 패턴'에서는 생성 패턴들을 설명할 때 아래의 미로를 만드는 예제를 사용했다. 이 시리즈도 해당 예제를 이용할 예정이다. package main import "fmt" type Direction int const ( East Direction = iota West South North ) type MapSite interface { Enter() } type Room interface { MapSite GetSide(d Direction) MapSite SetSide(d Direction, s MapSite) GetNo() int } type roo..
[Design Go] 좋은 코드와 디자인 패턴
·
소프트웨어 공학
좋은 코드? 농부는 좋은 작물을 얻기 위해 노력한다. 책 저자는 좋은 책을 쓰기 위해 노력한다. 프로그래머는 좋은 코드를 짜기 위해 노력한다. 그렇다면 '좋은 코드'라는 것은 대체 무엇일까? 좋은 코드란? 다양한 의견이 있을 수 있다. 일단 성능이 좋을 수록 좋은 코드이다. 블로그 이름처럼 단순하고 깔끔한 코드는 대부분 좋은 코드이다. 이런 맥락으로 가독성이 높은 코드는 좋은 코드이다. 하지만, 혼자서든 여러 사람과 함께든 작업을 이어가다 보면, 유지보수하기 쉬운 코드는 좋은 코드의 필요 조건이라는 것을 알게 된다. 왜 유지보수하기 쉬운 코드인가? 프로젝트를 진행하다 보면 당연히 처음에는 새로운 기능을 추가하는 데에 시간을 많이 쓰게된다. 그렇게 그 프로젝트의 기본적인 요구 기능들이 완성되고 배포까지 완..