ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WIL9 - 실전프로젝트 2주차
    WIL 2022. 9. 12. 00:18

    실전 프로젝트 2주차를 마무리하며

    이번 주에는 생각보다 진도를 나가지 못했다.

    부리더가 되어보니

    생각보다 바쁜 일이 많아서

    막상 코딩에는 손을 대기가 어려웠다.

    그리고 결과적으로 기획단계에서

    변화가 생기는 바람에

    팀원 전체가 혼란스러웠다.

    동물병원, 애견호텔 예약사이트로

    방향을 잡고 진행해보니

    예약기능이 있으면 실제로

    병원을 갈 수 있는 서비스까지 마련했으면 하는 바램과

    업체에서 등록을 해줘야하는 일이 생기는데

    예약에서 이 실제적인 서비스가 없다면

    우리는 런칭해본 것이 아니라

    프로젝트로써 껍데기만 만들어놓는 것이기 때문에

    아쉬울 것 같다는 팀의 의견이 나왔다

    방향을 바꿔 실제적인 결과가 나올 수 있는

    강아지 친구 매칭 시스템을 만들어

    애견카페, 산책 등을 함께 할 수 있는

    시스템을 추가 구현하고 이걸 메인으로 

    진행해보기로 했다.

    그리고 채팅을 구현하기로 한 나는

    결과적으로 매칭시스템 또한

    채팅시스템과 유사하기때문에

    완전히 도맡아서 진행하기로 했다.

    그래서 이제 남은 한 주 동안엔

    채팅을 먼저 구현하고

    완성하고 나면

     매칭시스템을 구현해보려 한다.

     

    실제로 서비스를 만드는 것이

    막상 해보니 현실적인 제약도 많고

    상황들을 고려해야 한다는 것을 배웠다.

    때문에 실제로 서비스를

    만들게 된다면 코딩만 잘해서는

    좋은 개발을 할 순 없을것이라는 생각이 들었다.

     


     

    채팅을 구현하기위해

    웹소켓에 대해 공부하고 있는데

    평소에 http를 통한 요청을 하는 것과는 다르게

    서버와 실시간으로 주고 받으며 굳이 요청하지 않아도

    새로운 데이터들을 서버에서 전송할 수 있게끔 해주는 것이

    웹소켓이라고 한다.

     

    HTML5부터 등장하였고 실시간 양방향 통신을

    지원하며 한번 연결이 수립되면 클라이언트와 서버 모두

    자유롭게 게이터를 보낼 수 있다.

    이는 채팅과 같은 연속적인 통신에 대해

    계속 유사한 통신을 반복하지 않게 해주어

    통신의 효율성도 개선하였다.

     

    HTTP프로토콜을 이용할 때 "http"를 이용하는 것처럼

    웹소켓을 이용할때는 "ws"를 이용한다.

    연결 수립은 핸드쉐이크를 통해 이루어지며

    핸드쉐이크시 HTTP를 이용한다.

     

    핸드 쉐이크를 통해

    한번에 HTTP요청과 HTTP응답이 이루어지고

    그러고 나면 HTTP프로토콜을 웹소켓 프로토콜로 변환하여 통신한다.

     

    ※핸드쉐이크
    웹소켓은 기본적으로 웹 위에서 동작하기때문에 HTTP 프로토콜을 통해 Handshake 과정이 시작된다.

    1.브라우저에서 서버로 Request를 전송함.(get 요청)

    2.서버는 브라우저에게 HTTP Response로 상태값을 전달.

    => 성공 시 101 Switching Protocols를 리턴하면서 upgrade헤더에 websocket으로 명시하여 브라우저가 webSoket Connection을 연결하며 Data transfer 과정으로 넘어감

     

    Data transfer

    WebSocket HandShake 이후 Data transfer 과정은 특정한 포맷없이 데이터를 전송/수신할 수 있고 Framework나 Library에 따라 추가적인 프로토콜을 사용하는 경우도 있다.

    (대표적으로 springboot의 STOMP 프로토콜이 있다.)

     

    웹소켓 프로토콜로 업그레이드가 되면 실시간으로 통신을 주고받을 수 있게 된다.

    아직도 공부중이지만 낯설어서 그런지 감이 안 잡힌다..;

    계속해서 해 나가면서 머리에서도 정리될 예정이다.

     

Designed by Tistory.