안녕하세요 Ick입니다! 오늘은 iOS에서 앱을 개발할 때 여러 개의 작업을 동시에 수행할 수 있도록 해주는 동시성 프로그래밍에 대해 알아보려고 합니다. 동시성 프로그램의 이론적인 내용은 여기를 참고해주세요! 이번 글에서는 동시성 프로그래밍을 직접 구현해보는 것만 해보려고 합니다! iOS에서 동시성 프로그래밍을 구현하기 위해서 Apple에서는 GCD라는 것을 만들어뒀습니다. 이는 직접 스레드를 만들어서 작업을 수행하는 것이 어렵고 문제를 발생할 수 도 있기 때문에, 시스템에서 자동으로 수행해주도록 해 준 것이라고 볼 수 있습니다! 저희는 이렇게 만들어진 GCD를 사용해서 동시성 프로그래밍을 할 수 있습니다! 그럼 사용해보기 전에 반드시 알아야 할 용어들만 간단하게 짚고 넘어가도록 하겠습니다. 동기(Syn..
안녕하세요 Ick입니다 ^~^ 오늘은 스토리보드 없이 테이블 뷰를 만들어 보는 것을 해보려고 합니다. 스토리 보드 없이 앱을 개발하는 기본적인 세팅은 여기를 참고해주세요! 이 글은 저 링크의 세팅을 마쳤다고 가정하고 진행하겠습니다! 우선 테이블 뷰를 사용하기 위해선 최소한으로 아래와 같은 것들이 필요합니다. 1. UITableView 2. UITableViewCell 3. UITableViewDataSource 이 세 개만 있으면 테이블 뷰를 사용할 수는 있습니다. 그럼 이 세 개만 가지고 테이블뷰를 만들어 보겠습니다!.! 그럼 아마 이 화면과 비슷한 화면일 거예요! 여기서 저는 UIViewController를 상속받는 클래스로 시작하려고 합니다. 사실 UITableViewController 클래스를 상..
안녕하세요! Ick입니다. 약 3주 전에 개인 Riot API를 신청했고 드디어 허가가 나서 이렇게 글을 올릴 수 있게 되었습니다. 그동안 임시로 주는 API key로 iOS에서 API 사용하는 방법에 대해 익히고 있었지만.. 2일 정도 되는 유효기간 때문에 많이 불편했었습니다..ㅠㅠ 하지만 이제 개인 API key가 있으니 열심히 사용할 일만 남았군요! Riot API를 사용해서 토이 프로젝트를 만들며 공부를 할 계획입니다. 우선 아주 잘 만들어진 OPGG 앱에 있는 기능들을 제가 직접 구현해볼 생각입니다. 오늘 구현해볼 기능은 랭킹을 조회하는 기능입니다. 우선 OPGG에서 랭킹을 조회하는 화면은 아래와 같습니다. 화면에 1~4위 까지의 랭킹만 보이는데 쇼메이커 선수의 계정이 2개네요..;; 대단합니다..
안녕하세요 Ick입니다. 개인적으로 만들어보고 있는 프로젝트 진행 중에 사용자의 입력을 받을 때 나타나는 키보드가 화면을 가려버리는 현상이 나타나서... 한 번 고쳐본 것을 글로 남겨보려고 합니다! 한 번 해보니 정말 간단하더라구요! 먼저 키보드가 화면을 가려버리는 것부터 보도록 하겠습니다 ㅋㅋ 입력을 받으려고 TextField를 누르면 키보드가 나오긴 하는데 전송 버튼을 누를 수가 없어요 ㅜㅜ 키보드가 나타나거나 사라질 때 화면도 키보드의 사이즈만큼 올리고 내리면 이 문제를 해결할 수 있습니다! 그럼 키보드가 나타나가서 사라지는 것을 앱에게 어떻게 알려야 할까요? Notification을 사용하면 이러한 이벤트를 알릴 수 있습니다. 물론 이번에 사용할 키보드와 관련된 이벤트 말고도 엄청나게 많은 이벤트..
공식 문서 Apple Developer Document - URLSession URLSession 네트워크 데이터 전송 작업과 관련된 그룹을 조정하는 객체이다. Declaration class URLSession: NSObject Overview URLSession 클래스 및 관련 클래스는 URL로 표시된 엔드 포인트에서 데이터를 다운로드하고 데이터를 업로드하기 위한 API를 제공한다. 또한 앱은 이 API를 사용하여 앱이 실행되고 있지 않거나 iOS에서 앱이 정지된 상태에서 백그라운드 다운로드를 수행할 수 있다. URLSessionDelegate, URLSessionTaskDelegate를 사용하여 인증을 지원하고 리다이렉션, 작업 완료와 같은 이벤트를 수신할 수 있다. 앱은 각자 데이터 전송 작업과 ..
문제 집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다. 이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선을 모두 N개의 같은 길이의 랜선으로 만들고 싶었기 때문에 K개의 랜선을 잘라서 만들어야 한다. 예를 들어 300cm 짜리 랜선에서 140cm 짜리 랜선을 두 개 잘라내면 20cm 은 버려야 한다. (이미 자른 랜선은 붙일 수 없다.) 편의를 위해 랜선을 자르거나 만들 때 손실되는 길이는 없다고 가정하며, 기존의 K개의 랜선으로 N개의 랜선을 만들 수 없는 경우는 없다고 가정하자. 그리고 자를 때는 항상 센티미터 단위로 정수길이만큼 자른..
이번 글에서는 Swift 공식 문서의 25번째 단원인 Memory Safety을 읽고 정리한 글을 쓰려고 한다. Apple Swift Document 25단원 - Memory Safety Memory Safety Swift는 코드가 안전하게 동작할 수 있도록 노력한다. 예를 들어 Swift는 변수가 사용되기 전에 초기화되고 메모리가 할당 해제된 후엔 접근되지 않으며 Array의 인덱스에서 벗어나면 오류를 발생시킨다. Swift는 메모리의 위치를 수정하는 코드가 해당 메모리에 대한 독점 접근 권한을 갖도록 요구하여 동일한 메모리 영역의 접근들의 충돌을 방지한다. Swift는 메모리를 자동으로 관리해주기 때문에 메모리 접근에 대해 크게 생각할 필요는 없지만, 충돌이 발생할 수 있는 위치를 이해해야 코드를 잘..
안녕하세요 Ick입니다! 이번 글에서는 iOS에서 동시성 프로그래밍에 사용되는 Dispatch Queue에 대해 알아보려고 합니다. 실제로 사용하는 방법은 여기를 참고해주세요! 참고한 문서는 언제나 그렇듯 공식문서입니다. Apple Developer Document - Dispatch Queue Dispatch Queues Grand Central Dispatch(GCD) 디스패치 큐는 작업 수행을 위한 강력한 도구이다. 디스패치 큐를 사용하면 호출자에 대해 비동기적 또는 동기적으로 코드 블록을 실행할 수 있다. 디스패치 큐를 사용하면 별도의 스레드에서 사용한 모든 작업을 수행할 수 있다. 디스패치 큐는 사용하기 쉬우며 스레드 코드보다 작업을 실행하는데 훨씬 효율적이라는 장점이 있다. 이번 글에서는 디스..
- Total
- Today
- Yesterday
- System
- operator
- DP
- 코테
- 코딩테스트
- Swift
- 스위프트
- Apple
- dfs
- OSTEP
- 프로그래밍
- OS
- Combine
- IOS
- 앱개발
- operating
- 백준
- BFS
- Publisher
- 알고리즘
- mac
- Xcode
- 문법
- 자료구조
- document
- 아이폰
- pattern
- design
- 테이블뷰
- 동시성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |