본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


Web 지식

웹 개발 기본 공부 2 - URI 설계

반응형

1. URI(Uniform Resource Identifier) 

 

 인터넷에서 특정 자원을 나타내는 주소 값 , 해당 값은 유일 하다 . (응답은 달라질 수 있다.)

 

 예시 ) 

 

  요청 : https://www.ugo.co.kr/resource/sample/1  

  응답 : ugo.pdf , ugo.docx  응답은 여러가지일 수 있다 .

 

2. URL(Uniform Resouce Locator)

 

 인터넷 상에서의 자원, 특정 파일이 어디에 위치하는지 식별 하는 주소 

 요청: https://www.ugo.co.kr/ugo.pdf 특정 위치를 나타낸다 . 

 

 URL은 URI의 하위 개념이다 .

 

 

URI 설계 원칙(RFC-3986)

1.슬래시 구분자 (/) 는 계층 관계를 나타내는데 사용한다 .

 

https://www.ugo.co.kr/resource/sample/1  

 

2.URI 마지막 문자로 ( / )는 포함하지 않는다 .

 

https://www.ugo.co.kr/resource/sample/1/ (X) 

 

3.하이픈(-)은 URI 가독성을 높이는데 사용한다. 밑줄은 사용하지 않는다

 

https://www.ugo.co.kr/resource/sample/1/web-master

https://www.ugo.co.kr/resource/sample/1/web_master(X)

 

4.URI 경로에는 소문자가 적합하다 

 

https://www.ugo.co.kr/resource/SAMPLE/1/web_master (X)

 

5.파일 확자는 URI에 포함하지 않는다. 

 

https://www.ugo.co.kr/resource/sample/1/web-master.jsp(X)

 

6.프로그래밍 언어에 의존적인 확장자를 사용하지 않는다.

 

https://www.ugo.co.kr/resource/sample/1/web-master.do(X)  

 

7.구현에 의존적인 경로는 사용하지 않는다.

 

https://www.ugo.co.kr/servlet/sample/1/web-master.do(X)  

 

8.세션 ID를 포함하지 않는다 . 

 

https://www.ugo.co.kr/servlet/sample/1/web-master?session-id =abcd(X)  

 

9. 프로그래밍 언어의 Method명을 이용하지 않는다 .

 

https://www.ugo.co.kr/sample/1/web-master?action = intro  (X)

 

10. 명사에 단수형 보다는 복수형을 사용해야한다 . 컬렉션에 대한 표현은 복수로 사용

 

https://www.ugo.co.kr/resources/samples/1/web-master  

 

11. 컨트롤러 이름으로는 동사나 동사구를 사용한다 . 

 

https://www.ugo.co.kr/resources/samples/1/web-master/re-order  

 

12. 경로 부분 중 변하는 부분은 유일한 값으로 대체 한다 . PathVariable이라고 한다.

 

https://www.ugo.co.kr/resources/samples/{lesson-id}/web-master/{user-id}  

https://www.ugo.co.kr/resources/samples/1/web-master/100  

 

13. CRUD 기능을 나타내는 것은 URI에 사용하지 않는다.

 

GET : https://www.ugo.co.kr/resources/samples/1/web-master/100/READ (X)

DELETE: https://www.ugo.co.kr/resources/samples/1/web-master/100  (O)

 

14. URI Query Parameter 디자인

 

URI 쿼리 부분으로 컬렉션 결과에 대해서 필터링 할 수 있다 .

 

https://www.ugo.co.kr/resources/samples/1/web-master?chapter=2  

 

URI 쿼리는 컬렉션의 결과를 페이지로 구분하여 나타내는데 사용한다 . 

 

https://www.ugo.co.kr/resources/samples/1/web-master?chapter=2 & page = 0 & size = 10 & sort = asc  

 

15. API에 있어서 서브 도메인은 일관성 있게 사용해야 한다 .

 

https://ugo.co.kr  

https://api.ugo.co.kr 

https://api-ugo.co.kr 

 

16. 클라이언트 개발자 포탈 서브 도메인은 일관성 있게 만든다 .

https://dev-ugo.co.kr 

https://developer-ugo.co.kr 

 

 

반응형