JUST GO

[공통] 스프링 부트 본문

Spring Boot/학습내용

[공통] 스프링 부트

root_go 2022. 10. 24. 15:43

웹(Web)

  • 클라이언트(Client) : 일반적으로 접속자와 동일한 의미를 가진다. 넓은 의미에서는 요청을 보내는 모든 주체를 클라이언트라고 한다.
  • 서버(Server) : 서비스를 제공하는 주체이다. 클라이언트의 요청에 따라 적절한 응답을 돌려준다. 네이버, 카카오, 등 모두가 서버의 의미를 가지고 있다.
  • 요청(Request) : 클라이언트가 서버로 보내는 요청을 의미한다. 요청은 크게 아래의 구성요소로 되어있다. 
    • 프로토콜(Protocol) : HTTP 혹은 HTTPS(SSL, Secure Sockets Layer) (-> https)
    • 주소(URL, Address) : 요청을 보내는 경로. (-> naver.com)
    • 방식(Method) : 요청을 보내는 방식. 자세한 내용은 후술한다. (-> GET)
    • 헤더(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)에서 사용한다.
    • DELETE : 서버에서 데이터를 D하기위해 사용한다. 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)로 운영되나 JSP를 통한 직접 개발 방식은 사장되었고, 그 자리를 스프링과 스프링부트가 대체하고 있다. 즉, Spring 혹은 Spring Boot로 만든 웹 어플리케이션은 JSP로 해석되며 톰캣이 실행시킨다.(결과적으로는)
  • 컨트롤러(Controller) : 요청을 받고 응답을 돌려주는 맵핑을 정의하기 위해 사용한다. 이가 가지는 메서드의 이름은 요청방식(Request Method)으로 시작하는 것이 좋은데, 가령 get, post, delete, put, patch 등의 단어로 시작하도록 만드는 것이 좋다는 뜻.
  • 서비스(Service) : 주요 로직을 처리하기 위해 사용한다. 로직을 포함하는 메서드는 트랜잭션(Transaction) 단위로 작성하는 것이 좋은데, 가령, '송금'로직을 구현하기 위해 '입금', '출금' 두 개의 메서드로 분리하는 것이 아닌 '송금' 하나의 메서드로 만드는 것이 좋다는 뜻.
  • 매퍼(Mapper) 혹은 DAO(Data Access Object) : 로직 처리 시, 데이터베이스에 접근하기 위해 사용한다. 이가 가지는 메서드들의 이름은 SQL 키워드로 시작하는 것이 좋은데, 가령 insert, select, update, delete 등의 단어로 시작하도록 만드는 것이 좋다는 뜻. 

'Spring Boot > 학습내용' 카테고리의 다른 글

[공통] 타임리프  (0) 2022.10.25
[코드] HomeController  (0) 2022.10.25
[공통] 의존성  (0) 2022.10.25
[공통] Spring Initializr 시작  (0) 2022.10.25
[공통] 어노테이션  (0) 2022.10.25