코딩하는 코커두드/자바, 스프링 백엔드 과정

Day 29 _ 웹 애플리케이션 작동원리 (20230522)

코커두드 2023. 5. 23. 01:02

지금 저는 MoonchildI'll Be Here를 듣고 있습니다:) 이 앨범은 개인적으로 매우 좋아하는 앨범이라 LP로도 소장중인데요, 재지한 보이싱과 재즈에 소울을 한스푼 곁들인 보컬이 만나 환상의 조합을 이룬답니다. 나중에 여유가 생기면 재즈도 공부해서 이런 음악도 해보고 싶네요 ㅎㅎ 첫 번째 트랙인 Tell Him은 힘이 강하지만 부드러운 저음 피아노에 두껍지만 부드러운 베이스가 섞여 몽환적인 조화가 무엇인지를 보여줍니다. 

 

 

들어아기에 앞서

오늘 학습한 부분은 컴퓨터 공학적인 지식이 담긴 이야기가 많은 느낌이었어요. 또한 컴퓨터활용능력 1급을 공부했을 때 보았던 단어들도 만났고요. 차라리 코드를 치는게 낫겠다 싶을 정도로 익숙치 않은 말들 투성이라 익숙해지기까지 또 시간이 걸리겠더라고요. 그치만 모르는 것을 알아가는 느낌은 언제나 좋습니다.

 

 

네트워크를 만드는 기술

• 프로토콜 : 컴퓨터들끼리 소통을 할 때 필요한 약속

• TCP/IP : 현재까지 표준으로 사용하고 있응 통신규약. 4계층 모델이 있음.

TCP는 Transmission Control Protocol, IP는 Internet Protocol 의 약어

• IP주소 : IPv4 주소는 000.000.000.000의 형식으로 구성. 마침표로 구분된 4개의 8비트 필드로 되어있음

  → 네트워크부(어떤 네트워크인지?)와 호스트부(네트워크 안 특정 컴퓨터 지칭하는 정보)로 구분할 수 있다.

• URL : 웹에 게시된 자원을 찾기 위한 브라우저에서 사용되는 메커니즘.

  → scheme(통신방식), hosts(웹 서버 이름 등 사용하여 주소 나타냄), url-path(경로, 파일명)로 구분할 수 있음

  → URI는 URL 기본요소 + query(추가 질문), bookmark

• DNS : 도메인 이름은 IP 주소로 변환하거나 반대의 경우 수행할 수 있도록 함

 

 

 

웹을 구성하는 기술

• 웹은 인터넷에서 제공되는 하이퍼텍스트 시스템

• 클라이언트-서버 아키텍처

  → 서비스를 이용하는 클라이언트와 서비스를 제공하는 서버로 구분

  → 2티어 아키텍처 : 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리한 것. 요청 선행, 응답 후행

  → 3티어 아키텍처 : 2티어 아키텍처에 데이터베이스가 추가된 형태

• 웹 사이트와 웹 애플리케이션의 차이?

  → 웹 사이트는 정적 페이지들의 집합체

  → 동적 페이지를 포함하면 웹 어플리케이션 :  상호작용 가능, 특정 기능(정보검색) 구비, 콘텐츠 관리 시스템과 작동

SSR

  → SSR은 Server Side Rendering의 줄임말. 서버에서 페이지 렌더링. 

       ex) 가구를 주문했을 때 배송 출발지에서 조립 완료한 상태로 배송 

  → 웹 페이지를 브라우저로 내보내기 전에 서버에서 완전히 렌더링 함. 만약 데이터베이스의 데이터가 필요한 경우 서버         는 데이터베이스의 데이터를 불러온 후 웹 페이지를 렌더링 된 페이지로 변환 후 브라우저에 보냄

   

CSR

  → CSR은 Client Side Rendering의 줄임말. 클라이언트에서 페이지 렌더링.

       ex) 모든 부품이 최대한 나뉘어 운송된 다음 집에서 조립하는 경우

  → 웹 페이지에 필요한 내용이 데이터베이스에 저장된 데이터인 경우 웹 페이지에 렌더링 하기 위해 API가 사용됨

  → 클라이언트에서 페이지 렌더링. 만약 브라우저가 다른 경로로 이동하면 서버가 웹 페이지를 다시 보내지 않음.

 

HTTP

• HTTP Messages : 클라이언트와 서버 사이에서 데이터가 교환되는 방식

• 요청(Requests)

   ① Start line : HTTP 요청은 클라이언트가 서버에 보내는 메세지로 Start line에는 세 가지 요소가 있다.

   → HTTP 메서드 : GET, PUT, POST, HEAD, OPTIONS 등을 사용해 수행할 동작을 나타냄

   → 요청 타겟 

       - origin 형식

       - absolute 형식

       - authority 형식 

       - asterisk 형식 

   → HTTP 버전

 

   ② Headers : 기본구조 - 헤더이름, 콜론(:)

 

   ③ Body : GET, HEAD, DELETE, OPTIONS 에는 필요 없음 

 

• 응답(Responses)

  ① Status line : 현재 프로토콜 버전, 상태코드(요청의 결과), 상태 텍스트(상태 코드 설명)정보 포함

   → 프로토콜 버전 : 보통 HTTP/1.1

   → 상태코드 : 요청의 성공여부. 200, 404 or 302

   → 상태텍스트 : 상태 코드에 대한 설명. HTTP 메시지 이해시 도움이 됨

 

  ② Headers : 기본구조 - 대소문자 구분 없는 문자열, 콜론(:)

 

  ③ Body : 모든 응답에 필요한 것은 아님. 201, 204 와 같은 상태 코드 응답에는 보통 본문이 없음

 

 

 

마무리

아직은 익숙치 않은 용어들이 화수분처럼 쏟아져 나와 익숙해지기까지 시간이 걸릴 것 같습니다:) 차근차근 한 계단씩!

 

 

관련글

1.URL

 

 
 

 

이 글은 개인 학습을 위한 기록입니다. 잘못된 정보가 있을 수 있습니다.