좋은 코드란?
읽기 쉬운코드, 중복이 없는 코드, 테스트가 용이한 코드...
한국어로 주석을 상세히 작성해두면 코드를 읽지 않아도 코드가 무엇을 하는지 빠르고 쉽게 파악.
테스트 코드를 작성해두면 심리적 안정감도 생기고 리팩토링에 자신감도 생김.
동일한 로직을 수행하는 코드는 별도의 함수로 빼두고 재사용.좋지 않은 코드를 줄이기
추출이 아닌 추상화, 삭제하기 쉬운 코드와 삭제하기 어려운 코드의 분리, 일관성 있는 코드, 확장성 있는 코드
따라서,
- 코드 간의 의존성을 고민하자.
- 합의된 규칙으로 일관성있게 작성하자.
- 적절하게 확장 가능하도록 설계하자.
- 어쩔 수 없는 코드는 주석과 함께 격리하자.
인간 중심적 프로그래밍 패러다임: 현실 세계를 프로그래밍으로 옮겨와 프로그래밍하는 것.
프로그래밍에서 필요한 데이터를 추상화시켜 행위(Method)와 상태(Attribute)를 가진 객체를 만들고 그 객체들간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍방법.
4가지 특징
캡상추다: 캡슐화, 상속, 추상화, 다형성
특징 | 설명 |
---|---|
캡슐화 | 독립적으로 역할 수행하기 위해 필요한 데이터와 기능을 하나로 묶은 것. |
상속 | 상위 개념의 특징을 하위 개념이 물려받는 것. |
추상화 | 객체들의 공통적인 특징을 모아 하나의 클래스로 다룸. |
다형성 | 하나의 타입으로 여러가지 참조변수를 사용. |
장점
단점
1) URI는 정보의 자원을 표현. (리소스명은 동사보다는 명사를 사용)
2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현
GET /members/show/1 (x)
GET /members/1 (o)
GET /members/insert/2 (x) - GET 메서드는 리소스 생성에 맞지 않습니다.
POST /members/2 (o)
CRUD
METHOD | 역할 |
---|---|
POST | POST를 통해 해당 URI를 요청하면 리소스를 생성합니다. |
GET | GET를 통해 해당 리소스를 조회합니다. 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져온다. |
PUT | PUT를 통해 해당 리소스를 수정합니다. |
DELETE | DELETE를 통해 리소스를 삭제합니다. |
2) URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
3) 하이픈(-)은 URI 가독성을 높이는데 사용
4) 밑줄(_)은 URI에 사용하지 않는다.
5) URI 경로에는 소문자가 적합하다.
6) 파일 확장자는 URI에 포함시키지 않는다.
/리소스명/리소스 ID/관계가 있는 다른 리소스명
ex) GET : /users/{userid}/devices (일반적으로 소유 ‘has’의 관계를 표현할 때)
ex) GET : /users/{userid}/likes/devices (관계명이 애매하거나 구체적 표현이 필요할 때)
Document는 단순히 문서로 이해해도 되고, 한 객체.
Colllection은 문서들의 집합, 객체들의 집합.(Colllection은 복수로 사용)
모두 리소스라고 표현할 수 있으며 URI에 표현
상태코드 | 설명 |
---|---|
200 | 클라이언트의 요청을 정상적으로 수행함 |
201 | 클라이언트가 어떠한 리소스 생성을 요청, 해당 리소스가 성공적으로 생성됨 (POST를 통한 리소스 생성 작업 시) |
400 | 클라이언트의 요청이 부적절 할 경우 사용하는 응답 코드 |
401 | 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을 때 사용하는 응답 코드 (로그인 하지 않은 유저가 로그인 했을 때, 요청 가능한 리소스를 요청했을 때) |
403 | 유저 인증상태와 관계 없이 응답하고 싶지 않은 리소스를 클라이언트가 요청했을 때 사용하는 응답 코드 (403 보다는 400이나 404를 사용할 것을 권고. 403 자체가 리소스가 존재한다는 뜻이기 때문에) |
405 | 클라이언트가 요청한 리소스에서는 사용 불가능한 Method를 이용했을 경우 사용하는 응답 코드 |
301 | 클라이언트가 요청한 리소스에 대한 URI가 변경 되었을 때 사용하는 응답 코드 (응답 시 Location header에 변경된 URI를 적어 줘야 합니다.) |
500 | 서버에 문제가 있을 경우 사용하는 응답 코드 |