일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- appium
- 28015
- sshpass
- ssh
- GoCD
- create table
- centos
- rethinkdb
- STF_PortForwarding
- 실행권한
- port forwarding
- appium server
- nmap
- mysql
- kitura
- SWIFT
- insert
- nGrinder
- ftp
- Jupyter
- postgresql
- Jupyter Notebook
- nohup
- openpyxl
- Materials
- STF
- PYTHON
- postgres
- ubuntu
- perfect
- Today
- Total
목록Swift (30)
don't stop believing
애플 개발할때 여러 사람이 계정에 접속해야 할 경우가 발생합니다. 그런데 이중인증 때문에 여간 귀찮은게 아니었습니다. 그래서 애플 개발자 계정에 이중인증 전화번호를 추가해 줬습니다. 먼저 Apple ID 사이트에 접속합니다. https://appleid.apple.com/#!&page=signin Apple ID Your Apple ID is the account you use for all Apple services appleid.apple.com 접속하기 위해 ID와 Password를 입력합니다. ID, Password로 인증이 되었다면 이중인증을 확인하라고 합니다. 저는 이미 여러사람의 전화번호가 이중인증으로 등록되어 있어 전화번호 리스트가 보이게 됩니다. 여기에 새로운 개발자 전화번호를 이중인증에..
이어서 이번에는 파일을 API 서버에 전달해 보겠습니다.macaron API에서 직원정보를 등록할 때 사진을 올릴 수 있게 만들었습니다.post man을 이용해 파일을 올리때는 아래와 같습니다. 먼저 login을하고 accesstoken을 받습니다. header에 AccessToken을 Key로하고 리턴받은 accesstoken을 넣습니다.그리고 Body 데이터의 타입을 form-data로 선택하고 image에 데이터 타입으로 사진이 있는 경로를 넣고, id로 로그인한 id를 넣습니다.Send를 클릭해 데이터를 보내면 저장된 이미지의 경로가 리턴됩니다. macaron API 서버가 계속 수정되고 있어 portrait으로 받은 경로는 아래와 같이 변경해 볼 수 있습니다.http://52.79.160.182..
이번에는 API 서버와 연결해 데이터를 불러오는 부분을 구현하겠습니다. 먼저 json을 파싱하는 클래스를 하나 만들어 주겠습니다. API 서버와 연결해 데이터를 가져오면 json string을 dictionary로 변경해 주는 클래스와 함수입니다.nGleServer002 폴더에서 nglelib.swift 파일을 하나 만들어 줍니다. 그리고 아래와 같이 작성합니다. import Foundation import SwiftyJSON public class NgleLib { public func jsonStringToDic(_ jsonString: String) -> [String: Any]? { guard let dataFromString = jsonString.data(using: .utf8, allowLo..
API 서버와 Front End를 담당하는 Web 서버를 구분해서 개발하려고 합니다. 이번엔 Web (Front End) 서버의 기본 구성을 잡아볼까 합니다. 기본 구성은 Perfect로 서버를 띄우고 API 서버에 호출해 데이터를 받아오는 부분과 Mustache로 Web 화면을 구성하는 부분을 작성해 보겠습니다. 먼저 기본 Swift Package 를 초기화 해줍니다. $ mkdir nGleServer002 $ cd nGleServer002 $ swift package init --type executable $ open Package.swift swift package에서 dependencies를 잡아주기 위해 Package.swift 파일을 엽니다. 그리고 아래와 같이 Perfect-HTTPServ..
오늘은 토요일입니다. 저넥에는 오리 고기를 먹을 예정입니다. Perfect를 이용해 데이터를 전달하는 예제를 만들어 보겠습니다.데이터를 전달하는(Request) 방법은 여러가지이며 이번에 설명할 방법은 아래와 같습니다. Http의 Header로 전달하는 방법 보통 AccessToken과 같이 Session 정보나 중요 데이터를 전달할 때 Header를 사용합니다. 아래 예제를 설명할 때는 put method를 사용했습니다. get method를 사용해 uri만을 전달하는 방법 RESTFull API Design에서는 uri는 자원으로 사용되며 각 method를 통해 자원을 처리하게 됩니다. 자원(uri)에 대한 데이터를 호출할 때 get method를 사용합니다. get method를 사용하며 uri에 ..
Kitura도 1년 사이 많이 변경되었습니다. 추가된 라이브러리나 지원 도구들도 늘었습니다.docker를 사용해 Mac에 개발 환경을 구성하고 Ubuntu에 배포해 보겠습니다. 우선 Mac에 docker가 설치되어 있어야 합니다.http://dejavuqa.tistory.com/195 설치가 되었다면 docker 정보를 확인해 보겠습니다. $ docker version Client: Version:17.12.0-ce API version:1.35 Go version:go1.9.2 Git commit:c97c6d6 Built:Wed Dec 27 20:03:51 2017 OS/Arch:darwin/amd64 Server: Engine: Version:17.12.0-ce API version:1.35 (min..
Reduce기능은 사실 결합이라고 불려야 마땅한 기능입니다. 리듀스는 컨테이너 내부의 콘텐츠를 하나로 합하는 기능을 실행하는 고차합수입니다. 배열이라면 배열의 모든 값을 전달인자로 전달받은 클로저의 연살 결과로 합해줍니다. Swift의 리듀스는 두 가지 형태로 구현되어 있습니다. 첫 번째 Reduce는 클로저가 각 요소를 전달받아 연산한 후 값을 다시 클로저 실행을 위해 반환하며 컨테이너를 순환하는 형태입니다.public func reduce(_ initialResult: Result, _ nextPartialResult: (Result, Element) throws -> Result) rethrows -> ResultinitialResult이라는 이름의 매개별수로 전달되는 값을 통해 초깃값을 지정해 줄..
Filter는 말 그대로 컨테이너 내부의 값을 걸러서 추출하는 역할을 하는 고차함수입니다. Map과 마찬가지로 새로운 컨테이너에 값을 담아 반환해 줍니다. 다만 Map처럼 기존 콘텐츠를 변형하는 것이 아니라, 특정 조건에 맞게 걸러내는 역할을 할 수 있는 점이 다릅니다. Filter 함수의 매개변수로 전달되는 함수의 반환 타입은 Bool입니다. 해당 콘텐츠의 값을 갖고 새로운 컨테이너에 포함될 항목이라고 판단하면 true를, 포함되지 않으려면 false를 반환해주면 됩니다. let numbers: [Int] = [0, 1, 2, 3, 4, 5] // 기본 closure 표현식 사용 let evenNumbers: [Int] = numbers.filter({ (number: Int) -> Bool in re..
Map은 자신을 호출할 때 매개별수로 전달된 함수를 실행하여 그 결과를 다시 반환해주는 함수입니다. Swift에서 Map은 Arry, Dictionary, Set, Optional 등에서 사용할 수 있습니다. 조금 더 정확히 말하자면 Swift의 Sequence, Collection 프로토콜을 따르는 타입과 옵셔널은 모두 맵을 사용할 수 있습니다. Map을 사용하면 컨테이너가 담고 있던 각각의 값을 매개변수를 통해 받은 함수에 적용한 후 다시 컨테이너에 포장하여 반환합니다. 기존 컨테이너의 값은 변경되지 않고 새로운 컨테이너가 생성되어 반환합니다. 그래서 Map은 기존 데이터를 변형하는 데 많이 사용 합니다. map 메써드의 사용법은 for-in 구문과 별반 차이가 없습니다. 다만 코드의 재사용 측면이나..
Perfect로 이미지를 업로드하고 이미지를 확인해 보겠습니다.언제나 그렇듯이 swift 버전을 확인하고 가겠습니다. $ swift -version Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2) Target: x86_64-apple-macosx10.9 프로젝트 폴더를 만들고 이동합니다. 그리고 swift package init으로 초기화 합니다. $ mkdir nGleServer014 $ cd nGleServer014 TongChunui-MacBook-Pro:nGleServer014 tongchunkim$ swift package init --type executable Creating executable package: nGleSe..