본문 바로가기

전체 글

(50)
Ios - Api 사용하기(urlSession, parseJson) Ios에서 네트워크 통신을 하기 위해 urlSession이라는 클래스를 사용합니다. urlSession은 서버에 요청을 보내기 위해 사용하는 클래스이며 자료를 업로드하고 다운로드하는데 필요한, 완전한 형태의 ios 네트워크 API입니다. urlSession을 이용한 네트워크 통신에서는 아래와 같은 5가지의 기본 단계가 필요합니다. //0. API를 사용할 url 주소가 있어야합니다. let urlString: String = "https://api.test.com/data/person?n=1&a=22" func performRequest(with urlString: String){ // 1. url주소를 인자로 전달한 URL 구조체를 만듭니다. if let url = URL(string: urlStrin..
JSON이란? 인터넷 세계에서는 수많은 데이터의 전달이 이루어 집니다. 그리고 효율적으로 데이터를 전달하기 위해서는 데이터 전송의 형식이 필요하고 그 형식은 간단하면서도 가독성이 좋아야합니다. 이렇듯 효율적인 데이터 전송을 위한 데이터 표준 포맷으로 XML과 JSON이 있습니다. 현재 추세는 XML보다 JSON을 더욱더 많이 사용하며 오늘은 JSON에 대해 정리해보려고 합니다. JSON이란 JavaScript Object Notation의 약자로, 글자 그대로 자바스크립트의 객체 문법 표기를 데이터 전송을 위한 표준 포맷으로 사용한 것을 뜻합니다. 또한 JSON은 문자 기반의 데이터 포맷입니다. 때문에 보다 쉽게 데이터를 표현하고 전송하고 읽을 수 있습니다. JSON의 구조 // 위키백과 JSON 문서의 예제 입니다...
Swift - 함수의 Input과 return에 함수 넣기, 간단한 Closure 함수의 Input에 함수를 넣을 수 있습니다. 아래의 calculator 함수의 Input을 보면 operation: (Int, Int) -> Int처럼 함수가 인자로 들어간 것을 확인 할 수 있습니다. (Int, Int) -> Int 처럼 정의를 하면 (Int, Int) -> Int 형식의 Input과 Return 형식을 가진 모든 함수를 인자값으로 넣을 수 있습니다. 그리고 calculator 함수의 return 값으로 operation(no1, no2)가 있는 것을 볼 수 있는데, 인자로 넣어준 Int값 두 개를(no1, no2) 인자로 넣어준 함수에(operation) 인자로 넣어 계산한 함수의 리턴값을 다시 리턴하는 구조입니다. func calculator(no1: Int, no2: Int, o..
HTTP http는 웹 브라우저와 웹 서버간의 통신에 사용되는 응용 계층의 프로토콜입니다. 주로 TCP와 함께 사용 됩니다. TCP소켓을 이용한 TCP Connection을 이용해 http request와 http response가 서로 오갑니다. 기본적인 http request의 형식은 다음과 같습니다. 제일 먼저 사용할 메소드명을 입력합니다. 다음으로 자원의 절대 경로와 파일 이름을 입력하고 사용할 프로토콜인 HTTP와 그 버전을 입력합니다. HTTP/ GET /schoolname/class/index.html HTTP/1.0 http response의 형식은 다음과 같습니다. HTTP/ HTTP/1.0 200 OK 프로토콜과 그 버전이 맨 앞에 위치하고 상태값을 나타내는 코드와 그 상태값을 설명하는 구문이 ..
Socket Socket Socket이란 응용 계층과 전송 계층 사이를 이어주는 도구이다. 수많은 클라이언트 앱과 서버 앱이 존재하기에 클라이언트 앱과 서버 앱은 각각의 소켓을 만듦으로써 서로를 구분하게 만들고 특정한 클라이언트 앱과 서버 앱 사이에 단일한 연결이 생성 될 수 있게끔 만든다. 그리고 이 구분을 만들어 주는 것이 port number이다. 따라서 하나의 socket에는 하나의 port number가 지정되야하는데 이것을 서버 소켓에서는바인딩(Binding)이라 한다. 또한 바인딩 과정에서는 IP주소도 소켓에 추가적으로 연결된다. 이렇게 서버 소켓에 바인딩 과정을 거치면 클라이언트 앱에서는 특정 호스트(IP주소)의 특정 앱(Port Number)으로 연결 요청을 할 수 있는 것이다. IP : networ..
OSI 7계층 OSI 7계층은 전세계의 수많은 사람들이 네트워크 통신을 원할하게 할 수 있도록 도와주는 표준화 된 규약입니다.(국제표준화기구 ISO에서 1977년에 정의되었다고 합니다.) 네트워크를 사용하는 사용자들 간에 데이터를 전송하는 방식이 제각각이라면 통신은 이루어지지 못할 것 입니다. 때문에 모두가 지켜야할 규칙이 필요하게 되었고 이에 따라 만들어진 표준화된 규칙이 OSI 7계층입니다. OSI 7계층은 각 계층마다 해야하는 일들이 모두 다르게 주어져 있고 그 일들을 처리하는 여러가지 방식들이 프로토콜(Protocol)이라는 이름으로 주어져 있습니다. 때문에 한 계층에 여러 개의 프로토콜이 있을 수 있습니다. OSI 7계층 (파란색-프로토콜, 빨간색-데이터 단위) 응용 계층 - 애플리케이션 등에서 사용할 데이터..
URL, DNS, PortNumber URL 서버에 있는 자원들은(Resuorces) URL(:Uniform Resource Locator)에 의해 특정 되어 질 수 있습니다. URL에는 세 가지 요소가 있습니다. URL 예시) http://myschool.co.kr/schoolname/class/index.html 1. 프로토콜(Protocol) URL에서 사용되는 프로토콜은 http와 같은 응용계층의 프로토콜입니다. 바로 이 프로토콜을 통해 어떤 절차로 자원을 전송 받을 지 결정합니다. http://myschool.co.kr/schoolname/class/index.html 2. 호스트 이름(Host Name) 자원이 위치한 장소, 즉, 자원을 제공하는 호스트의 이름을 나타냅니다. http://myschool.co.kr/schoolnam..
Open API Open API란 방대한 양의 데이터를 API를 통해 전송 받을 수 있는 서비스를 말합니다. 대표적으로 아래와 같은 서비스들이 있습니다. 공공데이터포털 서울열린데이터광장 네이버 오픈 API 카카오 API OpenWeather API 예제) OpenWeather API를 통해 한 도시의 현재 날씨 데이터를 요청하는 것으로 예시를 들어 보겠습니다. http://api.openweathermap.org/data/2.5/weather?appid=test88test99test00test123&q=seoul&units=metric ? : 쿼리("나 이런 데이터 줘"라고 질문하는 것)가 시작됨을 나타내는 마크 ? 뒤에 원하는 정보를 얻기 위한 인자값들을 "인자명=인자값"의 형태로 적어주고 여러개의 인자를 넣을 때는 ..