01
웹과 앱의 통신 방법에 대해 알아봐야 했다.
따로 알아봐야 해서 내가 몰랐던 다른것이 있는줄 알았다.
근데 다 알면서 몰랐던 것이라 정리했던걸 남겨놔보자.
1) HTTP 통신
API로 서버에서 던져주는게 제일 편하지 않을까?
클라이언트가 원하는 데이터가 있을건데
그게 웹이든, 앱이든 api로 요청하고 받아서 처리하고
그러면 구현해야 하는 일 -> API 작성 및 통신 구현
그리고 HTTP 통신.
JSON 형태로 데이터 주고받는다.
-> 이건 많이 해본거.
근데 API를 써보기만 하고 막상 자세히 뜯어서 공부해본 적은 없어서, 그냥 API를 써서 통신하면 되지않나?
라는 멍청한 생각을 하고있었다.
API가 특별한 어떤 통신 방법이 아니다.
API는 HTTP 요청을 백엔드에 보냈을 때 실행되는 백엔드 기능.
프론트에서 HTTP라는 길을 통해 게시물 데이터를 백엔드에 보내 저장.
그럼 게시물이 아닌 다른 데이터는 어떻게 저장? -> 여러개의 HTTP 길 필요. 각 요청마다 담당자 필요.
여기서 이 담당자 -> API
API는 기능. 기능은 곧 함수. 백엔드 개발자가 만든 함수 = API.
API에 요청할 때 보내는 데이터는 API 함수로 들어갈 인자이고, 응답으로 받게되는 데이터가 API 함수의 return 데이터이다.
API의 요청 결과 타입이 JSON (JavaScript Object Notation)
https://velog.io/@sehee-xx/HTTP-%ED%86%B5%EC%8B%A0%EA%B3%BC-API
HTTP 통신과 API
HTTP 통신 HTTP란 두 컴퓨터간에 텍스트 데이터를 주고 받는 길이다. HTTP 라는 길로 요청(request)과 응답(response) 두 가지를 서로 주고 받을 수 있다. > HTTP 요청(request)과 응답(response) HTTP 요청(Request)
velog.io
API에 대한 설명은 위의 글을 참고했다. 가장 이해가 잘되는 설명이었다.
2) 소켓 통신
실시간으로 주고받는다.
소켓으로 연결, 서버와 통신
node.js에 socket.io --> 얘가 웹 소켓 안될땐 자동으로 http long-polling 대체.
하지만 소켓 통신 방식으로 개발한다 -> 보안 문제 신경 많이 써야한다(CORS, SSL인증서 등).
3) DB
DB서버에서 요청받고 데이터를 처리해 쿼리로 날려주던가
예전에 알바했던 곳은 DB에서 JSON으로 뽑아내서 처리하도록 했었는데 굳이 그렇게 할 이유는 없었던것 같다.
4) FTP
파일을 통신하는데 쓴다?? 왜??
============================================================================================
이렇게 네가지 방식이 주로 논의되었다.
DB와 HTTP 통신이 아무래도 제일 무난한 것 같고, 실시간으로 연결을 유지하며 데이터를 보여주려면 소켓 통신도 가능한 옵션이라고 생각된다.
근데 FTP는 P2P 사이트 같은데서 쓰는 방식인것 같은데, 이걸 통신 방법으로 채택해서 서비스한다? 이건 좀..
뭔가 좋은 비유가 생각이 나진 않지만, 좋은 방식은 아니라고 판단된다.
'Network' 카테고리의 다른 글
http 통신, 소켓 통신 (0) | 2023.08.25 |
---|---|
02 (0) | 2023.08.17 |
00 (0) | 2023.08.14 |