분류 전체보기
-
LLDB - 명령어 (2)LLDB 2021. 4. 17. 11:25
안녕하세요. 그린입니다🟢 오늘 포스팅에서는 LLDB에서 상태 변화를 줄 수 있는 명령어와 기능에 대해 알아보고 학습하겠습니다🧑🏻💻 오늘 알아볼 기능은 Stepping인데요, 스테핑 말 그대로 발걸음 같은 의미로 LLDB에서 프로세스 진행 상태를 단계별로 나아가면서 상태 변화를 볼 수 있는 기능입니다. Stepping에는 3가지의 기능이 담겨있는데 Step Over / Step In / Step Out입니다. 그럼 이제 자세히 3가지의 기능과 어떤 명령어를 사용하며 무슨 차이가 있는지 알아보겠습니다😃 Step Over : 브레이크포인트가 걸려있던 상태에서 다음 코드로 넘어가는 기능으로 축구에서는 헛다리 짚기 동작인데 어떻게 보면 헛다리를 짚는 동작 자체가 지금 현재 위치보다 발을 한단계 더 나아가서 짚는..
-
LLDB - 명령어 (1)LLDB 2021. 4. 16. 17:27
안녕하세요. 그린입니다🟢 이번 포스팅에서는 LLDB의 기본 문법 구조와 가장 기초적인 명령어에 대해 학습하겠습니다📝 LLDB의 문법 구조 : (lldb) command [subcommand] -option “Argument” - command & subcommand: lldb 안에서의 오브젝트 이름 (브레이크포인트, 셋, 리스트 등) -> 계층화 및 커맨드에 따라 서브커맨드 종류가 다름 - option: 커맨드 뒤 어느곳이든 위치가 가능함 - Argument: 인자에 공백이 포함되어있을때도 있어 주로 문자열처럼 묶어서 표현해줌 (꼭 문자열처럼 묶어서 표현해야되는것은 아님) - 명령어와 옵션들은 앞 1~2개 철자로 함축하여 사용 가능 ex) (lldb) breakpoint set --file ViewCon..
-
LLDB - 개념 및 소개LLDB 2021. 4. 16. 17:09
안녕하세요. 그린입니다🟢 오늘부터 LLDB를 부셔보겠습니다!! 이번 포스팅은 LLDB란 간략히 무엇인지 왜 사용하는것인지? 개념 및 소개를 하겠습니다🧑🏻💻 LLDB? - Low-Level Debugger라는 뜻으로 LLVM의 디버거 컴포넌트를 개발하는 애플의 서브 프로젝트 - 로우레벨 컨트롤 가능한 모듈로 이뤄져있으며 기계어에 가까운 영역까지 디버깅 가능 (C/C++/Object-C/Swift 지원) - Xcode의 기본 디버거로 내장 - 차세대 고성능 디버거!? - Clang식 파서 및 LLVM 디스어셈블러와 같은 LLVM 프로젝트의 기본 라이브러리를 활용한 재사용 가능한 컴포넌트 집합으로 빌드됨 - 실제 프로그램이 어떻게 동작하는지 이해가 쉬워짐 - LLVM의 프론트엔드에 대응하는 디버거로 간결하고..
-
RxSwiftRxSwift 2021. 4. 15. 16:07
안녕하세요. 그린입니다🟢 이번 포스팅에서는 RxSwift에 대해 기초적인 부분을 학습해보겠습니다🧑🏻💻 우선 이전 포스팅인 SwiftUI에 이어 RxSwift를 학습하기전 왜 이런것에 대해 배워야하는지 뭐가 중요한지 간략히 알아보겠습니다. 그러기 위해서는 우선 MVVM에 대해 알 필요가 있습니다. MVC / MVP / MVVM 1. MVC - 컨트롤러에서 사용자의 이벤트를 받고 모델에 데이터를 요청 및 변형하여 뷰에 업데이트 해주는 아키텍쳐 패턴 - 각각을 분리하여 의존성을 없애려했는데 뷰와 컨트롤러에서도 소통을 하기에 의존성이 생길 수 있어 재사용성이 낮아짐 2. MVP - MVC와 동일한 개념으로 C대신 P가 들어간것으로 프레젠터로 변경 - 뷰와 프레젠터의 의존성 문제가 결국 나타남 3. MVVM -..
-
SwiftUISwiftUI 2021. 4. 14. 22:55
안녕하세요. 그린입니다🟢 오늘의 포스팅은 SwiftUI에 대해 학습해보겠습니다🧑🏻💻 SwiftUI? - 스위프트 언어로 모든 플랫폼에서 앱에 대한 UI와 동작을 선언해주는 프레임워크 - 접근성 및 지역화 등 다양한 기능을 자동으로 지원해줌 (다크모드, 유동적 글자 크기 조정 등) - UIKit, AppKit, WatchKit 프레임워크 객체와 통합해 플랫폼 별 더 많은 기능을 활용할 수 있음 - 캔버스와 코드가 동기화되어 MVVM 아키텍쳐 패턴에 적합 - Xcode12, iOS13 이상부터 지원 가능 - 뷰 프로토콜을 채택하고 바디를 구현해주어 뷰를 사용하게함 - 공간의 개념으로 뷰를 만들면 중앙부터 차지하게됨 (상대적이 아님) SwiftUI 장점? - 한번의 개발로 모든 플랫폼에서 동작이 가능한 앱 ..
-
Early ExitSwift 2021. 4. 13. 10:55
안녕하세요. 그린입니다🟢 저번 포스팅인 옵셔널 체이닝에 이어 관련된 Early Exit, 빠른종료에 대해 학습해보겠습니다🧑🏻💻 옵셔널 체이닝과 옵셔널 바인딩은 이해가 된 상태에서 빠른 종료의 키워드인 guard에 대해 알아보고 if와는 어떤 옵셔널 바인딩에서 차이가 있을지에 대해 배워보겠습니다🙌 Early Exit : 빠른종료로 if문에서는 else 구문이 없어도 되며 만약 else 구문이 있을때는 if와 else 구문 모두 구현을 해주며 분기를 해줍니다. 그러나 guard 구문은 꼭 else 구문이 있어야 됩니다. else 구문에서는 무조건 상위의 코드블럭을 종료시키는 제어문 전환 명령 혹은 그 구문을 탈출시킬 수 있는 비반환 함수 / 메서드 호출이 있어야 합니다. 제어문 전환 명령어 : return..
-
Optional ChainingSwift 2021. 4. 12. 19:33
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Optional Chaining 옵셔널 체이닝에 대해 학습해보겠습니다. 옵셔널 체이닝 (Optional Chaining) : 옵셔널 체이닝이란 옵셔널을 여러번 체인 처럼 사용하는 기술 -> 옵셔널 체이닝을 된 부분에서 값이 하나라도 nil이면 nil을 반환 옵셔널 체이닝의 사용 import Foundation class Camper { var nickName: String var description: Description? init(nickName: String) { self.nickName = nickName } } struct Description { var gender: Gender? var age: Int } class Gender { var gende..
-
GCD & OperationSwift 2021. 4. 9. 15:02
안녕하세요. 그린입니다🟢 이번 포스팅에서는 일전에 다룬바 있는 동시성 프로그래밍에서 GCD & Operation에 학습해보겠습니다. 이전보다 전체적인 개념에 대한 학습은 같지만 조금 더 심화된 내용이라고 보면 될것 같습니다☺️ 우선 동시성 프로그래밍에서 중요한 비동기에 대해 조금 짚고 넘어가보겠습니다. 동시성 프로그래밍을 할때 가장 중요한 부분이 각 스레드별로 비동기적으로 일을 처리하게 해주는 부분입니다. 그래서 각 일을 기다렸다 하지 않고 동시에 처리하도록 만들어줍니다. 왜 작업을 비동기로 처리해야될까? : 비동기로 처리를 해주는 경우는 굉장히 많습니다. 예를들어 네트워크 작업들은 디폴트가 비동기입니다. 흔히 보는 테이블 및 컬렉션뷰에서 이미지를 서버에서 받아 뿌려주는 인스타그램들의 경우도 만약 비동기..