이번 주는 스프링을 학습하면서 라이브 특강도 듣게 되었는데 라이브 특강에서 HTTP 와 MVC 디자인 패턴에 대해서 배워 간단하게 정리를 해보려고 한다.
HTTP
매번 주소창에 url로 입력해서 어디 접속할 때마다 http~~ https:~~ 이런 것 치긴 했는데 이게 뭔지는 이번 특강을 통해서 처음 알게 되었다.
HTTP란 Hypertext Transfer Protocol 의 약자로 웹 브라우저 같은 곳에서 서버에게 필요한 정보를 요청하는 방법이다. 일종의 약속같은 거라고 생각하면 된다.
HTTP는 크게 헤더와 바디로 구성되는데 헤더에는 HTTP 요청에 대한 정보들이 담기고 바디에는 서버에게 전달하려는 데이터가 담긴다.
HTTP 메서드 종류
웹 브라우저가 서버에게 요청을 보내는 방법은 크게 4가지가 있다.
1. GET : 특정 리소스의 표시를 요청한다. 즉 데이터를 받기만 하는 목적의 요청이라면 GET 으로 요청한다.
2. POST : 서버에 어떤 리소스를 보낼 때 쓰는 요청이다. 예를 들어 로그인 할 때 아이디 비밀번호를 서버에 제출하거나, 혹시 게시글을 작성하려고 할 때 등의 상황에 쓰인다.
3. PUT : 특정 리소스를 수정하고 싶을 때 쓰는 메서드다. 요청한 곳에 이미 데이터가 있으면 이를 덮어쓰고 만약 없다면 새로 생성한다.
4. DELETE : 특정 리소스를 삭제하고 싶을 때 쓰는 요청이다.
MVC
소프트웨어 디자인 패턴 중 하나로 Model - View - Controller 를 구분하여 소프트웨어를 디자인하는 방식이다.
하나의 파일에서 모든 일을 다 처리할 수도 있지만 이렇게 구분하여 소프트웨어를 디자인하는 이유는 관리나 유지보수 측면에서 훨씬 좋기 때문이다.
각각의 계층은 다음과 같은 역할을 수행해야 한다.
Model : 데이터와 비즈니스 로직을 관리
View : 레이아웃과 화면을 처리
Controller : 요청을 받아서 Model 에 전달하고 Model 의 처리 결과를 다시 반환해주는 일종의 '라우팅' 역할
수업을 할 때
Controller 패키지와 Service 패키지를 구분했는데 Controller 패키지에 담기는 것들은 말 그대로 Controller 의 역할만을 수행하게 코드를 작성하고 Service 패키지에 담기는 것들을 Model 의 역할을 수행하도록 코드를 작성했다.
사실 개발 경험이 없어서 이런 디자인 패턴을 쓰면 좋다. 에 대한 공감이 확 와닿지는 않았다. 역할에 따라 코드를 분리하고 객체로 만들어 주고 받는 게 오히려 더 어렵게 느껴졌기 때문이다.
당장 뭔가를 만들어내는 것에만 포커스가 맞춰져 있고 추후 유지보수의 중요성에 대해 깨닫지 못해서인 것 같은데 항해를 이어나가면서 이런 점들을 깨닫게 된다면 좀 더 MVC 패턴에 대해서 이해할 수 있을 것 같다.
'항해99' 카테고리의 다른 글
[TIL] DAY 16 (0) | 2023.04.18 |
---|---|
[TIL] DAY 15 (1) | 2023.04.18 |
[TIL] DAY 13 (0) | 2023.04.16 |
[TIL] DAY12 (0) | 2023.04.15 |
[TIL] DAY 11 (0) | 2023.04.13 |