본문 바로가기

분류 전체보기

OpenGL MVP Matrix OpenGL을 구성하는 기본적인 Matrix는 Model Matrix, View Matrix, Projection Matrix가 있음 - Model Matrix : 그리려는 Model을 OpenGL 세계의 어디간에 배치할 때 사용 - View Matrix : 카메라 (보는 관점, 시점) - Projection Matrix : 평면인 스크린에 투영과 3D의 관점을 얻기위한(설정을 위한) 변형
Swift - NSLock 간단히 이해하기 어느 언어든지 간에 Thread를 사용하는 프로그램을 개발할 때에는 Thread Safe하게 코드를 구성해야 할 때가 있습니다. Swift에서도 마찬가지입니다. Swift에는 간단히 사용할 수 있는 NSLock라는 클래스가 있습니다. 아주 간단한 예제를 통해서 사용 방법을 익혀 봅시다. var money = 10000 DispatchQueue.global().async { buy() } DispatchQueue.global().async { buy() } func buy() { money = money - 1000 print(money) } 멀티 스레딩 예제로 아주 적합한 돈에 관련한 예제입니다. 코드를 보면 DispatchQueue.global().async를 통해서 2개의 Thread를 실행시킵니다...
iOS HTTP통신 라이브러리 Alamofire 간단한 사용법 이번 포스팅에서는 iOS HTTP 통신을 할 때 필수 라이브러리인 Alamofire에 대해서 아주 간단한 포스팅을 해보려고 합니다. iOS에서 기본적으로 제공하고 있는 HTTP통신 방법은 여러가지가 있지만 URLSession을 이용한 방법이 있습니다. 모두같은 방법으로 사용하진 않겠지만 기본적으로 이러한 형태로 요청이 가능합니다. var request = URLRequest(url: URL(string: "https://api.github.com/users")!) request.httpMethod = "GET" URLSession.shared.dataTask(with: request) { (data, response, error) in } 만약 여기서 Get요청이 POST요청으로 바뀐다고 한다면 var ..
iOS UILabel CornerRadius 해결 방법 아주 간단합니다. 를 하기전에label.layer.cornerRadius = 4 를 해줍니다.^label.clipToBounds = true
RxSwift - 초기 값을 가지고 있는 BehaviorSubject BehaviorSubject는 PublishSubject와 달리 초기 생성 시 값(이벤트)를 가지고 생성되는 Subject입니다. 사진과 같이 보라색의 값을 미리 저장해 뒀다가 subscribe()가 실행되면 미리 저장해둔 값의 이벤트를 실행 시킵니다. PublishSubject와 코드를 비교해 봅시다. PublishSubject/// Creates a subject. public override init() { super.init() } BehaviorSubjectpublic init(value: Element) { _value = value } 생성자를 보았을 때 값을 받아 놓는 것을 볼 수 있습니다. 다음 코드를 봅시다. PublishSubjectpublic override func subscrib..