웹(Web)
- 클라이언트(Client) : 일반적으로 접속자와 동일한 의미를 가진다. 넓은 의미에서는 요청을 보내는 모든 주체를 클라이언트라고 한다.
- 서버(Server) : 서비스를 제공하는 주체이다. 클라이언트의 요청에 따라 적절한 응답을 돌려준다. 네이버, 카카오 등 모두가 서버의 의미를 가지고있다.
- 요청(Request) : 클라이언트가 서버로 보내는 요청을 의미한다. 요청은 크게 아래의 구성요소로 되어 있다.
▪ 프로토콜(Protocol) : HTTP 혹은 HTTPS(SSL, Secure Sockets Layer)
▪ 주소(URL, Address) : 요청을 보내는 경로
▪ 방식(Method) : 요청을 보내는 방식. 자세한 내용은 후술한다.
▪ 헤더(Header) : 요청에 대한 명세. (브라우저 정보 등을 포함한다.)
▪ 페이로드(Payload) : 요청에 함께 실어보낼 데이터를 의미한다.
- 요청 방식(Request Method) :
▪ GET : 데이터를 압축하지 않고, 요청에 실어보낼 데이터가 주소에 노출된다. form 태그에서 지원한다. 브라우저 주소창에 주소를 적고 요청을 보내면 해당 요청 방식을 이용한다.
▪ POST : 데이터를 압축하기도 하고, 요청에 실어보낼 데이터가 주소에 노출되지 않는다. form 태그에서 지원한다. 주로 로그인, 회원가입, 글쓰기 등 실질적으로 데이터가 서버로 넘어갈 때 사용하는 요청 방식이다.
C(Create)나, U(Update)에 사용한다. 간혹, D(Delete)에 사용하기도 한다. (단순 페이지 표시를 제외한 나머지 목적으로 사용.)
▪ PUT : 서버에 데이터를 C 혹은 U 하기위해 사용한다. form 태그에서 지원하지 않으므로 XHR(XML Http Request)에서 사용한다.
▪ PATCH : 서버에서 데이터를 R 하기 위해 사용한다. form 태그에서 지원하지 않으므로 XHR(XML Http Request)에서 사용한다.
▪ HEAD : 생략
▪ OPTION : 생략
▪ TRACE : 생략
- 응답(Response) : 클라이언트의 요청에 따라 서버가 만들어내 클라이언트로 다시 돌려주는 행위 혹은 그러한 것을 의미한다.
- 응답코드(Response Code 혹은 상태 코드, Status Code) :
▪ 200 : OK, 요청에 대한 응답이 정상적으로 완료되었음을 의미한다. 주로, 200이상 300미만의 상태코드에 대해 정상적인 응답이 나갔다고 판단한다.
▪ 400 : Bad Request, 요청에서 요구하는 요청 규격을 클라이언트가 일부 혹은 전체 누락하였다는 의미이다. 로그인 시 이메일과 비밀번호를 둘 다 입력해야 하는데, 둘 중 하나 이상을 누락하였다는 의미
▪ 403 : Forbidden, 해당 요청에 대한 접근 권한이 없거나, 거절되었을 때 사용하는 상태코드이다.
▪ 404 : Not Found, 해당 요청에 대한 서버 로직(맵핑) 혹은 리소스가 존재하지 않는다는 의미이다.
▪ 405 : Method Not Allowed, 해당 요청에 대한 요청 방식이 받아들여질 수 없다는 의미이다.
▪ 500 : Interval Server Error, 요청한 로직을 처리하는 도중 서버 내부에서 오류가 발생하였다는 의미이다.
- 아파치 톰캣(Apache Tomcat) : 자바 언어를 이용하여 웹 개발을 쉽게 할 수 있도록 만든 웹 서버(정확히는 WAS)이다. 결론적으로 톰캣은 JSP(Java Servlet Page)로 운영되나 그 자리를 스프링과 스프링부트가 대체하고 있다. 즉, Spring 혹은 Spring Boot로 만든 웹 어플리케이션은 JSP로 해석되며 톰캣이 실행시킨다.(결과적으로는)
- 컨트롤러(Controller) : 요청을 받고 응답을 돌려주는 맵핑을 정의하기 위해 사용한다. 이가 가지는 메서드의 이름은 요청 방식(Request Method)으로 시작하는 것이 좋은데, get, post, delete, put, patch 등의 단어로 시작하도록 만드는 것이 좋다는 뜻
- 서비스(Service) : 주요 로직을 처리하기 위해 사용한다. 로직을 포함하는 메서드는 트랜잭션(Transaction) 단위로 작성하는 것이 좋은데, '송금' 로직을 구현하기 위해 '입금', '출금' 두 개의 메서드로 분리하는 것이 아닌 '송금' 하나의 메서드로 만드는 것이 좋다는 뜻
- 매퍼(Mapper) 혹은 DAO(Data Access Object) : 로직 처리 시, 데이터베이스에 접근하기 위해 사용한다. 이가 가지는 메서드들의 이름은 SQL 키워드로 시작하는 것이 좋은데, 가령, insert, select, update, delete 등의 단어로 시작하도록 만드는 것이 좋다는 뜻
'웹개발 > 기타' 카테고리의 다른 글
[웹개발] CSS 밑줄 긋는 효과 (0) | 2023.02.10 |
---|---|
[웹개발] thymeleaf 를 이용한 공통 Header 만들기 (0) | 2023.02.09 |
[웹개발] Mybatis (0) | 2023.02.09 |
[웹개발] 어노테이션 (Annotation) (0) | 2023.02.09 |
[웹개발] intelliJ 와 GitHub 연동 (0) | 2023.02.09 |