일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 커스텀 뷰
- 부스트캠프
- Cocoa Internals
- 후기
- OS
- 개발
- Opensource
- 코코아 인터널스
- IOS
- Hello
- 부트캠프
- rxswift
- development
- 네이버 부캠
- boostcamp
- 단위 테스트
- World
- notion
- Design Pattern
- Algorithm
- 디자인패턴
- 알고리즘
- Tistory
- WWDC
- Swift
- SwiftUI
- Today
- Total
목록분류 전체보기 (47)
꿈돌이랜드
Target Action우리는 흔히 UIKit를 이용하여 개발할 때 버튼이나 여러 요소들의 사용자 이벤트를 처리하기 위해 Target Action 디자인패턴의 원리를 이용해 다음과 같은 코드를 사용한다.let button = UIButton() button.addTarget(self, action: #selector(touchUpButton(_:)), event: .touchUpInside) @objc func touchUpButton(_ sender: UIButton) { //... } 헌데 실제로 어떻게 프로그램의 런타임에서 action이 실행될 수 있는 것일까? 그 원리를 알아보고자 한다.Dispatch우선 Dispatch의 개념을 알아야 한다.많은 객체지향 언어들이 상속을 통해 메소드와 프로퍼티들..
네이버 부스트캠프 지원계기iOS 관련 부트캠프를 알아보던 중, iOS 과정이 있는 부트캠프는 크게 3가지 인 것 같았다. 네이버 부스트캠프, 서울시 새싹, 애플 디벨로퍼 아카데미. 사실 애플 아카데미에 흥미가 있었지만, 포항에 가야한다는 부담감이 있었고, 새싹은 아직 지원기간이 아니었었다. 그래서 네이버 부스트캠프가 제일 좋은 선택지로 다가왔고, 주변 분들께서 네이버 부스트캠프를 추천하셔서 iOS파트를 지원하기로 했다.지원서(자소서) 작성문항이 제대로 기억나지는 않지만 간단하게 학력, 경력사항 등과 자소서, 블로그나 깃허브 주소를 작성해야 했다. 자소서는 항목당 400자 내외로 작성이라 되어있어서 큰 부담은 없었고 지금까지 작성했던 자소서들 중 간추리고 정리해서 금방 작성해서 미루고 미루다가 하루?만에 ..
Testing your apps in Xcode 애플 개발자 문서를 읽으면서, Xcode에서 테스트를 어떤식으로 하는지 알아봅시다. Xcode에서 앱 테스트 하기XCTest로 로직 실패 감지, UI 문제, 그리고 성능 회귀 측정하기.개관XCTest는 다양한 수준의 추상화에서 테스트를 작성하는 기능을 용이하게 합니다. 좋은 테스트 전략은 여러 유형의 테스트를 결합해서 각각의 이점을 극대화합니다. 앱의 로직을 다루기 위한 많은 빠르고 잘 분리된 단위 테스트, 그보다 더 적은, 제대로 연결되어 있음을 보여주기 위한 소수의 통합 테스트, 일반적인 사용 사례의 올바른 UI 동작을 확인하기 위한 UI Test를 포함한, 아래 그림과 같은 테스트의 “피라미드” 분포를 목표로 합니다. UI 테스트는 앱이 예상대로 사용..
지난 CMC 메이커스 동아리를 통해 팀원들과 Runway 앱 개발을 진행했다. 팀원들과 밤도 지새우고 힘들었지만 마지막에 대상이라는 좋은 결과를 얻을 수 있었다. 누구하나 가릴 것 없이 모두 열심히 하는 팀원들 덕분에 포기하지 않고 마지막까지 열심히 개발할 수 있었던 것 같다. Runway 앱은 코로나 이후 증가하고 있는 오프라인 쇼핑을 겨냥하여 제작된 앱이다. 현재는 성수 지역의 매장들을 데이터로 하여 서비스하고 있다. (발로 직접 뛰어 데이터를 수집한 기획자 설원, 디자이너 유쨍 모두 고생했다…)현재, 앱스토어와 플레이스토어 모두 출시된 상태이다.CMC 동아리에서는, 각 파트별 한명씩 맡아 팀을 이루게 된다. 나는 iOS 개발을 담당했다. 혼자서 작업해야 한다는 점을 인지하고 동아리에 지원했었지만, ..
스위프트에서 리스트를 뒤집는 것은 Swift Standard Library의 .reversed() 를 활용할 수 있다. 놀랍게도 이 메서드는 시간복잡도가 O(1)이다. 왜냐하면 이건 lazy이고, 원래 컬렉션을 거꾸로 뒤집는 뷰를 생성하기만 하기 때문이다. 정확히 말하자면 ReverseCollection이라는 래핑객체를 반환한다. 따라서 우리는 O(n) 시간 복잡도로 리스트를 순회할 수 있게된다. 하지만 이것을 인덱스로 접근하면 O(1)이라는 시간복잡도를 잃게된다. let arr = [1, 2, 3, 4] let i = arr.reversed()[1] // lose O(1) efficiency. 먼저 알아둘 것은, reversed() 메서드는 구체적으로 다음 두가지 정의 중에 선택하여 오버로드 된다는 점..
지난번 글의 Responder Chain과 연관해서 알아두어야 할 hitTest 입니다.애플 문서를 기반으로 작성했습니다. hitTest(_:with)UIView의 인스턴스 메서드입니다.자신을 포함한 현재 뷰의 뷰 계층에서 지정된 point를 포함하는 가장 먼 자손을 리턴합니다.func hitTest( _ point: CGPoint, with event: UIEvent? ) -> UIView?point: 뷰의 로컬 좌표계에 있는 지점event: 이 메서드에 대한 호출을 보장하는 이벤트. 이벤트 처리 코드 외부에서 이 메서드를 호출하면 nil을 반환합니다. 반환값현재 뷰의 가장 먼 하위 뷰이며 point를 포함하는 뷰 객체 입니다. point가 현재 뷰의 뷰 계층 구조 외부에 있는 경우 nil을 반환합니다..
본 포스트는 애플 공식 문서를 기반으로 작성했습니다.UIResponder이벤트를 핸들링하고 처리하기 위한 추상 인터페이스 입니다. Responder란 이벤트를 핸들링하고 이벤트에 반응할 수 있는 객체입니다. Responder 객체는 UIKit로 이뤄진 앱의 이벤트 핸들링 뼈대를 이룹니다. 많은 핵심 오브젝트는 또한 UIApplication 객체, UIViewController 객체, UIWindow를 포함한 UIView 객체 들을 포함합니다. 이벤트가 발생하면 UIKit는 핸들링 하기 위해 그것들을 앱의 responder 객체로 가져옵니다. 여러 이벤트가 있을 수 있습니다. 터치 이벤트, 모션 이벤트, 원격 제어 이벤트, 버튼 누르기 이벤트를 포함합니다. 특정 타입의 이벤트를 제어하기 위해, 리스폰더는 ..
운영체제컴퓨터 하드웨어를 관리하는 소프트웨어사용자와 하드웨어 사이의 중재자CPU, 메모리, 입출력 장치등의 자원을 적절하게 프로그램에 할당할 책임 (하드웨어 자원 관리) 운영체제를 공부하는 이유? 거의 모든 코드가 운영체제 위에서 실행되므로 운영체제 작동방식에 대한 지식은 적절하고, 효율적이며, 효과적이며, 안전한 프로그래밍에 중요하기 때문 컴퓨터 시스템의 구성현대 범용 컴퓨터 시스템은 하나 이상의 CPU와 구성요소, 공유 메모리 사이의 액세스를 제공하는 공통 버스를 통해 연결된 여러 장치 컨트롤러로 구성일반적으로 운영체제에는 각 장치 컨트롤러마다 장치 드라이버가 존재인터럽트장치 컨트롤러가 CPU에게 작업이 완료, 혹은 오류가 발생되었다는 사실을 알리는 등 많은 목적으로 사용되는 운영체제와 하드웨어 사이..