GraphQL
프로젝트 할 때 사용해보고 싶어서 학습 시작!
REST API보다 나은 점은 프론트에서 url이 아닌, 직접 필요한 정보를 지정해서 요청할 수 있고(over-fetching ❌) 쿼리 한번으로 원하는 정보를 얻을 수 있다(under-fetching ❌). 즉, 여러개의 앤드포인트가 필요 없다.
Network
네트워크란 컴퓨터와 컴퓨터가 데이터 통신으로 연결돼 데이터를 주고받을 수 있는 것. 네트워크의 존재로 다수의 컴퓨터가 리소스를 공유할 수 있어 자원을 절약할 수 있다. 데이터는 컴퓨터 상에서 비트 형태로 저장된다. 컴퓨터와 컴퓨터는 통신매체로 연결되는데 컴퓨터와 통신 매체 사이의 중개 장치를 인터페이스라고 한다. 네트워크는 데이터를 전송할 때 전화 같은 회선교환 방식이 아닌 패킷 교환 방식을 사용한다. 패킷교환방식을 패킷에 수신지 정보가 있어 다른 데이터를 이루는 패킷이 한 회선에 뒤섞여 전송되도 문제가 없다. 이 방식 덕분에 빠르게 데이터를 전송할 수 있고, 회선교환 방식처럼 회선의 제한된 수에 상관없이 이용할 수 있다. (데이터를 분할한 것이 패킷이다) 대신 순서대로 도착하지는 않고, 회선교환 방식에 비해 불안정한 면이 있다. 패킷교환기를 '라우터'라고 부르는데, 라우터란 패킷을 적절한 회선으로 보내주는 역할을 한다. 라우터는 세그먼트 한 단위당 하나씩 존재하고, 세그먼트 내에서는 라우터 없이 데이터를 주고받을 수 있다. 라우터와 라우터 간에는 포인트 투 포인트 방식으로 연결되어 있고, 라우터 내에서 허브와 컴퓨터는 멀티액세스 방식으로 연결된다.
프로토콜이란 데이터를 송수신 할 때 컴퓨터간 정해놓은 규칙이다. 과거에는 각 업체마다 프로토콜이 달라서 통신을 하지 못하는 경우도 있었다. 그래서 국제표준화기구(ISO)에서 표준 프로토콜을 지정하고자 OSI 참조 모델을 만들었지만 표준화에 실패했고, TCP / IP 프로토콜이 인터넷의 사실(상)표준이 되었다.
OSI는 7 계층으로 이루어져 있고, 7계층에서 1계층을 거치면서 데이터가 각 단계의 제어 데이터와 결합해 캡슐화(이 상태를 PDU라고 한다. Protocol Data Unit)된 다음 통신매체를 통해 수신자에게 전달되고, 다시 1단계에서 7단계를 거치면서 캡슐을 하나씩 제거한 뒤 데이터를 얻게 된다.