Codable이전에 JSON을 컨트롤하기 위해서는 'JSONSerialization' 클래스를 이용했습니다. 하지만 Swift 4.x 버전에서는 'Codable' 프로토콜을 이용해서 JSON 데이터를 쉽게 파싱할 수 있는 방법이 있습니다. 오늘은 저도 공부하면서 확인한 내용을 기록하도록 하겠습니다.JSONSerialization이전에 사용하던 가장 기본적인 JSON 값을 파싱하는 방법입니다. 서버에서 가져온 값은 대부분 JSON 값이 Data 로 전달받기때문에 변환하여 예제를 작성하였습니다.let firstJSONText: String = """{"one": "1","two": 2,"three": "3"}"""let firstJSONData = firstJSONText.data(using: .utf8)d..
QRCode 읽기class className: UIViewController, AVCaptureMetadataOutputObjectsDelegate { var captureSession:AVCaptureSession? var videoPreviewLayer:AVCaptureVideoPreviewLayer? override func viewDidDisappear(_ animated: Bool) { captureSession?.stopRunning() } override func viewDidAppear(_ animated: Bool) { captureSession?.startRunning() } override func viewDidLoad() { super.viewDidLoad() //AVCaptureD..
UIBezierPath원import UIKit var x = 0 var y = 0 var width = 100 var height = 100 // Initialize the path. var path = UIBezierPath() var circle = UIBezierPath(ovalIn: CGRect(x: width/2 - height/2, y: 0, width: height, height: height))사각형import UIKit var x = 0 var y = 0 var width = 100 var height = 100 // Initialize the path. var path = UIBezierPath() // Specify the point that the path should start g..
다녀온지는 조금 되었지만 제주도 여행을 다녀왔습니다. 원래는 6월 29일 (금) ~ 7월 3일 (화) 일정이었는데.... 여행 일정을 코앞에 두고도 어쩔 수 없이 취소수수료를 부담하고 모든 예약을 취소했습니다. 원래 여행비용에서 약 10만원정도 손해를 보았지만 가서 고생하는 것보단 낫다는 판단이었습니다. 취소가 모두 끝나고, 재 예약을 하기위해서 다시 숙소를 찾기 시작했습니다. 하루 먼저 가기로 했던 일정을 없애고 비용을 최소화하기 위해서 숙소도 저렴한 곳으로 골라서 비슷한 비용으로 맞추기는 성공했습니다. 다시 잡은 일정은 7월 7일 (토) ~ 10일 (화) 3박 4일! 꼬박 2주를 기다려 드디어 여행날, 기분좋게 비용절감을 위해 예약한 6시 50분 비행기를 타러 새벽에 일어나 길을 나섭니다. 서울 날씨..
sessionexpress에서 세션 사용하기$ npm install express-session --save세션을 초기화 할 때 옵션name : 세션 ID의 키 이름(쿠키). 기본값은 connect.sidresave : 변경 사항이 없어도 저장. 옵션 작성 필요saveUninitialized : 세션 초기화 전에도 저장. 옵션 작성 필요secret : 세션 ID 서명store : 세션 저장소cookie : 쿠키 옵션(domain, path, expires, maxAge). 쿠키 파서 없이 사용 가능 19세션 예제예제는 express도 설치해야 한다.$ npm install express express-session --saveconst express = require('express'); const se..
socket.io를 이용한 실시간서비스socket.io모듈install$ npm init ...... $ npm install --save socket.ioserver.jsconst io = require('socket.io')(3000); io.on('connection', (socket) => { console.log('클라이언트 연결'); // console.log('클라이언트 :', socket); console.log('클라이언트 id :', socket.id); // 원격 호스트 접속 종료 이벤트 socket.on('disconnect', () => { console.log('클라이언트 연결 종료'); }); });client testSocket.io tester 로 접속 시클라이언트 연결 클..
QMessageBox예제import sys from PyQt5 import QtWidgetsfrom PyQt5.QtCore import pyqtSignalfrom PyQt5.QtWidgets import QMessageBoxfrom PyQt5.QtWidgets import QPushButtonfrom PyQt5.QtWidgets import QWidget ################################################################################class ValvePopup(QWidget): # Signal 선언부 send_valve_popup_signal = pyqtSignal(bool, name='sendValvePopupSignal') # ====..
로스트아크 (LostArk)1차 클로즈 베타부터 열심히 신청을 했었는데... 1차, 2차는 모두 떨어져서 구경도 제대로 못했었습니다. 이번 마지막 클로즈 베타는 크게 기대하지 않고 신청을 넣었는데 성공했습니다!게임을 즐길 수 있는 시간이 많지가 않아서 듬성듬성 스크린샷을 찍었는데 궁금하신 분들께 도움이 되었으면 좋겠습니다.없는 시간을 쪼개야하기 때문에 커스터마이징은 무시하고 패스해줍니다.첫인상 판타지 게임으로 알고 시작했는데 웬걸? 무협 게임의 풍경이 반겨줍니다. 색감이 부담스럽지 않고 부드러운 느낌을 주고, 뷰 형식은 '디아블로3'와 닮아있습니다. 게임을 혹시나 해보시게 된다면 바로 이해하실 수 있을꺼라고 생각합니다. 넘어가기를 선택할 수 있는 영상은 우측 하단에 'ESC'가 보이시나요? 영상을 넘길 ..
Install python and settingsSystem specraspberry pi 3B model ubuntu MATE (16.04 LTS)ETC (terminal copy, paste)Copy : ctrl + shift + CPaste : ctrl + shift + VPrepareInstall git$ sudo apt-get install git [sudo] password for user: [Enter your password] ...... Install etc$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm lib..
- Total
- Today
- Yesterday