Network/Data communication 7

HTTP 메서드를 구별해서 사용하는 이유: RESTful API 설계의 중요성

RESTful API를 설계할 때, 흔히 사용하는 HTTP 메서드에는 GET, POST, PUT, DELETE가 있다. 이들 메서드를 적절히 구별해서 사용하는 것이 API의 명확성, 보안성, 확장성 등을 높이는 데 매우 중요하다. 이번 포스팅에서는 왜 HTTP 메서드를 구별해서 사용해야 하는지 그 이유를 살펴보고자 한다. 1. 명확성 및 가독성의미 부여: 각 HTTP 메서드는 특정한 작업을 나타낸다. 예를 들어, `GET` 은 데이터를 조회, `POST`는 데이터를 생성, `PUT`은 데이터를 갱신, `DELETE` 는 데이터를 삭제하는 작업을 나타낸다. 이를 통해 API 사용자와 개발자가 요청의 목적을 쉽게 이해할 수 있다. 문서화: 다양한 메서드를 사용하면 API 문서화가 더 명확해진다. 사용자들은 ..

UTC(협정 세계시)에 대해 & 지역마다 다른 시간값의 대처

1. 개요 시간 관련된 개발을 하다보면 로컬과 서버의 시간이 맞지 않아서 문제가 발생하는 경우가 있다. 그러면 자연스레 UTC시간이라는것을 접하게 되는데, 이게 무엇인지 알아보자. 2. UTC(협정 세계시)란? UTC(Universal Time Coordinated) 는 국제적인 표준 시간의 기준으로 쓰이는 시각을 말한다. 1972년 1월 1일부터 시행된 국제 표준시로, 국제 사회가 사용하는 과학적 시간의 표준이다. 기존에 사용하던 평균태양시 기준의 그리니치 표준시(GMT)를 대체하여 사용하기 시작한 표준시이다. UTC에서 0시, 즉 기준점에 달하는 도시는 런던(영국) 이며, 이를 기준으로 +, -로 시간을 계산한다. 우리나라(대한민국)은 런던을 기준으로 +9시이다. 3. 지역마다 다른 시간값의 대처 위..

P2P와 P2MP의 차이

P2MP (Point-to-Multipoint) 무선 통신에서 Point-to-Multipoint 커뮤니케이션(P2MP, PTMP or PMP) 는 단일 위치에서 여러 위치로의 다중 경로를 제공하는 고유한 유형의 일대다 연결을 통해 수행되는 통신이다. P2MP의 경우 중앙 안테나 또는 안테나 배열이 여러 수신 안테나로 브로드캐스트하고 시스템은 양방향 트래픽 흐름을 허용하기 위해 주파수 분할 다중화 또는 시분할 다중화를 사용한다. 다음은 간단한 개략도이다. P2P (Point-to-Point) Point-to-Point (P2P)은 두 노드 또는 엔드포인트 간의 통신 연결을 의미한다. 두 장치는 양방향 트래픽 흐름을 허용하기 위해 주파수 분할 다중화 또는 시분할 다중화를 사용하여 통신한다. 고정 링크의 경..

직렬화(Serialization)에 대해

1. 직렬화(Serialization)란 무엇인가? 객체의 직렬화(Serialization)는 객체의 내용을 Byte 단위로 변환하여 파일 또는 네크워크를 통해서 스트림(송수신)이 가능하도록 하는 것을 의미한다. 반대로 Byte로 변환된 데이터를 다시 객체가 저장되었던 상태로 재 변환하는 기술을 역직렬화(Deserialization)라고 한다. [객체 전송의 단계] 직렬화된 객체를 바이트 단위로 분해한다. (이를 Marshalling이라고도 한다.) 직렬화 되어 분해된 데이터를 순서에 따라 전송한다. 전송 받은 데이터를 원래대로 복구한다. (이를 Unmarshalling이라고도 한다.) 2. 직렬화 & 역직렬화를 하는 이유? 자바의 I/O 처리는 정수, 문자열 바이트 단위의 처리만 지원했었다. 따라서 복..

Serial 통신 한글깨짐 문제(Encoding 처리)

1. 개요 NodeJS의 Serialport라이브러리를 사용하여 Serial 통신을 통해 USB단자로 연결된 단말기 포트(COM)로 출력 데이터를 전송하였는데, 아래 사진과 같이 한글이 깨져서 출력되는 문제가 발생했었다. 이는 Javascript의 표준 내장 method charCodeAt 를 통해 Charactor의 UTF-16 code를 구해 배열에 담아서 넘겼었는데, 이러한 출력이 되었다. 그래서 UTF8 code로 인코딩하는 함수를 통해 배열에 담아 보냈는데도, 동일하게 깨져서 출력되었었다. 2. 해결 과정 .NET사이트를 탐색해보니 위의 사진과 같이 Windows desktop의 .NET Framework의 기본 속성은 시스템의 활성 코드 페이지를 가져오고, 이에 해당하는 Encoding 개체를..

CORS란? 그리고 해결방법

CORS란? cors(Cross-Origin Resource Sharing)은 교차 출처 리소스 공유라고 번역이 되며, 브라우저에서 다른 출처의 리소스를 공유하는 방법이다. 브라우저에서는 보안상의 이유로 cross-origin HTTP 요청들을 제한한다. 그래서 cross-origin 요청을 하려면 서버의 동의가 필요하다. (만일 동의하지 않는다면 아래와 같은 에러를 발생시키며 브라우저에서 거절한다.) cross-origin? cross-origin이란 다음 중 한 가지라도 다른 경우를 말한다. 1. 프로토콜 - http와 https는 프로토콜이 다르다. 2. 도메인 - domain.com과 other-domain.com은 다르다. 3. 포트 번호 - 8080포트와 3000포트는 다르다. CORS 에러 ..

HTTPS와 SSL/TLS의 의미 및 차이점

1. HTTPS (Hypertext Transfer Protocol Secure)란? HTTPS는 HTTP에 Secure을 붙인 용어이다. 즉, HTTPS는 HTTP에서의 통신을 안전하게 보호하기 위한 구조이다. Web 브라우저와 Web서버에서 인터넷 뱅킹, 신용카드 관련 서비스, 개인정보를 등록하거나 수정하는 경우처럼 보안이 중요한 경우에 HTTPS를 사용한다. HTTP HTTPS 응용계층에서 동작한다 전송계층에서 동작한다. default 통신 포트번호가 80이다. default 통신 포트번호가 443이다. HTTP 웹사이트에는 암호화 체계가 없다. HTTPS에는 암호화 및 복호화 체계가 있다. 대개 클라이언트와 서버 간의 모든 커뮤니케이션을 암호화 하기 위해서 SSL 이나 TLS를 사용한다. 이 SS..

반응형