HTML

OneTwoThree·2022년 9월 15일

head

head 태그 내의 내용은 페이지에 표시되지는 않지만 페이지를 설명하는 내용이다(메타데이터)

CSS, JS 작성

외부 링크

CSS와 JS코드가 많아지면 HTML에 직접 넣기보다는 외부 파일의 링크를 걸어서 사용한다

<link rel="stylesheet" href="css/style.css">
<script src="js/library.js"></script>

CSS는 link요소의 rel과 href 속성, JS는 script 요소의 src 속성을 이용한다

이렇게 링크를 걸면 브라우저가 서버에 해당 파일을 요청하고 응답받아서 바로 해석한다

script 요소를 이용해서 JS 코드를 링크하거나 작성할 때 JS 코드가 html의 렌더링을 방해할 수 있다. 따라서 JS코드는 항상 body 태그가 닫힌 뒤나 닫히기 바로 직전에 넣어주도록 하자.

CSS는 head 요소에 link 요소를 이용해서 링크해주면 된다.

html에 작성

html 내부에 바로 작성하려면
CSS : head 요소에 style 요소를 넣고 context로 CSS 코드를 작성
JS : 코드는 보통 body 태그가 닫히 뒤에 script 요소를 넣어서 context에 JS 코드 작성

  • 참고 : jsbin같은 사이트를 활용하면 브라우저에서 코드를 작성하고 실시간으로 결과를 확인할 수 있다. 개발자들끼리 공유하기 좋다.

웹 서버

웹 서버는 소프트웨어 또는 소프트웨어가 동작하는 컴퓨터다.
웹 서버는 클라이언트가 요청하는 HTML 문서나 각종 리소스를 전달한다
에러가 발생하면 에러메세지를 보낸다
웹 브라우저/웹 크롤러가 웹서버에 요청하는 데이터는 정적 데이터(js, html, css 파일 = 컴퓨터에 저장된 파일), 동적 결과 = 웹 서버에 의해 실행된 프로그램에 의해 만들어진 결과

  • 웹 크롤러 : 네이버, 구글같은 검색 사이트에서 다른 웹 사이트의 정보를 읽어 갈 때 사용하는 소프트웨어

웹브라우저-웹 서버는 HTTP로 통신한다
HTTP는 프로토콜의 일종이고 프로토콜은 규약 = 통신하기 위해 미리 정해놓은 규칙이다

통신 과정은 대락적으로 이렇다

  • 브라우저가 서버에게 html request 메세지 요청
  • 서버가 브라우저에게 html response 메세지 응답
  • 브라우저가 html 문서 해석 (html을 화면에 보이게 하기 위해 필요한 css, js등의 url 추출하고 서버에게 동시에 여러개의 리소스를 요청한다(png파일 등))
  • 브라우저는 html 문서와 여러 리소스들을 이용해서 화면에 표시한다
    (이렇게 html과 리소스들을 하나로 합쳐서 화면에 보여주는 것을 렌더링한다고 한다)

현재 Apache 웹 서버를 가장 많이 사용한다
그 외에는 Microsoft, nginix, Google 등이 있다.

WAS

WAS = Web Application Server

WAS는 일종의 미들웨어이다
프로그램 실행 환경과 데이터베이스 기능을 제공한다
여러개의 transacton(논리적인 작업단위)를 관리한다
업무를 처리하는 비즈니스 로직도 수행한다
웹 서버의 역할도 할 수 있다.
(즉 tomcat같은 WAS만 설치해서 웹 서버로 사용할 수 있다)
프로그램이 동작해서 얻은 동적 결과를 WAS가 브라우저에게 제공한다
정적 소스는 웹 서버가 브라우저에게 제공한다

현재는 웹 서버 없이 WAS만 있어도 정적/동적 결과를 브라우저에게 제공할 수 있다.
하지만 웹 서버와 WAS가 같이 있으면 좋은 이유는 웹 서버가 WAS에 비해 간단한 구조이기 때문이다.
WAS에서 프로그래밍 한 내용에 오작동이 발생하면 WAS를 재시작한다
이 때 웹 서버가 해당 WAS를 이용하지 못하게 하고 나서 재시작한다
이렇게 하면 사용자는 WAS에 오작동이 발생한지 모른다 -> 장애 극복
이러한 장애 극복을 위해 웹서버가 WAS 앞단에서 동작하는 구조를 가진다

DBMS

DBMS는 데이터베이스를 관리하는 시스템이다
다수의 사용자들이 데이터베이스 내의 데이터에 접근할 수 있게 해주는 소프트웨어이다.
보통 서버 형태로 서비스를 제공한다

미들웨어

클라이언트가 많으면 관리하기 힘들다
클라이언트와 DBMS 사이에 또 다른 서버인 미들웨어를 둔다
미들웨어에서 대부분의 로직을 수행한다
데이터를 조작해야 하면 DBMS에게 요청하고 결과를 클라이언트에게 전송한다
클라이언트에는 복잡한 로직이 필요없고 화면에 표시만 해주면 된다
클라이언트는 입력/출력 역할만 하면된다

0개의 댓글