David King
davidk@gnome.org 2013
클라이언트/서버 HTTP 통신, 이식성을 갖춘 소켓 기반 네트워크 입출력, 네트워크 장치 관리 기능을 갖춥니다.
조성호
shcho@gnome.org 2016, 2017, 2018.

# 저수준 네트워크

강력하고 유연한 HTTP 서버/클라이언트를 만듭니다

사용자 인터페이스 동작을 멈추게 하지 않는, 이식성을 갖춘 소켓 기반 API를 활용합니다

네트워크 연결 상태를 확인하고 관리합니다

네트워크 서비스에 접근할 때 이식성을 갖춘 네트워크 API의 장점을 취하십시오. 비동기 입출력 처리 과정은 입출력을 처리하는 과정에서도 프로그램의 UI를 반응할 수 있게 합니다. 네트워크 연결이 끊어졌을 때 프로그램에서 제대로 응답하도록 시스템 네트워크의 상태 바뀜을 확인하십시오.

# 뭘 할 수 있을까요?

저수준 네트워크 API에 비동기 방식으로 접근하려면, GIO 네트워크 기술을 활용하십시오. 보안 소켓(TLS)을 활용할 때와 마찬가지로 프록시와 DNS 레코드를 확인하는 용도의 좀 더 레벨이 높은 API가 있습니다.

GIO에는 단순 네트워크 상태 감시 수단이 있지만, NetworkManager에 네트워크 토폴로지와 실질적인 네트워크 장치 지원 기술이 들어있습니다.

libsoup HTTP 서버 및 클라이언트에 유연한 인터페이스를 제공합니다. 동기 및 비동기 API를 모두 제공합니다.

# 실제 예제

아래 보여드리는 예제에서 오픈 소스 프로젝트에 그놈 네트워크 기술을 활용한 여러가지 실제 프로그램을 볼 수 있습니다.

웹은 HTTP 서비스에 접근할 때 libsoup를 활용하는 그놈 브라우저입니다.

( Website | Screenshot | Source code )

그놈 셸은 사용자가 볼 수 있으며, 네트워크 상태 메뉴에 유무선, 3G 모뎀, VPN 네트워크망 관리 기능을 갖춘 NetworkManager를 띄우는 그놈 데스크톱입니다.

( Website | Screenshot | Source Code )