2월, 2017의 게시물 표시

OOD -Object Oriented Design

5대 원칙 1. SRP (The single Responsibility Principle) 2. OCP ( The open - closed principle) 3. LSP (Liskov Substitution Principle) 4. ISP (Dependency Inversion Principle) 5. DIP (Interface Segregation Principle) OOD 란 객체지향 디자인이다. "Class의 interface를 만드는 과정은 객체 지향 디자인이라는 가정을 거쳐 이루어진다." 1. SRP: 단 하나의 책임 운칙 - 어떤 클래스를 변경해야할 이유는 오직 하나뿐이어야 한다. 2. OCP: 개방 - 폐쇄 원칙- 클래스를 변경하지 않고도 어떤 클래스의 환경을 변경할 수 있어야 한다. 3. LSP: 리스코프 교체 원칙 - 서브 타입은 언제나 자신의 기반 타입으로 교체할수 있어야 한다. - 유도된 클래스의 메소드를 퇴화시키거나 불법으로 만드는 일을 피하라. 기반 클래스의 사용자는 그 기반 클래스에서 유도된 클래스에 대해 아무것도 알 필요가 없어야 한다. 4. DIP: 의존 관계 역전 원칙 - 어떤 객체으 사용자에게 그 사용자한데 필요한 메소드만 있는 인터페이스를 제공하라. 5. ISP: 인터페이스 격리 원칙 - 어떤 객체의 사용자에게 그 사용자한데 필요한 메소드만 있는 인터페이스를 제공하라.

Micro Service Architectures

http://zigispace.net/884

방법론 - Agile Development Methodology

솔직히 몇번 해 보니 맘에는 안 듣다. 역시 내 스타일은 아니다. 하지만 대세인 만큼 안 할수가 없으니 정리를 해 보기로 한다. 참고 페이지:    http://agilemethodology.org/ http://flearning-blog.tistory.com/230 Agile Development  (민첩한 소프트웨어 개발 방식) 전통적인 SW 개발방식인 폭포수 (waterfall) 개발 방식의 단점을 보완 (동의 안함) 즉 사용자, 개발자, 테스터가 한 조를 이뤄 사용자 시나리오 (user story)를 개발. Step1: 팀 구성원들이 모여서 무엇을 개발할것인지 회의 한다. (scrum) 진행한일, 진행중인 일, 진행해야할 일에 대해 리스트 작성후 체크. Step2: 구현할 기능을 나누고 언제까지 작업할지 우선순위를 선정한다. 이것을 위해 진행사항을 바로바로 기록하고 공유할 위키 시스템이 필요 (trello, slack) Step3: 주기적으로 구현된 부분을 협의하고 토론한다. 즉 Agile은 프로젝트의 life cycle 동안 반복적인 개발을 하며 형식적인 절차 최소화를 했다. 즉 단위 테스트와 비슷한 기능단위로 개발하고 검증하고 테스트하고 서비스 하기 인듯 하다. WaterFall 개발방식 단계: 요구사항 분식 - 기획 - 디자인 - 코딩 - 테스트 - 릴리즈의 단계를 지님. 완벽하게 한 단계가 끝난다음 다음으로 넘어가기 때문에 에러를 줄일수는 있으나 시간이 많이 소비됨.