본문 바로가기

Web/Spring

Sparta Coding Club_웹개발자의 봄, Spring (웹의 기본개념)

웹개발자의 봄, Spring 1주차_DAY3 

웹의 기본 개념

웹의 기본개념에서 API, 웹의 동작개념, 스프링의 담당 영역을 알아본다.

 

 

 

=============================

 

 

서버와 클라이언트

 

 

 

 

클라이언트

  • 서버와 이어진 모든 단말기(컴퓨터의 경우는 WI-FI에, 모바일은 모바일 네트워크에 연결되어 있다)와 단말기에서 이용하는, 웹에 접근하는 소프트웨어를 지칭
  • 보통은 브라우저이나, 게임과 같이 별도의 클라이언트가 서버랑 호응하는 경우도 있음.
  • 사용자의 입력을 주로 처리하며 이를 서버에 요청을 보냄

 

 

 

서버

  • 웹페이지, 사이트, 앱을 저장하는 컴퓨터
  • 클라이언트의 요청을 받아서 처리하고, 이를다시 클라이이언트에 응답을 보냄
  • 어떠한 형태로든 클라이언트의 요청을 받아 정보를 제공하면 서버 컴퓨터가 될 수 있음

 

 


 

 

 

HTML, CSS, Javascript

 

 

HTML

  • HTML 은 Hyper Text Markup Language 약어 이다.
  • HyperText(웹 페이지에서 다른 페이지로 이동할 수 있도록 하는 것)
  • 웹페이지를 구성 하는 뼈대 같은 역할을 수행한다.

 

 

CSS

  • CSS(Cascading Style Sheet)는 마크업 언어가 실제 표시되는 방법을 기술하는 언어
  • HTML 과 XHTML 에 주로 쓰이며, XML에서도 사용할 수 있다
  • HTML 문서를 스타일링 하는 언어( W3C 의 표준)로 HTML 문서에서 link 요소를 사용해 CSS 파일을 읽어들이면 HTML 문서의 구조를 CSS를 통해 스타일링 하게 된다

 

 

JavaScript

  • 정적인 HTML 콘텐츠를 프로그램 구현을 통해 동적으로 변경하거나 사용자와의 상호작용을 담당
  • 객체(Object) 기반의 스크립트 언어로 기본적으로는 웹 브라우저에서 해석되는 인터프리터 언어이며 Node.js와 같은 프레임워크를 사용하면 서버 프로그래밍에도 사용할 수 있다
  • HTML의 내용, 속성, 스타일을 변경 할 수 있다.
  • 이벤트를 처리하고 사용자와의 상호작용을 가능하게 함
  • AJAX 기술을 이용해 서버와 실시간 통신 기능을 제공

 

 


 

 

API

 

 

 

개념

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 
응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 
있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 
인터페이스를 제공한다.

.이것만 보고 API가 뭔지 단박에 이해가 가셨다면 당신은 똑똑이, 나는 도저히 이해가 안가는 초보라...

너무 감사하게도 나같은 사람이 이해 할 수 있는 언어로 설명한 글을 적어둔다.

 

 

출처 : 봐도봐도 모르겠는 API 개념 설명 (Application Programming Interface) (tistory.com)

손님(내가 만드는 프로그램)이 자리에 앉아 웨이터(API)에게 주문을 한다. 
그럼 웨이터는 내 주문 내역을 주방(API 제공자. 기상청, 공공포탈 등)에 갖다준다.
주방에서 요리를 해 웨이터에게 주면 웨이터가 다시 나에게 음식을 가져다준다. 
웨이터가 손님의 주문을 주방으로 전달하는 매개체 역할을 하는 것이다.

여기서 손님은 주방에서 무슨 일이 일어나는지 잘 모른다. 
대개는 관심도 없으며 관심을 가질 필요도 딱히 없다. 이것이 API의 장점이다. 
내가 가져다쓰려는 API의 기능을 어떻게 구현하는지 몰라도 되고 
난 그저 API가 갖다주는 걸 사용만 하면 된다(식사한다)는 것이다. 
시간과 노력을 동시에 아낄 수 있다. 
이처럼 API는 처음부터 개발하거나 유지 보수할 필요가 없는 외부 데이터와 기능에 
접속할 수 있게 해준다.

조금 요약 해보자면

  • 개발자가 프로그램을 만드는데 필요한 어떤 기능을 직접 구현하지 않고 API 제공자들이 제공하는 데이터와 모듈 등을 갖다쓸 수 있게 해주는 게 API와 API 문서이다.
  • 예를 들어 내가 네이버를 통해 내 페이지를 네이버 서비스에 공유하고 싶다면 네이버에서 제공하는 공유하기 API를 문서에서 제시하는대로 맞춰서 쓰면 된다.
  • API가 비공개 되었다면 쓸 수 없다. 또 공개 API라고 하더라도 호출 횟수가 많아지면 비용을 지불해야 할 수도 있다.

 

스파르타 코딩클럽 강의 설명에서의 API 개념

Like this....ㅋㅋ API...쉽게 생각하면 좋겠다.

 

 


 

 

 

웹의 동작 개념

 

 

HTML을 받을경우

  • 브라우저는 요청을 보내고, 받은 HTML파일을 브라우저내에 그려주는 일을한다.
  • "요청" 이라는 것은 서버가 만들어 놓은 API라는 창구에 미리 정해진 약속 대로 요청을 보내는 것이다.
  • ex) https://naver.com/ 에서 "/" 는 naver.com이라는 서버에 있는 "/" 창구로 요청을 보내겠다는 이야기다.

 

데이터만 받는 경우

  • 자바스크립트를 통해 데이터만 받아오는 경우도 있다
  • 예를 들어 공연 티켓을 예매하는 상황을 생각해보면, 좌석을 선택할때나 선택한 좌석을 다시 클릭하여 취소할때,
    매번 브라우저가 리프레시 된다면 조금 불편할 것이다. 이러한 상황에서는 데이터만 받아와 같은 화면에
    갈아끼워 주는 기술이 필요한 것이다
  • 이러한 형식을 JSON 형식이라 칭한다

 

 

 


 

 

 

 

Spring 담당영역

 

그렇다면 스프링은 어디를 담당하는 것일까?

당연히 서버를 담당한다고 알고 있었지만, 대충 아는것은 모르는 것 보다 못하듯, 다시금 스파르타에서 가르쳐주는 데로

정리해본다.

 

 

 


 

"건방져 지지 말자, 확실하게 알고 누군가를 이해시킬 수 없다면, 그것은 모르는 것이다. "