본문 바로가기

분류 전체보기338

Creating custom combine Publisher(Operator) Combine에는 Publisher와 Subscriber라는 개념이 있다. Combine: framework that let you subscribe to things and get value from things "Things" = Publisher Publisher 자료형에는 Int, String, 등등 에러에는 아무 Swift Error type Subscriber: 소비자 (value를 받아들일 수 있는것) sink assign 특징 *Publisher는 value 를 바로 emit 하지 않고 subscriber의 demand 가 있어야 emit 한다. 일련의 동작과정 Subscriber -- (subscribe) --> Publisher Publisher 에서 receive(subscribe:).. 2021. 10. 4.
리팩터링 2판 - 01. 리팩터링: 첫번째 예시 [Swift] 리팩토링 1장은 좀 자세히 한번 봐도 좋을 것 같아서 정리 Playground 기준으로 코드 작성함 프로그램 예제코드 스펙 - 공연 요청이 들어오면 연극의 장르와 관객 규모를 기초로 비용을 책정, 공연과 별개로 포인트를 지급해서 공연료를 할인 받을 수 도 있음 Swift로 바꾼 예시 프로그램 더보기 import UIKit enum MyError: String, Error { case gerneError = "알수없는 장르" } struct Invoice { var customer: String var performances : [Performance] } struct Performance { var playID: String var audience: Int } struct Play { var name: .. 2021. 9. 29.
MZTimer Support Page This is support page of MZTimer app 2021. 9. 25.
클린코드 - 클래스 더 높은 단계의 클린코드 클래스 체계 클래스를 정의하는 표준 자바관례 변수 목록 정적 공개 상수 (public static) 비공개 변수 (private static) 비공개 인스턴스 변수 (private) 공개함수 비공개 함수 (자신을 호출하는 공개함수 직후) 캡슐화 변수와 유틸리티 함수는 가능한 공개하지 X 비공개 상태를 유지해야 하고 같은 패키지 안에서 테스트 코드가 함수를 호출하거나 변수를 사용해야 할 경우 protected로 선언하거나 패키지 전체 공개 클래스는 작아야 한다. 함수와 마찬가지로 "작게" 가 기본 규칙이다. 함수는 "작게" 의 개념을 행 수로 크기를 측정했다. 클래스는 맡은 책임을 기준으로 세운다. 예제의 superDashboard와 같은 70개의 공개 메서드 -> 딱봐도 책임이 .. 2021. 9. 1.
클린코드 - 형식 맞추기 형식을 깔끔하게 맞춰 코드를 짜야한다. 형식을 맞추는 목적 융통성 없이 맹목적으로 따르면 X 코드의 형식은 의사소통의 일환 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 영향을 줌 코드가 많이 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 영향을 미침 원활한 소통을 장려하는 코드형식이란 적절한 행 길이 200줄 정도의 파일로도 커다란 시스템을 구축 할 수 있다. 작은 파일이 이해하기 쉽다. 신문 기사처럼 작성 이름은 간단하면서 설명이 가능하게 작성 이름만 보고도 올바른 모듈을 살펴보고 있는지 판단 가능하게 소스파일의 첫 부분은 고차원 개념과 알고리즘 설명 아래로 내려갈 수록 의도를 세세하게 묘사 마지막에는 가장 저차원 함수와 세부 내역 짧은 양의 다양한 기사로.. 2021. 8. 17.
[WWDC 2021] What's new in SwiftUI What's new in SwiftUI - WWDC 2021 - Videos - Apple Developer There's never been a better time to develop your apps with SwiftUI. Discover the latest updates to the UI framework — including lists,... developer.apple.com Intro 3단계로 발전해 나왔음, 이번에는 release 3 원래 있던 UIKit, AppKit과 같이 사용할 수 있음 -> 새로운 feature 만들때 사용해봐~~ (응 iOS13이상이쥬~) - 맥 아이패드 아이폰에 노트앱 SwiftUI로 만들어졌음 - 맥의 아바타 Picker로 SwiftUI로 만들어졌음 expan.. 2021. 6. 9.
WWDC 2021 Watch list June 8 What's new in Swift [WWDC 2021] What‘s new in Swift Swift5.5 swift concurrency async await packages: 원래 Swift packages Index -> Swift Package manager 지원하는 패키지 찾을 수 있음 근데 이번 업데이트로 xcode에서 바로 찾을 수 있음 Swift Package Collec.. haningya.tistory.com Meet async/await in swift Explore structured concurrency in swift protect mutable state with swift actors Meet the UIKit button system What's new in .. 2021. 6. 9.
[WWDC 2021] What‘s new in Swift https://developer.apple.com/videos/play/wwdc2021/10192/ What‘s new in Swift - WWDC 2021 - Videos - Apple Developer Join us for an update on Swift. Discover the latest language advancements that make your code easier to read and write. Explore the... developer.apple.com Swift5.5 swift concurrency async await packages: 원래 Swift packages Index -> Swift Package manager 지원하는 패키지 찾을 수 있음 근데 이번 업데이트로 x.. 2021. 6. 9.
복합체 패턴 발표자료 2021. 6. 8.
WWDC Testing related Videos list 2015 https://developer.apple.com/videos/play/wwdc2015/406/?time=216 UI Testing in Xcode - WWDC 2015 - Videos - Apple Developer Xcode 7 introduces new UI testing features fully integrated into the IDE. Learn about the new APIs and how UI testing fits in with... developer.apple.com 2016 https://developer.apple.com/videos/play/wwdc2016/409/ Advanced Testing and Continuous Integration - WWDC 2016 - .. 2021. 5. 25.
[Powerapps in action] #0 시작하는 글 지난 몇 달 동안 뜻이 맞는 분과 함께 Microsoft powerApps 플랫폼을 통해 사이드 프로젝트를 진행했습니다. 프로젝트를 진행하며 비즈니스적인 요구사항들을 직접 power platform 을 통해 해결해보고 MVP를 만든 과정을 하나씩 소개할까 합니다. 이미 만들어본 MVP를 통해 작성할 것이기에 특정 산업 domain에 대한 powerapps 튜토리얼이 될 수도 있지만 비즈니스의 핵심은 결국 산업에 관계없이 human resource 관리와 project automation 등의 본질은 같다고 생각하기에 글을 통해 다양한 도메인에 계신 분들이 참고하여 또다른 비즈니스 영역에서 도움이 되었으면 합니다. 저도 깊은 이해도는 없지만 한국어로 된 포스팅이 많이 없어서 포스팅을 생각하게 되었습니다. .. 2021. 4. 24.
[환경세팅] 예전 버전 cocoapods 설치 (1.9.1) macOS 10.15.X에서 이전 1.9.1 cocoapods 설치처음에 sudo gem install cocoapods -v 1.9.1 했더니 오류뜸Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.그래서 brew 로 설치해보라고 떠서brew 설치brew install cocoapods했더니 1.9,1 이 아닌 최신 버전이 설치됨gem 으로 돌파해야됨.(참고로 $ sudo xcode-select --install 로 cli 설치해도 안됨)문제.. 2021. 3. 31.
Swift Closure (일급객체 함수) Function Type 1st class citizen 함수는 1등 시민 함수는 어디든 갈 수 있다. 함수는 다른 함수의 매개변수가 될 수 있다. 함수가 함수를 리턴할 수 있다. 함수를 변수에 할당할 수 있다. 함수 타입 () -> Void (Int, Int) -> Int Example 1) 변수에 함수를 할당할 수 있다. /// Apple example code func addTwoInts(a: Int, b: Int) -> Int { return a + b } func multiplyTwoInts(a: Int, b: Int) -> Int { return a * b } var mathFunction:(Int, Int) -> Int = addTwoInts //이 자리는 type 자리인데 함수가 들어갈 수.. 2021. 3. 25.
RxSwift background knowledge 1. RxSwift 또는 Reactive Extension의 히스토리 (Functional Reactive Programming: FRP) 1997 1997년 Functional Reactive Animation을 만들기 위해 개념이 고안됨 animation을 DSL 언어로 설명하고자 하는 목표가 있었음 animation의 움직임을 벡터화 하여 렌더링 타임에 샘플링을 완료할 수 있는 성능을 가짐 (60images/second) 예시는 jonaschapuis.com/wp-content/uploads/2017/09/ReactiveProgrammingOriginsAndEcosystem.pdf 슬라이드 참조 2009 에릭마이어가 FRP개념을 바탕으로 MS .NET의 Reactive Extension을 개발 20.. 2021. 3. 25.
Swift 아키텍쳐 노트 아는 형님이 설명해주신 방법이 좋은 것 같아서 정리해 본 페이지 MVC Controller에 코드 다 때려박음 Model View ViewModel MVVM 에서 View와 관련없는 로직은 ViewModel에 위치하게됨 View 와 ViewModel 은 binding이 이루어짐 (rxSwift, Combine 이용) Massive Controller 에서 Massive viewModel된 느낌 Model View ViewModel + Coordinator 화면전환 역할을 ViewController 에서 분리해서 Coordinator에 적용 화면 전환을 해결해 준 Coordinator 패턴 리액티브 프로그래밍(Reactive Programming)을 사용하기 위해, VIPER 패턴으로 되어 있는 앱 구조를.. 2021. 3. 3.
LRU cache (Swift) LRU Cache - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com cache 가 full 이면 가장 오래전에 사용한 애를 cache 에서 쫒아내야한다. O(1) 로 구현해야 한다. 필요한 조건 분석 fast lookup O(1) fast removal O(1) least recently used 기록 fast access / look up 을 생각하면 HashMap 이 생각나야 한다. fast removal / least recently used 를 생각하면 .. 2021. 1. 29.
876. Middle of the Linked List Middle of the Linked List - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 링크드 리스트의 중간 값을 들고오는 문제이다. 한바퀴 돌면서 size 를 알고 중간 index까지 한번더 순회 extra array 저장해서 count/2 둘다 딱히 정답같은 느낌은 아니다. 주먹구구 구현 class Solution { func middleNode(_ head: ListNode?) -> ListNode? { var curr = head var arr .. 2021. 1. 28.
LinkedList (Swift) 연결 리스트 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 링크드 리스트 구조 연결 리스트 배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조 링크드 리스트는 떨어진 곳에 존재하는 데이터를 포인터를 이용해 연결해서 관리하는 데이터 구조 미리 데이터 공간을 할당할 필요가 없음 배열에 비해 다음 노드 위치를 저장할 공간 필요 배열에 있는 index가 없어서 direct access가 안됨 (접근 속도 느림) Doubly Linked List (양방향) 노드 class Node : Equatable { var prev : Node? var next : Node? var value : T init(value : T) { self.value = va.. 2021. 1. 28.
무료 네트워크 & 운영체제 강의 추천 이번에 면접을 준비하면서 CS 기초를 복습할 기회가 생겼다. 책을 참고하면서 쭉 내용을 처음부터 끝까지 보고 싶었는데 좋은 강의가 있어서 추천한다. 네트워크 www.youtube.com/playlist?list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi 네트워크 기초(개정판) OSI 7계층에서 각 계층의 다양한 프로토콜들을 통해서 배우는 네트워크 기초에 대한 강의입니다. www.youtube.com 운영체제 www.youtube.com/playlist?list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN [Course] Operating System (CPA310) - 운영체제 강의 o Operating System (운영체제), CPA310, KOREATECH o .. 2021. 1. 27.
2021 Todo List 공부 TDD 예제 프로젝트 시도 MVVM 이외의 아키텍쳐 예제 앱 개발 (VIPER, RIBS, ReactorKit 사용) RxSwift 익숙해지기 디자인 패턴 스터디 LeetCode 300 문제 CS 과목 점검 자료구조 알고리즘 네트워크 운영체제 개발 관련 서적 읽기 클린 아키텍쳐 클린코드 등등 사이드 프로젝트 PowerApps Solution MVP 마들렌 버전 2.0 개발 및 출시 와하앱 프로젝트 구조 개선 및 버그 수정 후 업데이트 리플렉스 iOS 앱 개발 (미정) 오픈소스 라이브러리 만들어 보기 (SwiftUI UIKit easy integration) 아이디어 만드는 앱? 딴짓 Car Play 앱 만들어 보기 SwiftUI 로 Universal App 만들어 보기 AWS 람다 Swift로 서버.. 2021. 1. 25.
네트웤정리 보호되어 있는 글 입니다. 2021. 1. 25.