프로토콜을 구현해야 하는 곳
6월부터 새로운 프로젝트에 참여하게 되었다.
이번에 개발해야 하는 것은 어떤 시스템 내부의 TCP/IP 서버 이다.
서버를 개발한다는 개념이 익숙치 않아서 좀 더 찾아보았다.
네트워크 애플리케이션 에서 데이터를 주고받을 때 사용할 수 있도록 프로토콜을 구현하는 거라고 한다.
대체 무슨 말일까?
네트워크 애플리케이션이란?
네트워크 애플리케이션(이하 '네트워크 앱')이라고 하면 어렵게 느껴지지만, 알고보면 친숙한 프로그램들이다.
이메일, 메신저, 채팅 프로그램, 파일 전송 프로그램, 웹 사이트나 게임 등이 해당된다.
쉽게 말해 네트워크로 데이터를 주고받는 소프트웨어.
더 자세히는 클라이언트 컴퓨터와 네트워크를 통해 데이터를 주고 받는 서버 격의 소프트웨어들을 말한다.
네트워크 앱은 필요에 따라 특정 프로토콜을 구현해 둔 서버를 두고 사용한다.
일반적인 소규모 웹사이트를 만들 때는 하나의 프로젝트에 서버 단을 두고 거기에 (웹 데이터 송수신을 위해 쓰는 프로토콜인) HTTP를 구현해 놓는 경우가 일반적이다.
그런데 특정한 상황에서는 프로토콜을 구현해 둔 서버를 특별히 따로 두어 개발하기도 한다.
이렇게 프로토콜 서버를 따로 두는 경우는 주로 데이터를 송수신할 때
1. 사용환경과 목적에 맞는 특정 프로토콜을 사용하고 싶거나
2. 특수한 요청이나 응답 처리를 하기 위해서다.
그러면 프로토콜을 구현한다는 말은 무슨 뜻일까?
서버를 만든다는 것
프로토콜을 구현한다
server는 데이터를 받고 보내기 위해 존재한다.
프로토콜은 "데이터를 주고받을 때 이렇게 하자" 는 규칙이다.
서버와 클라이언트가 데이터를 주고 받을 때는 "이 프로토콜을 쓰자!"고 서로 정해놓는다.
그리고 그 프로토콜(규칙)을 따른다.
그래서, 서버를 만들 때는 이 프로토콜의 규칙에 맞게 동작하는 코드를 작성해야 한다.
이 부분이 "프로토콜 구현" 이다.
클라이언트가 서버에 보내는 요청을 받고, 요청 내용을 해석해서, 어떤 요청인지에 따라 응답해주는 부분을 코드로 표현하는 것을 프로토콜 구현이라고 한다.
일반적인 Spring MVC 웹사이트 개발을 한다고 했을 때 [ View의 ajax ↔ Controller 메서드 ] 사이에서 일어나는 일이 “프로토콜 구현”의 핵심이다. 그러니까 js에서 ajax 요청 코드를 적고, 컨트롤러에서 해당 url에 해당하는 응답 메서드를 만들 때, 우리는 HTTP 프로토콜을 구현하고 있는 셈이다.
물론 그 사이에 더 많은 작업이 있다.
header 필드 처리나 상태 코드 설정은 (웹 개발에서는) servlet이나 Spring Framework 등이 맡아서 전담해준다. 따라서 우리는 프로토콜 구현이라는 보다 깊고 반복적인 단계의 작업은 프레임워크에 맡겨두고, 비즈니스 로직에 집중할 수 있다.
AI Bard
AI chatGPT
'주니어에서 시니어로 > 초보 개발자 TIP' 카테고리의 다른 글
윈도우10 느려졌을 때 해결법 (재부팅으로 안 될 때) (1) | 2021.09.24 |
---|---|
[C언어] %c와 %s, 작은따옴표('')와 큰따옴표("") (0) | 2021.06.11 |
조회한 데이터 가공 위치 (0) | 2020.12.02 |
[초보 개발자 Tip] 크롬 단축키 (0) | 2020.11.29 |
[무료책] 유지보수하기 어렵게 코딩하는 방법(개정판) (0) | 2020.10.30 |
댓글