swift 에서 json 파일 parsing 하기

스위프트에서 json 파일을 가져와서 parsing 하기가 어렵지 않다. 일단 json 형식은 다음과 같다. [     "strResult": SUCC,     "r_list": {         "h_dt": 20170824         "t_list": {             "t_info": {                 "h_value": 24             }         }     },     {         "h_dt": 20170821         "t_list": {             "t_info": {                 "h_value": 21             }         }     },     "row_cnt": 2 ] 이제 json 파일을 받아서 처리 할 수 있는 상태로 만들어 보자 do {     let json = try JSONSerialization.jsonObject(with: data, options: .allwFragments) as! [String: Any]     let r_list = json["r_list"] as! [[Str...

Mac 에서 postgresql 설치하는 쉬운 방법

Mac 에서 Phoenix 를 설치하고 ecto 를 실행하는데 오류가 난다. 대부분 postgresql 에서 난다. 지웠다 다시 설치하기를 반복하다 가장 쉬운 방법을 알아냈다. 일단 아래 사이트에서 앱을 하나 다운 받는다. https://postgresapp.com/documentation/gui-tools.html 이 앱을 설치하면 모든게 쉽게 이루어진다. 괜한 삽질하지 말고 이거 설치한 다음에 init 버튼을 클릭하자.

Mac 에서 Brew 로 Postgresql 설치하고 실행하기

일단 설치부터 하자. $ brew install postgresql 설치한거 확인하자. $ psql --version 실행하기 이전에 db를 초기화해보자 $ initdb /usr/local/var/postgres 이제 실행을 해야 다른 프로그램에서 사용할 수 있다. $ pg_ctl -D /usr/local/var/postgres start 실행한 것을 중지해보자 $ pg_ctl -D /usr/local/var/postgres stop

Docker 에서 Firefox 브라우저 띄우기

도커를 사용하다 보면 브라우저를 띄우면 좋겠다는 생각을 했다. 현재 맥미니를 개발용으로 사용하고 있는데 여기에 버추얼박스를 올려고 거기에 다시 리눅스를 올려서 브라우저를 띄워서 인터넷 자료를 이용하고 있다. 그 놈의 보안이 뭔지...쩝 일단 최대한 안전한게 좋겠지... 그리하여 도커에서 파이어폭스 띄우는 걸 성공했다. 일단 환경은 다음과 같다. Mac --> Sierra 10.12.5 Docker --> 17.06.0-ce XQuartz --> 2.7.11 맥은 시에라에 도커는 설치되어 있다고 가정하고 진행한다. 다음 순서로 진행하면 된다. $ brew cask install xquartz 이렇게 하면 맥에서 X11을 사용할 수 있게 된다. $ open -a XQuartz XQuartz 가 실행이된다. 환경설정에서 보안탭을 선택하여 네트워크 클라이언트에서의 연결을 허용을 체크한다. 이 설정을 하면 맥을 재부팅해야 적용이 된다. 이 부분에서 반나절을 해메었었다. 왜 명령어가 안먹지 하면서....ㅠㅠㅠ 재부팅이 된 다음에 이제 호스트 부터 추가하자. $ xhost 192.1680.0.1 192.168.0.1 <-- 자신의 아이피를 입력한다. 모르면 ifconfig 해서 알아내면 된다. $ docker run -d --name firefox -e DISPLAY=192.168.0.1:0 -v /tmp/.X11-unix:/tmp/.X11-unix jess/firefox 192.168.0.1 <-- 자신의 아이피로 바꿔야 한다. 이 명령어는 jess/firefox 에서 이미지를 만들어 놓은 것으로 처리한다. 이 명령어로 띄워보니 한글이 전부 깨진다. 이는 다음에 해야겠다.

GIT 커밋한 내용 되돌리는 방법

GIT 을 사용하다 보면 이전으로 되돌려야 할때가 있다. 이럴 경우 다음과 같이 사용한다. 일단 로컬 컴퓨터의 내용을 Remote와 같게 한다음 다음 명령을 입력한다. $ git reset HEAD^ $ git commit -m "바로 이전으로 되돌린다." $ git push origin + master <-- remote 저장소를 강제로 업데이트 하는 명령 위와 같이 하면 바로 이전 커밋으로 되돌린다.

swift 3 에서 pipe forward 연산 적용하기

이미지
Elixir 에서 |> 연산을 사용하는데 아주 직관적이다. 보통 함수는 이렇게 사용한다. let n = 67 let s = String(n + "$") print(s) 하지만 Pipe Forward 연산을 사용하면 이렇다. let n = 67 n |> {String($0) + "$"}    |> {print("2: \($0)") } 두개의 결과는 같다. |> (보통 pipe forward 라 부른다) 연산은 선언을 해야 한다. 이와 같이 하면 사용할 수 있다. 이런 방식이 함수가 중첩되어 표시되는 것보다 휠씬 가독성이 좋다.

[aqme] 255: AQDefaultDevice (162): skipping input stream 0 0 0x0 오류 조치 방법

[aqme] 255: AQDefaultDevice (162): skipping input stream 0 0 0x0 오류내용이 위와 같이 난다. 내용은 대충 AVFoundation 에서 나는 것 같다. 해결방법은 다음과 같다. 1. Xcode 에서 Product -> Scheme -> Edit SCheme 로 간다. 2. Argument 를 선택한다. 3.  Environment Variable 에 OS_ACTIVITY_MODE 를 추가하고 값을 disable 로 설정한다. 위와 같이 하니 에러 메시지는 나오지 않는다.