전체 글
-
[iOS] RxSwift를 이용하여 키보드 컨트롤하기 (NotificationCenter)스위프트 2023. 8. 22. 14:28
Overview 앱 개발을 하면 키보드에 따른 UI 변경을 해야 하는 상황을 마주합니다. 전에 RxKeyBoard라는 라이브러리 사용법을 소개한 적이 있습니다. (https://hogumachu.tistory.com/14) 이번에는 RxSwift만을 사용해서 컨트롤해 봅시다. 키보드 show/hide 예시 영상 RxSwift 없이 사용하는 방법 @objc private func keyboardWillShow(notification: NSNotification) { guard let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue else { return } prin..
-
[OOP] 객체지향프로그래밍 기초객체지향프로그래밍 2023. 8. 13. 18:41
OOP의 개념 객체지향 프로그래밍 (Object Oriented Programming)은 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다. 객체란 하나의 역할을 수행하는 '메소드와 변수(데이터)'의 묶음으로 봐야 한다. (출처 - 나무위키) class Person { private let id: String var name: String func eat(food: Food) { } } let hogumachu = Person(id: 1, name: "hogumachu") hogumachu 라는 객체를 만들었고 이는 Person 클래스의 인스턴스입니다. - id, name은 속성(proper..
-
[운영체제] 스레드(Thread)운영체제 2023. 8. 11. 16:20
Overview 전에 프로세스에 대해 알아봤습니다. 2023.08.10 - [운영체제] - [운영체제] 프로세스(Process) [운영체제] 프로세스(Process) Overview 전에 시스템 호출에 대해 알아봤습니다. 2023.08.09 - [운영체제] - [운영체제] 시스템 호출 (System Call) [운영체제] 시스템 호출 (System Call) Overview 전에 운영체제의 핵심이 되는 커널에 대해 알 hogumachu.tistory.com 이번에는 스레드에 대해 알아봅시다. 스레드 스레드(thread)는 프로세스 내에서 실행되는 흐름의 단위입니다. 스레드는 Stack 영역에 존재합니다. 멀티 스레드 하나의 프로세스는 한 번에 여러 일을 동시에 처리할 수 있습니다. (멀티 스레드) 멀티 ..
-
[운영체제] 프로세스(Process)운영체제 2023. 8. 10. 22:13
Overview 전에 시스템 호출에 대해 알아봤습니다. 2023.08.09 - [운영체제] - [운영체제] 시스템 호출 (System Call) [운영체제] 시스템 호출 (System Call) Overview 전에 운영체제의 핵심이 되는 커널에 대해 알아봤습니다. 2023.08.07 - [운영체제] - [운영체제] 커널(Kernel) [운영체제] 커널(Kernel) Overview 커널(Kernel)은 컴퓨터 운영체제의 핵심이 되는 컴퓨터 hogumachu.tistory.com 이번에는 운영체제에서 매우 중요한 프로세스에 대해 알아봅시다. 프로세스 프로세스(Process)는 '실행 중인 프로그램'을 의미합니다. 하드디스크 등 저장 공간에 있던 코드와 리소스 등을 실행하면 메모리에 올라가 실행이 되며 이..
-
[운영체제] 시스템 호출 (System Call)운영체제 2023. 8. 9. 20:56
Overview 전에 운영체제의 핵심이 되는 커널에 대해 알아봤습니다. 2023.08.07 - [운영체제] - [운영체제] 커널(Kernel) [운영체제] 커널(Kernel) Overview 커널(Kernel)은 컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램(Software)입니다. 커널은 시스템의 모든 것을 완전히 제어합니다. OS의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 hogumachu.tistory.com 위의 이미지처럼 프로그램은 직접적인 연결이 아닌 커널을 통한 간접적인 연결이 되었습니다. 즉 프로그램이 직접적으로 접근할 수 없다는 것 입니다. 프로그램이 직접적인 연결이 가능하다면? 만약 하나의 프로그램이 파일(리소스)에 직접적인 접근을 하면 문제가 없을 수도 있습니다 (있을 수..
-
[Swift] 티스토리 블로그를 자동으로 Github에 업데이트 (Git Actions)스위프트 2023. 8. 7. 18:22
Overview Swift를 통해 Tistory 글을 긁어와 깃허브에 자동으로 업데이트해봅시다. 아래는 이미지는 결과물입니다. 따라 하기 귀찮다면 https://github.com/hogumachu/hogumachu 의 main.swift 파일과 /.github/workflows/main.yml 을 보고 수정하시면 됩니다. RSS 긁어오기 자신의 블로그 주소 + RSS를 입력하면 정보를 가져올 수 있습니다. 저의 경우 https://hogumachu.tistory.com/rss 를 통해 값을 가져왔습니다. func load(url urlString: String) { guard let url = URL(string: urlString) else { return } URLSession.shared.data..
-
[운영체제] 커널(Kernel)운영체제 2023. 8. 7. 15:30
Overview 커널(Kernel)은 컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램(Software)입니다. 커널은 시스템의 모든 것을 완전히 제어합니다. OS의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공합니다. 커널의 역할 보안 커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임짐 자원 관리 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 함 특히 프로세스에 처리기를 할당하는 것을 스케줄링이라 함 추상화 일반적으로 커널은 OS의 복잡한 내부를 감추고 깔끔하고 일관성 있는 인터페이스를 하드웨어에 제공하기 위해 몇 가지 하드웨어 추상화들을 구현함 커널의 종류 단일형 커널 OS에서 일어나는 모든 일들을 한 개의 커널이 다 처리하는 방식 속도가 빠르고 설계가 편리함 잠..
-
[iOS] Life Cycle (App, Scene 생명 주기)스위프트 2023. 7. 30. 17:37
Overview 앱에는 생명주기가 있습니다. 앱이 열리고, 실행되고 그리고 백그라운드가 되고 종료가 됩니다. 앱이 Foreground 상태에가 당연히 Background 상태보다 리소스를 많이 사용하겠죠? iOS는 13버전 전과 후로 생명 주기에 변화가 있습니다. iOS 13 이전, 앱은 하나의 화면만을 책임졌습니다. UIApplicationDelegate를 통해 생명 주기 이벤트를 다뤘습니다. iOS 13 그리고 그 이후, 앱은 하나의 화면이 아닌 여러 화면을 다뤄야 했습니다. UISceneDelegate를 통해 생명 주기 이벤트를 다뤘습니다. App State 앱은 각각의 상태가 있습니다. 위에서 언급한 것 처럼 실행, 종료 등 상태가 있습니다. App State 설명 Not Running 앱이(사용..