일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- SwiftUI
- authentication
- ar
- ios
- gesture
- 네트워크
- realitykit
- swift
- firebase
- Network
- Performance
- GCD
- RxSwift
- stateobject
- Animation
- arkit
- state
- WWDC
- 데이터최적화
- CS
- withAnimation
- fullscreencover
- iphone
- UIKit
- environmentobjet
- Concurrency
- combine
- dataflow
- 달력
- auth
- Today
- Total
목록Home (52)
XLOG
작년 Apple Developer Academy 에서 iOS 에 대해 처음 공부를 했다. 마지막 프로젝트에서 팀원들과 SwiftUI 를 쓸 것이냐? UIKit을 쓸 것이냐 에 대한 이야기를 나눴었다. 큰 이견없었다. 다들 현업에서 UIKit 을 쓰고 있으니, 당장 1~2년 안에 취업을 할 생각을 가지고 있다면 UIKit 을 하는게 좋겠다 란 얘기가 나와서 UIKit을 썻었다. 나의 경우엔 이전 프로젝트에서 UIKit을 거의 안써봤기에 UIKit을 써보고 싶다는 생각을 했었기에 좋았다. 하지만 요즘 혼자 공부를 하면서 저런 이유말고, 왜 UIKit인가? 왜 SwiftUI인가? 에 대한 이유를 찾게 됐다. 그렇다면 SwiftUI 는 뭘까? wwdc19 SwiftUI essentials 를 보면 좋은 UI를 ..
https://yagomacademy.notion.site/iOS-2-3f670cc9788f4384b000bfe940447d59 원티드 프리온보딩 챌린지 iOS 2차과정 사전과제 - 사전과제는 자신의 GitHub의 공개 저장소에 작성하여 링크를 전달주세요. [제출 링크] - 사전 과제는 챌린지를 준비하며 스스로의 학습 수준을 점검하기 위한 용도입니다. - 학습 커리큘럼은 사 yagomacademy.notion.site 커리어 전환을 위해 작년 Apple Developer Academy 1기를 수료 후, 취업 준비를 하는도중 원티드에서 프리온보딩 iOS 챌린지가 열린다는 소식을 들었다. 참가신청을 하려고 했더니 동시성 프로그래밍 관련 과제가 있었다. 과제는 GCD 를 이용하여 이미지를 불러오는 것이었다. ..
우리는 onAppear 와 같은 sync context 내에서 비동기 함수를 실행하고 싶을 수 있다. 하지만 사용하려고 하면 error 가 발생을 한다. 이러한 에러를 해결하기 위해선 sync 세계와 async 세계를 연결해줄 다리역할을 하는 것이 필요하다. 그것은 바로 Task 이다. wwdc21 Meet async/await in Swift 에서 말하길 Task 를 만나면 가용한 thread 에 작업을 할당해 준다고 한다. 공식문서에서도 비동기작업 유닛이라고 나온다. 예시코드 참고 - WWDC21 Meet Async/await in Swift - 공식문서
Async/await 은 concurrency programming 을 위한 swift 5.5 에 나온 기능이다. 기존에는 비동기 프로그래밍을 위해 GCD를 사용하며 completion handler를 많이 사용했다. 하지만 여기에 큰 문제점이 있다. thread explosion, deadlock, 가독성 등 개발자들은 조금 더 쉽고 안전하게 비동기프로그래밍을 하길 원한다. 그래서 채택하게 된 것이 async/await 이다. 우선 wwdc 영상에 나온 예시 코드를 먼저 살펴보자. 우선 위에 코드는 기존 completion handler 를 사용한 방법이다. wwdc21 Meet async/await in Swift 영상에서 나온 코드인데, 설명 중에 guard let ~ else { return } ..
GCD ( Grand Central Dispatch )는 다중 코어 프로세서 및 기타 대칭 다중 처리 시스템이 있는 시스템에 대한 응용 프로그램 지원을 최적화하기 위해 Apple Inc.에서 개발한 기술입니다. 이 간단하게 우리의 핸드폰, 컴퓨터는 멀티 프로세스, 멀티 스레드를 지원한다. 자연스럽게 웹과 앱에서도 다중 처리 시스템이 도입되게 된다. iOS로 설명을 하자면 iOS서는 메인쓰레드를 통해 UI 업데이트를 진행하고 있다. 하지만 UI 를 업데이트를 할때 연산, 데이터 다운로드 등의 네트워킹 작업들이 함께 동반되어야 한다. 하지만 UI 업데이트를 위해 필요한 작업들은 우리 UI의 반응을 멈추게 하면 안된다. 이것은 애플이 강조하는 바이다. ( 참고, Swift 에서는 Thread pool 관리를 ..
SystemCall 이란, 서로 다른 프로세스 간의 호출을 의미한다. 간단하게 예를 들자면, 우리는 파일을 HDD, SSD 등에 저장하고, 외부장치를 연결하고 사용하는 것들을 모두 OS에서 컨트롤을 하게 된다. 키보드 입력, 마우스 클릭등. 우리가 사용하는 프로그램(프로세스)는 많은 라이브러리가 있고 그 라이브러리의 함수들로 이루어져 있는데, 거기에는 system call 함수가 호출이 되도록 되어 있다. system call 함수가 호출이 되면 현재 사용중이도 process는 wait 상태로 빠지게 되고, OS의 프로세스가 동작을 하게 되면서, system call 함수에 의해 호출 된 함수의 결과값을 syscall 함수에 리턴을 해주어 받은 데이터를 사용하여 프로그램이 다시 진행이 되게 된다.
캐시란 구동속도가 빠른 장치와 느린 장치에서 발생할 수 있는 병목현상을 줄여주기 위한 것을 의미한다. cpu 캐시 메모리는 cpu가 대용량의 메인 메모리에 빠르게 접근하기 위해 cpu 칩 내부 혹은 바로 옆에 탑재하는 작은 메모리다. 상대적으로 처리 속도가 느린 메인 메모리를 보완 하여, 자주 사용 예상되는 데이터를 저장함으로써 cpu의 메모리 접근 속도를 향상시켜 처리속도 까지 올려주는 역할을 한다. 지역성 캐시가 효율적으로 동작을 하기 위해선, 캐시가 저장할 데이터가 지역성을 가져야 한다. 지역성이란 데이터 접근이 시간적 혹은 공간적으로 가깝게 일어나는 것을 의미한다. 시간적 지역성 특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것을 시간적 지역성이라고 한..
CPU의 시작은 제어장치부터로 보면 된다. 참고 자료 https://gyoogle.dev/blog/computer-science/computer-architecture/컴퓨터의 구성.html https://www.youtube.com/watch?v=rTaNNQhwmt0 https://all-young.tistory.com/17
OSI 7게층과의 차이점 OSI 모델은 7계층, TCP/IP는 4계층 OSI 모델은 ISO에서 개발했다. TCP/IP는 미정부기관 DARPA에서 개발을 시작하고, ARPANET을 통해 오늘날의 인터넷이 탄생. OSI는 개방형 시스템 상호 연결을 나타낸다. OSI 모델에서 전송 계층은 연결 지향적이다. TCP/IP 모델의 계층은 연결 지향적이고 비연결적이다. OSI는 네트워크 계층을 사용하여 라우팅 표준 및 프로토콜을 정의한다. TCP/IP 는 인터넷 계층만 사용한다. OSI는 개방형 시스템 상호 연결을 나타낸다. TCP는 전송 제어 프로토콜을 나타낸다. 4. Application 데이터 단위: Data / Message 프로토콜 (Http, ftp, SMTP 등) 3. Transport 데이터 단위: S..
정의 네트워크 아키텍처에서 각 계층의 고유한 기능을 정의해 놓은 것 즉 네트워크 아키텍처는 프로토콜의 집합으로 볼 수 있다. TCP/IP HTTP RTSP FTP SMTP 등 기능 Fragmentation & Reassembly (패킷) Encapsulation (필요한 정보를 헤더에 포함시킴) Flow Control Synchronization (데이터를 주고 받는 상태에 대하여) Sequence Control Error Control Addressing Multiplexing Transmission Service 구성요소 Syntax(형식) - 데이터를 어떻게 구성할 것인가? 어떻게 해석할 것인가 SEmeantic(의미) - 데이터를 어떻게 제어할 것인가? 오류는 어떻게 처리할 것인가 Timing(순..