8월, 2019의 게시물 표시

MySQL Multiple rows 를 one query 구현하기

MySQL 에 자료를 갱신할 일이 생겼다. 갱신할 자료를 가져와 배열에 담았다. list = [adm, bay, car, del, ear] 이를 반복하면서 Update 를 했더니 오래 걸린다. 자료가 약 300 ~ 400 개인데 3~4초가 나온다. 검색을 해보니 INSERT INTO tb_temp (a, b, c) VALUES(1, 2, 3) ON DUPLICATE KEY UPDATE c = c + 1 이걸 이용하면 된다고 한다. 뭐 반복문 돌면서 sql 하나의 문자열로 만들었다. 디비 결과는 중복 입력이었다. 다시 검색을 해보니 비교로 사용하는 첫번째 항목은 무조건 Primary 이어야 한다고 한다. 디비의 구조를 변경하였다. 다시 실행해보니 중복 없이 잘 갱신된다. 실행속도도 400개 정도가 1초 이내로 나온다.

swift Kuery mysql Error shim.h & mysql.h 대응 방법

리눅스에서 스위프트로 작성한 앱에서 MySQL 접속할 일이 생겼다. Swift-Kuery & SwiftKueryMySQL 을 추가하면 된다고 하여 추가하였다. Package.swift 파일에 두개의 모듈을 추가하고 $ swift package update 를 한 다음 혹시나 하여 컴파일을 해 본 다음에 진행하자 $ swift build 결과가 에러를 토해 내였다. <module-includes>:1:10: note: in file included from <module-inclues>:1: #include "shim.h> ~~~~ # error: 'mysql.h' file not found 대충 이런식이다. 해결 방법은 mysqlclient 관련 모듈이 없어서 나는 오류이다 $ sudo apt-get install libmysqlclient-dev 설치 한 후 컴파일 하니 오류가 나지 않는다.

Swift Cocoa FileManager 사용시 Operation not permitted 오류 대처

이미지
Swift 에서 파일을 가져와서 수정할 일이 있어서 FileManager 를 이용하여 파일을 가져오는데 Operation not permitted 오류가 나는 것이다. 보통 아이폰에서는 샌드박스 디렉토리 구조라 그런 오류가 나는데 코코아는 컴퓨터에서 파일을 접근하는게 아닌가? 대부분의 검색은 이 오류에 대한 내용이 없다. 내가 찾은 방법은 다음과 같다. 이것도 겨우 찾은 방법이다. Xcode - project - target - Capabilities - App Sandbox - Off 예전에 없는 기능이 추가로 생긴거 같다. 그것도 Default로 On 이 되어 있음.