코딩과 결혼합니다

(WIL) 230626 - HTTP, MVC 패턴 본문

2세/기타

(WIL) 230626 - HTTP, MVC 패턴

코딩러버 2023. 6. 26. 10:48
728x90

배운것 / 느낀것 / 내게 아쉬웠던 것

 

많은 변화가 느껴지던 한 주였다. 처음에는 손도 못 대던 알고리즘 문제를 중하 수준까지는 어느 정도 풀 수 있게 되었고, 드디어 주특기 Spring을 배우게 되었다. 늘 무언가를 새롭게 배운다는 건 너무 즐거운 일이다. 나의 눈과 허리는 즐겁지 않은 것 같지만...

 

Spring을 시작하며 역시 개념적인 부분 먼저 배우게 되었는데, 그 개념들 중에서 HTTP, MVC 패턴을 좀 더 자세하게 다뤄보고자 한다.

 


 

HTTP(Hypertext Transfer Protocol)

: 웝 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 통신 규약 또는 프로토콜

- 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 HTTP 요청을 전송 / 웹 서버는 HTTP로 응답

- 웹 서버와 사용자 브라우저는 데이터를 일반 텍스트로 교환한다. - 네트워크 통신을 작동하게 하는 기본 기술

- HTTPS 는 HTTP의 확장 버전으로 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정

 

HTTP프로토콜의 작동

  1. connect : 클라이언트가 원하는 서버에 접속
  2. request : 클라이언트가 이 서버에 요청.
    클라이언트가 서버에게 연락하는 것을 요청이라고 하며 요청을 보낼때는 요청에 대한 정보를 담아 서버로 보낸다.
  3. response : 서버가 요청에 대한 응답결과를 클라이언트에게 보내는 것을 응답이라고 한다.응답이 끝나면 서버와 클라이언트 연결 끊기(Stateless)

HTTP GET - 웹 사이트의 일부 데이터를 보려는 경우 HTTP GET요청을 전송

HTTP PUT - 연락처 양식 작성과 같은 일부 정보를 전송하려는 경우 HTTP PUT 요청을 전송

서버는 숫자 코드 및 데이터 양식으로 다양한 유형의 HTTP 응답을 전송한다.

  • 200 - OK(정상)
  • 400 - Bad request(잘못된 요청)
  • 404 - Resource not found(리소스를 찾을 수 없음)

 

MVC 패턴

: 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴

  1. 모델: 데이터와 비즈니스 로직을 관리. 애플리케이션의 정보, 데이터를 나타낸다. (데이터베이스, 처음의 정의하는 상수, 초기화값, 변수 등을 뜻한다.) 또한 이러한 데이터, 정보들의 가공을 책임지는 컴포넌트를 말한다.
  2. 뷰: 레이아웃과 화면을 처리. input텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다. 
  3. 컨트롤러: 명령을 모델과 뷰 부분으로 라우팅. 데이터와 사용자인터페이스 요소들을 잇는 다리 역할로 사용자가 데이터를 클릭하고 수정하는 것에 대한 '이벤트'들을 처리하는 부분.

디자인 패턴이란?

: 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것

 

로직 설명을 위한 그림

사용자가 controller를 조작하면 controller는 model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 된다. 

MVP 패턴


내게 아쉬웠던 것

 

Spring을 들어가기 전 어느정도 Java에 대한 기본 지식을 잘 익혀놔야 했는데 그러지 못해서 다음으로 진행하는게 좀 힘들다. 또한 Spring의 정의에 대해서만 어렴풋이 알지 정확히 이게 뭐하는건지? Java 문법이 보이기는 하는데 이게 무슨 관련이 있는지 모르겠고 그저 커리큘럼을 급하게 따라가는 느낌이다. 

 

그럼에도 조바심 내지 말고 내 페이스대로 천천히 꾸준하게 하나씩 짚고 넘어가며 기초를 잘 다져야겠다.