분류 전체보기
-
[iOS] 모듈화를 해야 하는 이유스위프트 2024. 1. 14. 16:50
개발을 하면서 왜 모듈화를 해야 하는지에 대한 개인적인 이유입니다. 다른 의견 있으시면 댓글 달아주시면 감사하겠습니다! 🙇🏻♂️🙇🏻 캡슐화 먼저 캡슐화에 대한 이야기를 하려고 합니다. 2023.08.13 - [객체지향프로그래밍] - [OOP] 객체지향프로그래밍 기초 [OOP] 객체지향프로그래밍 기초 OOP의 개념 객체지향 프로그래밍 (Object Oriented Programming)은 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호 hogumachu.tistory.com 캡슐화에 대한 자세한 내용은 위에 링크를 참조해 주세요. 모듈 수준에서도 캡슐화가 진행되어야 한다고 생각합니다. 만약 진행하지 않는다면 외부에..
-
[iOS] ViewController Life Cycle (+ ViewIsAppearing)스위프트 2023. 9. 2. 16:58
Overview ViewController에 새로운 viewIsAppearing(_:) 메소드가 추가되었습니다. 새로워진 ViewController의 생명 주기와 레이아웃은 어떤 방식으로 설정이 되는 지 알아봅시다. ViewController Life Cycle ViewController에도 생명 주기가 있습니다. 메모리에 적재되어 레이아웃을 잡고 사용자에게 시각적으로 보입니다. 그리고 더이상 필요 없다면 사라집니다. init 잘 알고 있는 객체의 init 메소드입니다. 가장 먼저 호출이 됩니다. loadView ViewController가 관리하는 View를 만드는 메소드입니다. View를 로드하거나 생성하여 View Property에 할당합니다. 애플 문서에 따르면 해당 메소드는 직접 호출하지 말라고..
-
[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..