ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP와 Spring framwork의 차이/ 네트워크 통신 간략한 정리
    TIL(Today I Learned) 2022. 9. 22. 23:11

    JSP와 Spring framework의 차이?

     저는 어느순간 이런 의문이 들었어요. JSP도 프레임워크인가? 이 의문에 대한 해답을 알고 난 후로는 이런 궁금증을 가진 자신이 조금 부끄러웠지만요.. 그럼 둘의 차이를 가볍게 한번 살펴볼까요?

     

    JSP는 Java의 언어이다.

     네 JSP는 Java의 언어입니다. 조금 더 명확하게 얘기하자면 JSP는 웹 프로그램에서 화면처리를 담당하는 언어입니다.

    그리고 JSP는 스크립트 요소를 제공해요. 

     

    스크립트 요소란?

     스크립트 요소를 처음 보고는 자바스크립트가 떠올랐어요. ㅎㅎ 하지만 그게 아니었죠 여기서 설명하는 스크립트 요소는 

     1. 선언부(<%! %>

     2. 스크립틀릿<%%>

     3. 표현식<%=%>

    을 의미하는 것이었어요. 이러한 스크립트 요소가 화면처리를 동적으로 처리하는데 큰 몫을 한답니다. ㅎㅎ 그러면 이번엔 Spring framework를 간단하게 알아볼게요

     

    Spring framework는 웹프로그래밍 제작을 위한 환경을 제공합니다.

    Spring framewokr는 언어가 아니에요 개발자에게 웹프로그램을 더 편리하고 빠르게 제작할 수 있도록 도구를 제공해요 비유하자면 웹프로그래밍을 벼농사라고 한다면 스프링 프레임워크는 트랙터 기구라고 볼 수 있겠네요. 농부는 트랙터를 이용해서 더 빠르고 간편하게 웹프로그램을 제작할 수 있겠죠 ㅎㅎ

     

    이로써 둘의 차이는 명확해집니다. 사실 완전히 다른거에요. 그럼에도 불구하고 둘을 하나로 묶자면 스프링프레임워크는 웹프로그래밍의 전반적인 영역을 제공하니 나라라고 볼 수 있겠고, JSP는 화면처리 영역만을 담당하니 도시라고 볼 수 있겠네요!ㅎㅎ

     

    이번엔 다른 주제로 넘어가볼게요. 이제부터 다룰 주제는 네트워크 통신에 관한 주제에요. 이 주제의 내용의 범위는 정말 광활하답니다.. 그래서 한 번에 모든 내용은 정리하기 어려울 것 같고 조금씩 수정 보완하는 방향으로 나아갈 것 같아요

     

    Protocol이란?

     컴퓨터들이 서로 데이터를 주고 받기 위해 정해놓은 통신 규약이에요. 이해하기 쉽게 비유하자면 서로 언어가 다른 사람 두명이 대화할 때 한명은 영어를 쓰고 한명은 한국어를 쓴다면 대화하기가 어렵겠죠..? 그래서 두 사람 모두 하나의 언어만 사용하기로 약속한 것과 유사하다고 보면 됩니다. ㅎㅎ 프로토콜의 대표적인 예시로는 HTTP가 있겠네요

     

    Port란?

     Port는 직역하면 항구라는 의미를 갖고 있어요. 컴퓨터에서도 서로의 데이터를 교환하기 위한 항구라고 해석할 수 있을 것 같아요. 서로 다른 컴퓨터는 고유한 IP 주소를 갖고 있어요. 이 IP 주소를 통해 서로의 위치를 파악할 수 있습니다. 하지만 위치만 파악했다고 해서 데이터를 주고 받을 수 있는건 아니에요 이 때 필요한게 Port입니다. 포트는 서로가 특정 서비스(데이터)를 담고 있습니다. 이 포트와 IP 주소가 함께 제공되어야 서로 다른 컴퓨터 간의 데이터를 주고 받을 수 있게 되는거에요(참고로. Http는 80의 포트번호를, Https는 443의 포트 번호를 가집니다.)

     

    이번에는 Protocol의 종류를 알아볼게요

     - TCP 

       - TCP는 안정적입니다.

         - TCP는 클라이언트와 서버가 연결되어야만 데이터를 전송하는 연결지향적 특성을 가지고 있어요. 그래서 데이터가 유 실될 가능성이 비교적 적어지게 되는 것이지요

        - TCP는 서버가 통신할 준비가 되어 있는지 체크합니다. 만약 준비가 되어 있지 않다면 통신을 하지 않아요(사용자에게 에러 문구를 보여줄 수 있습니다. ex) 서버가 준비되어 있지 않습니다.) 반대로 준비가 되어 있다면 데이터를 주고 받겠지요?

     

    - UDP  : UDP는 TCP와 반대의 특성을 가졌다고 보면 편할 것 같아요. 서버가 준비되어 있든 말든 일단 데이터를 보내고 본답니다 ㅎㅎ. 그리고 데이터가 완전히 보내졌는지 확인조차 안하고 사라져버려요.(쿨하네요..) 이러한 성질 때문에 안정성 비교적 부족하다고 합니다.

     

     - IP : IP를 주소의 관점이 아닌 데이터 전송 방식의 관점에서 설명을 해볼게요. IP는 굉장히 성질이 급합니다. 그래서 빠른 속도로 데이터를 전송하려고해요. 이때 패킷 단위로 전송하게 됩니다. IP 이녀석은 빨리 보내는 것에만 치중한 나머지 패킷을 순서대로 보내주지도 않고! 패킷 전달 여부도 보증하지 않는답니다. 이러한 특성도 TCP와 반대대죠?

     

    (패킷이란? 패킷은 정확하게 말하자면 네트워크 패킷이에요. 네트워크 패킷은 데이터의 실제 전송 단위입니다. 

    왜 네트워크 패킷은 전송 단위를 나뉘게 되었을까요? 

    데이터를 한번에 보내는건 무리에요 왜냐면 대역폭에 한계가 존재하기 때문이죠.

    대역폭은 무엇일까요?

    대역폭은 일정한 시간 내에 통과할 수 있는 정보량의 척도라고 합니다.)

     

    패킷으로 전송하는 방식은 빠르긴 하지만 데이터 전송의 안정성이 많이 떨어져요. 순서도 보장하지 않고, 패킷 전달 여부도 보장하지 않으니까요. 만약 데이터를 전송하다가 서버가 다운 되어서 데이터 전송이 중지 된다면 데이터 유실 또는 손실이 일어나는 원리라고 볼 수 있겠죠. 이러한 참사를 막기 위해 TCP/IP가 존재한답니다.

     

     - HTTP : www에서 웹서버와 사용자간의 통신을 위해 사용하는 통신 규약입니다. 사용자가 요청하면 서버가 응답하는 단순한 프로토콜입니다.

     

    이번에는 TCP/IP 4계층에 대해서 알아볼게요

     OSI 7계층 많이들 들어보셨을 거에요. 네트워크 통신에서 핵심이라고 볼 수 있는 개념이죠 ㅎㅎ. 하지만 지금은 TCP/IP 4계층에 대해 먼저 알아보도록 할게요!

     

    TCP/IP 4계층이란?

    - OSI 7계층을 TCP/IP 통신 과정에 초점을 맞춰서 단순화 시킨 계층을 의미합니다.

    - IP(인터넷 프로토콜)와 TCP(전송 조절 프로토콜)를 조합해서 인터넷 통신하는 방식입니다.

    - TCP/IP 계층은 애플리케이션 계층, 전송 계층, 인터넷 계층, 네트워크 접근 계층으로 구분합니다.

    - 이러한 계층의 분리의 장점은

    1. 계층별 역할이 다르기 때문에 계층간의 간섭을 최소화할 수 있습니다.

    2. 계층 별로 에러 사항을 처리하기 때문에 유지보수가 간편합니다.

    3. 서로 다른 계층끼리는 통신 과정을 알 필요가 없기 때문에 데이터 캡슐화 또는 은닉이 가능해집니다.

     

    TCP/IP 방식은 이러한 장점을 갖고 있습니다.

     전송자가 IP 방식으로 패킷을 빠른속도로 수신자에게 보내면 TCP를 활용해서 패킷을 정상적으로 수신하는 방식입니다. 전송자가 패킷을 무작위 순서로, 끊어서 보내도 TCP가 순서도 알아서 맞춰주고~ 데이터도 완전하게 다 받아주는 방식인거죠(훌륭!). 만약 데이터가 중간에 손실되거나 손상되면 송신자에게 데이터를 다시 보내달라고 재요청하는 방식입니다.

     

Designed by Tistory.