좋은 코드란 무엇일까?
-읽기 쉬운 코드
-중복이 없는 코드
-테스트가 용이한 코드 등등...
프로젝트 팀원 간의 그라운드 룰(Ground rule)
1. Naming
2. Directory
코드 간의 의존성을 고민하자.
합의된 규칙으로 일관성있게 작성하자
적절하게 확장 가능하도록 설계하자
어쩔 수 없는 코드는 주석과 함께 격리하자.
객체 지향 프로그래밍 Objecte Oriented Programming
인간 중심적 프로그래밍 패러다임
OOP로 코드를 작성하면 이미 작성한 코드에 대한 재사용성이 높다
객체 지향적 설계 원칙
단일 책임 원칙: 클래스는 단 하나의 책임을 가져야 하며 클래스를 변경하는 이유는 단 하나의 이유이어야 한다.
개방-폐쇄 원칙: 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다.
리스코프 치환 원칙: 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
인터페이스 분리원칙: 인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 한다.
의존 역전 원칙: 고수준 모듈은 저수준 모듈의 구현에 의존해선 안된다.
RESTful API => 자원을 정의하고 자원에 대한 주소를 지정하는 방법 패턴
REST 6 가지 원칙
Uniform interface
stateless
Caching
Client-Server
Hierearchical system
Code on demand
장점: Open API를 제공하기 쉽다, 멀티플랫폼 지원 및 연동이 용이하다,원하는 타입으로 데이터를 주고 받을 수 있다, 기존 웹 인프라(HTTP)를 그대로 사용할 수 있다.
단점: 사용할수 있는 메소드가 4가지 밖에 없다, 분산환경에는 부적합하다,HTTP 통신 모델에 대해서만 지원한다.
TDD란 무엇인가?
Test-Driven-Development는 매우 짧은 개발 사이클의 반복에 의존하는 소프트웨어 개발 프로세스이다.