본문 바로가기
반응형

기술적인 이야기301

Objective-C에서 인터페이스 공개시키기 C 언어는 OOP 언어가 아니기 때문에 애초에 접근 제어(Access Control)와 관련된 기능이 없다. 그래서 보통은 헤더파일에 공개하기를 원하는 변수나 함수 등의 선언문을 작성해 놓고 필요한 곳에서 해당 헤더를 포함(include)시켜서 사용한다. 하지만 항상 헤더가 제공되는 법은 아니다. 만약 헤더 파일이 없다면 extern이라 불리는 키워드를 이용해 외부에서 구현된 기능을 적당히 참조하거나 호출하는 것이 가능하다. 예를 들어 아래의 코드가 있다고 치자. int globalvalue = 0; int foobar(int left, char *right) { ... } 위 코드의 인터페이스가 없더라도 아래와 같이 선언하면 위의 변수와 함수를 그대로 쓸 수 있게 된다. extern int global.. 2023. 3. 13.
Objective-C 블록 문법 블록(block)은 Objective-C에서 쓸 수 있는 동적 함수 혹은 클로저(Closure)와 비슷한 기능이다. 필요할 때 동적으로 생성될 수 있고 이름 없이도 구현할 수 있는 등 다른 여러 언어들의 클로저 개념과 상당히 유사하다. 블록이 컴파일될 때는 실제로는 함수 포인터 형식으로 변경되는 것으로 유추된다. 실제 코드에 포인터를 의미하는 * 문자가 사용되지 않지만 nil 을 가질 수 있는 등 포인터로 대체되어 컴파일되는 것 같다. 문법 꺽쇠 즉 ^ 문자가 블록을 가리키는 핵심적인 오퍼레이터다. ^{ ... } 위가 블록 문법을 알려주는 가장 기본적인 문법이지만 실제로는 아래와 같은 식의 문법을 쓰게 되는 것 같다. returntype (^name)(parameters) = ^(parameters) .. 2023. 3. 11.
AI챗봇에 대한 여러 부정적인 생각들 ChatGPT를 통해 촉발된 AI챗봇이 아직도 화제인 것 같다. AI를 도입하려는 기업들의 주가가 연일 폭등하고 있다. 이런 상황이 개인적으로는 그다지 달갑지만은 않다. 과연 AI챗봇의 등장은 우리 인간들의 삶을 윤택하게 만들 수 있을까? AI Chatbot AI챗봇은 채팅 형식으로 사용자에게 글(Text)을 생성해서 보여주는 서비스다. 다만 내용을 창조하는 것은 아니고 학습했던 대용량의 자료들 중 최적의 자료를 찾아 이를 글로 조합하는 것이 특기인 서비스다. 그런데 조합된 내용이 생각보다 수준이 높고 문장이 자연스러워서 화제가 되고 있다. 채팅 형식이기 때문에 대화하는 식으로 사용할 수 있으며 이 과정에서 일시적인 학습을 시키는 것도 가능하다. AI챗봇을 촉발시킨 ChatGPT는 GPT-3 기술 기반 .. 2023. 3. 9.
아이폰 배터리 언제 교체하는 것이 좋을까? 요즘은 iPhone 등의 스마트폰을 구입하면 최소 3년은 쓰는 것 같다. 아무래도 물가도 오르고 폰 가격도 오르는데 정작 지갑은 얇아지고 있으니 어쩔 수 없는 것 같다. 그래서 대안으로 스마트폰을 한번 구입하면 오래 쓰는 대신 배터리를 갈아주는 식으로 오래 사용하는 것이 추천되는 시대다. 그런데 배터리는 언제 교체하는 것이 좋을까? 시작부터 결론(TL;DR) 아마도 배터리 최대 용량 80% 아래로 내려가면 배터리를 필수로 교체해야 할 것 같다. 무상보증 기간 내라면 심각한 결함 수준이며 무료 교체가 가능한 수준 같다. 이 결론은 유추에 가까운데, 애플의 공식 문서에 따르면 명확한 수치가 적혀있지만 않지만 내용의 여러 이미지에서 힌트를 찾을 수 있었다. 문서의 각 이미지에서 배터리 최대 용량이 80% 이상.. 2023. 3. 8.
macOS 13.2.1, iOS 16.3.1 업데이트 노트 macOS Ventura 13.2.1 애플은 이번 업데이트가 매우 중요한 수정사항을 담고 있다고는 했는데 정작 릴리즈 노트는 공개하지 않았다. 혹은 공개할 만한 내용이 없는 것일 수도 있다. 물론 마이너 픽스이기 때문에 눈에 띄는 변화가 없는 것은 당연하다. 비공식 루트에 따르면 WebKit의 중요 보안 버그가 수정되었다고 한다. 나중에 업데이트된 공식 릴리즈 노트에 따르면 크게 커널, Shortcut, WebKit 보안 버그 수정이 핵심인 업데이트다. (출처) iOS 16.3.1 iOS 16.3.1은 마이너 버그 픽스 업데이트로 겉으로 보이는 기능적인 변화는 전혀 없다고 봐도 된다. 특징적으로 아래와 같은 버그 수정 및 보안 업데이트가 포함되어 있다: iCloud 설정이 반응하지 않거나 iCloud를 .. 2023. 2. 14.
C에도 Boolean 타입이 있다? C 언어는 너무도 오래전에 탄생한 탓일까? 이진(boolean) 타입, 즉 참(true)과 거짓(false)을 표현하기 위한 데이터 타입이 존재하지 않는다. 아 물론 개인적인 기억 속의 이야기다. 하지만 최근에는 이상한 이야기를 들었다. C 언어에도 boolean 네이티브 타입이 존재한다는 소리 말이다. C 언어를 다뤄본지는 좀 오래된 너무나 구식 인간이었던 나는 이게 도대체 무슨 소리인지 몰랐다. 전통적으론 거짓 전통적인 C 언어를 생각해 보면 원시 타입(primitive types, 언어에 따라 builtin types)에는 참과 거짓을 표현하는 특수한 타입은 존재하지 않는다. 대신 숫자로 0은 거짓, 그 외의 값은 참의 의미로 쓰도록 설계된 언어다. 현재도 if 문의 조건에는 수식으로 0 이외의 값.. 2023. 2. 2.
macOS 13.2, iOS 16.3 릴리즈 노트 한국의 설날 연휴 사이에 macOS 13.2, iOS 16.3 등의 애플 플랫폼 OS가 정식으로 릴리즈 되었다. 여기서는 macOS와 iOS의 변경 내역을 간추릴 생각이었는데, 둘이 동일해서 그냥 하나로 뭉뚱그리면 아래와 같다: iCloud용 고급 데이터 보호: 종단간 암호화 지원 Apple ID의 보안 키를 이용한 사용자 계정 보안 강화 Freeform 버그 수정 VoiceOver 버그 수정 뭐 단순히 정리하자면 눈에 띄게 바뀐건 없는 보안 강화 정도의 업데이트다. 이외에도 물론 버그 픽스도 포함되어 있겠지만 말이다. 2023. 1. 24.
진도? 한 주간의 애플 소식들 업데이트 macOS Ventura developer beta 8, public beta 6 ios 16.0.2: 복붙 관련 버그와 아이폰 14 프로에서 써드파티 앱 카메라 흔들림 결함 등을 수정하는 마이너 업데이트 iOS 16.1 developer beta 2, public beta 2 iPadOS 16.1 developer beta 3 watchOS 9.0.1: 애플 워치 울트라 관련 결함 수정 업데이트 watchOS 9.1 developer beta 2 tvOS 16.1 developer beta 2 iOS 15.6.1 배포 중단 애플이 iOS 15.6.1의 사인(sign)을 중단했다는 소식이다. 하지만 iOS 15를 못 쓰는 건 아니다. iOS 16이 아닌 iOS 15를 쓰고 싶다면 iOS 15.7.. 2022. 9. 25.
업데이트 관련 소식 등 한 주간의 애플 소식들 업데이트 OS 업데이트들: macOS Monterey 12.6: 보안 업데이트. Ventura로 가기 전 마지막 Monterey일 수도 있다. iOS 16: 아기다리고기다리던 신 버전 공식 릴리즈다. 빌드는 이전 RC 버전과 동일하기 때문에 미리 설치했다면 업데이트할 필요는 없다고 한다. iOS 16.0.1: 새로 발매된 iPhone 14 시리즈를 위한 패치. watchOS 9: 역시 차세대 정식 버전의 공식 릴리즈다. tvOS 16: 역시 차세대 정식 버전의 공식 릴리즈다. 베타 업데이트들: iOS 16.1 developer beta iPadOS 16.1 developer beta 2 Safari 16.1 beta 기타 소프트웨어 업데이트: iOS 16.1 developer beta iOS 15.7: .. 2022. 9. 18.
Swift 5.7 변경사항 외 한 주간의 애플 소식들 업데이트 소식 iOS 16 release candidate developer beta watchOS 9 release candidate developer beta tvOS 16 release candidate developer beta macOS Ventura developer beta 7 iOS 15.7 beta: iOS 16 이전의 마지막 버전일 것으로 유추 애플은 차근차근 iOS 15에서 iOS 16 라인으로, macOS Monterey에서 macOS Ventura로 옮겨갈 준비를 하고 있다. 참고로 rc(release candidate) 버전은 베타 테스트 버전이긴 하지만 이대로 큰 문제가 없으면 그대로 릴리즈가 될 후보(candidate) 버전이라는 의미다. 대부분의 rc는 그대로 정식 버전이 .. 2022. 9. 11.
애플 아이폰 14 시리즈 등 신제품 발표 새벽에 애플에서 신제품 - 물론 아이폰 - 발표 행사가 있었다. 애플 제품 중 가장 큰 파이를 가지고 있는 제품이니 만큼 큰 관심이 집중되는 행사였지만 육아로 지친 자는 역시나 생방송 시청 따윈 사치였고 그저 애플의 공식 소식을 인용해 간단히 정리해보는 글이다. 아이폰 14 그리고 아이폰 14 Plus 일반형 모델이라고 해야 할지 저가형 모델이라고 해야 할지는 잘 모르겠지만 아이폰 14 모델도 이번에 발표되었다. 그리고 화면이 큰 모델은 Plus라는 새 이름이 붙어서 나왔다. 위 사진에서 보다시피 아이폰 13 시리즈의 외형을 그대로 답습하고 있는 모델이다. 팀쿡식 재고관리의 일환일 수도 있고 혹은 가격 정책적 전략일 수도 있겠지만 뭐 그렇다. 내부적으로도 전작의 A15 Bionic을 그대로 쓰는데 5코어.. 2022. 9. 8.
웹킷 소식 외 한 주간의 애플 소식들 소프트웨어 업데이트 iOS 16 developer beta 8 iOS 12.5.6: 구형 디바이스 보안 버그 수정 9월 행사가 코앞이라 베타도 거의 막바지가 아닐까 예상된다. WebKit의 새 집 WebKit이 GitHub으로 이사 감이라는 소식을 받았다. 개인적으론 좋은 소식이라 생각하는데, 아무래도 GitHub이 대중적이고 Git이 현재 VCS 중에선 가장 인기가 좋다고 생각하기 때문이다. 덕분에 사파리도 더 빠른 발전이 될 것 같다는 기대도 든다. AnyLayout으로 부드러운 화면 전환 구현하기 iOS 16의 SwiftUI에 추가된 AnyLayout을 이용해 레이아웃 간 트랜지션을 구현하는 방법을 설명하는 글이다. 이전에는 불가능한 트랜지션이 가능해지기 때문에 미려한 화면 전환 애니메이션을 구현해.. 2022. 9. 4.
베타 업데이트 소식 외 한 주간의 애플 소식들 업데이트 소식 이번에는 공식적인 소프트웨어 업데이트가 하나 있다. Bootcamp 6.1.16 차기 OS에 대한 베타 테스트 버전도 준비되고 있다. macOS Ventura developer beta 6, public beta 4 iOS 16 developer beta 7, public beta 5 iPadOS 16 developer beta 7, public beta 5 tvOS 16 developer beta 7, public beta 5 watchOS 16 developer beta 7, public beta 5 차기 OS의 첫 마이너 업데이트도 일부 준비 중인 모양이다. iOS 16.1 developer beta, public beta iPadOS 16.1 developer beta, public.. 2022. 8. 28.
한 주 간의 약간(?)의 애플 소식들 엔지니어 시점에서 지난 한 주간의 애플 관련 소식을 모으는 글이지만 양이 별로 없는 것 같다. 소프트웨어 업데이트 macOS 12.5.1, iOS 15.6.1, iPadOS 15.6.1 업데이트 Safari 15.6.1 for macOS Big Sur and macOS Catalina: 구형 OS의 위와 동일한 보안 버그 수정 추정 iOS 16 Develpoer Beta 6, Public Beta 4 iPadOS 16 Developer Beta 6, Public Beta 4 watchOS 9 Developer Beta 6, Public Beta 4 tvOS 16 Developer Beta 6, Public Beta 4 Custom Layout in SwiftUI SwiftUI에는 HStack, VStac.. 2022. 8. 21.
macOS 12.5.1, iOS 15.6.1, iPadOS 15.6.1 업데이트 간밤에 macOS 12.5.1, iOS 15.6.1 그리고 iPadOS 15.6.1 업데이트가 올라왔다. 특이하게도 상세한 업데이트 내역 없이 보안 업데이트만 되어있다고 한다. 그래서 검색해보니 아래의 내역을 찾을 수 있었다. (출처1, 출처2) Kernel Available for: macOS Monterey, iPhone 6s and later, iPad Pro (all models), iPad Air 2 and later, iPad 5th generation and later, iPad mini 4 and later, and iPod touch (7th generation) Impact: An application may be able to execute arbitrary code with kern.. 2022. 8. 18.
iOS 16 새로운 소식 외 한 주간의 애플 소식들 이번 주에 나왔던 여러 애플 관련 소식들 중 개발자 및 엔지니어 시점에서 흥미로운 몇 가지 소식을 간추려 봤다. 업데이트 아래의 개발자 베타 버전이 공개되었다. macOS 13 Ventura developer beta 5, public beta 3 iOS 16 developer beta 5, public beta 3 iPadOS 16 developer beta 5, public beta 3 watchOS 9 developer beta 5, public beta 3 tvOS 16 developer beta 5, public beta 3 다행히도 지연 가능성 소식이 뜬 iPadOS도 아직은 잘 따라오고 있다. 기타 여러 소프트웨어들이 업데이트되었다. iMovie, Final Cut Pro X 10.6.4 M.. 2022. 8. 14.
728x90
반응형