일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- Front-End
- 리액트
- context api
- 코딩
- 자바스크립트
- 함수형
- schema-first
- React
- vue.js
- JavaScript
- Ramda.js
- apollo client
- react.js
- goorm.io
- Funtional programming
- VUE
- VanillaJS
- It
- graphql
- ELECTRON
- Node.js
- angular
- 프론트엔드
- 프로그래밍
- 개발
- 디자인패턴
- code-first
- Programming
- ECMAScript6
- Design Pattern
목록2019/04 (5)
공부하는 블로그
#12 디자인 원리 내 나름대로 잘 짠 코드가 아닌 디자인 원리가 적용된 코드. 이는 유지 보수가 용이하고, 유연하고, 확장성이 좋다. OCP, 개방 폐쇄 원칙 (기존 코드가) 수정에는 닫혀있고, 확장에는 열려 있는 코드. 스타크래프트로 생각해보자면, 클래스가 있는데, 시민 자체는 변경하지 않고, 다른 유닛으로 확장하는 것으로 생각할 수 있겠지? class 테란시민 extends 마린 {} 등의 코드로 확장할 수 있겠다. 앞서서 살펴본 악기 상점 프로그램을 기억해보자. InstrumentSpec 클래스는 기저 추상 클래스였고, 이를 확장해서 GuitarSpec, MandolinSpec 등이 matches() 메서드에 구현을 했다. InstrumentSpec은 수정에는 닫혀있고, 확장에는 열려있다고 생각할..
#11 - 아키텍쳐 우리는 큰 문제를 작은 기능들의 조각으로 나누었고, 작은 조각에 대해서는 해결 방법을 알고 있다. 그러나 유스케이스 다이어그램과 특징 리스트, 그 외에도 고려해야 할 사항이 많다. 처음에 우리는 무엇을 해야할까? 당연하게도 요번 챕터 주제와 같이 아키텍쳐가 필요하다. 아키텍쳐는 시스템의 분할, 나뉜 부분들 사이의 연결과 상호 작용 메커니즘, 그리고 시스템의 디자인에 사용된 원리와 결정 사항들을 담고 있는 시스템의 구조를 말한다. 아키텍쳐는 디자인의 구조이고, 프로그램의 가장 중요한 부분들과 그들 사이의 관계를 명확히 보여주며, 뒤죽박죽 복잡한 내용을 잘 정리된 프로그램으로 바꾸는데 도움을 준다. 우리가 1장에서 말했던 를 여기서도 적용 가능하다. 기능 첫째 단계는 이다. 특징 리스트를..
본 블로깅은 Head first OOAD: 세상을 설계하는 객체지향 방법론 (한빛미디어) 책을 Typescript 문법으로 전환하며 공부하는 글입니다. 글을 읽기 전에, 광고 배너 한번씩만 클릭 부탁드립니다. 블로그 운영에 큰 보탬이 됩니다 :) 그동안 소프트웨어 디자인을 함께 공부했지만, 사실 실제 프로젝트는 5~10개 정도의 클래스로는 어림도 없다. 거대한 프로그램을 만드려면 어떻게 해야할까? 작은 문제를 풀어가는 방식과 마찬가지로, 큰 문제도 해결할 수 있다. 우리는 앞서 좋은 프로그램을 만드는 3단계를 배웠다. 이는 규모가 작건 적건 동일하게 적용된다. 나의 SW가 고객이 원하는 기능을 하게 하라 객체지향의 기본 원리를 적용해 SW를 유연하게 하라 유지보수와 재사용이 쉬운 디자인을 위해 노력하라 ..
#9 좋은 디자인 = 유연한 소프트웨어 : 변하지 않는 것은 없다 (2) 본 블로깅은 Head first OOAD: 세상을 설계하는 객체지향 방법론 (한빛미디어) 책을 Typescript 문법으로 전환하며 공부하는 글입니다. 글을 읽기 전에, 광고 배너 한번씩만 클릭 부탁드립니다. 블로그 운영에 큰 보탬이 됩니다 :) 프로그램을 변경할 때마다 모든 코드의 부분을 뜯어고치는 일은 굉장히 짜증나고 성가신 일이다. 나는 제왕적 사고방식에 찌들어 있던 사람이다보니, 이런 일이 빈번했다. 그러던 중 소프트웨어를 유연하고 튼튼하게 만들 방법은 없을까? 하는 생각이 든다. 객체지향이 어떻게 프로그램을 유연하게 만들까? 어떻게 높은 응집도가 결합도에 도움이 되는지도 이 글을 통해서 공부해본다. 악기 검색 프로그램을 돌..
#8 좋은 디자인 = 유연한 소프트웨어 : 변하지 않는 것은 없다 본 블로깅은 Head first OOAD: 세상을 설계하는 객체지향 방법론 (한빛미디어) 책을 Typescript 문법으로 전환하며 공부하는 글입니다. 글을 읽기 전에, 광고 배너 한번씩만 클릭 부탁드립니다. 블로그 운영에 큰 보탬이 됩니다 :) 우리가 #1~#4에 걸쳐서 보았던 기타 상점 프로그램으로 다시 돌아가본다. 고갱님의 기타 상점 사업이 번창해서 이제는 "현악기" 상점으로 진화를 하게 된다. 축하한다. 🎉 만돌린이라는 악기를 취급할 예정이라고 하는데, 현재 프로그램에서 고갱님이 만돌린을 취급할 수 있게 만드려면 어떻게 해야할까? 아래는 클래스 다이어그램이 있다. 이제 만돌린을 검색할 수 있게 변경해보자. 여기서 Instrument..