안녕하세요 Hani입니다. 코드로 뷰를 작성할 때 translatesAutoresizingMaskIntoConstraints = false를 까먹는 경우가 많아서 😅 @propertyWrapper struct UseAutoLayout { var wrappedValue: T { didSet { useAutoLayout() } } init(wrappedValue: T) { self.wrappedValue = wrappedValue useAutoLayout() } private func useAutoLayout() { wrappedValue.translatesAutoresizingMaskIntoConstraints = false } } @UseAutoLayout private var label = UILabe..
안녕하세요 Hani입니다. BaseViewController를 어떻게 만들까 고민한 결과를 적어볼까 해요. ☺️ class ViewController: UIViewController { let viewModel: T private var cancellables = Set() init(viewModel: T) { self.viewModel = viewModel super.init(nibName: nil, bundle: nil) } init?(coder: NSCoder, viewModel: T) { self.viewModel = viewModel super.init(coder: coder) } @available(*, unavailable) required init?(coder: NSCoder) { fata..
https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr import Foundation func solution(_ answers:[Int]) -> [Int] { let one = [1,2,3,4,5] let two = [2,1,2,3,2,4,2,5] let three = [3,3,1,1,2,2,4,4,5,5] var result = [Int: Int]() result[1] = markingTest(answers: ..
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr import Foundation func solution(_ record:[String]) -> [String] { let users: [String: String] = recordToUsers(record: record) let messages: [String] = recordToMessages(record: record, users: users) return..
안녕하세요 Hani입니다. ☺️ 지난 포스팅에서는 WWDC17 Engineering for Testability의 Testable App Code에 대하여 알아봤고 이번에는 같은 세션의 Scalable Test Code에 대하여 알아볼 거예요. Scalable Test Code는 프로젝트의 크기나 복잡성이 커져도 대응할 수 있는 테스트 코드를 말합니다. 이를 위해 테스트 코드를 더 빠르고, 읽기 쉽고, 모듈화를 할 수 있는 방법에 대하여 다룰 거예요. Scalable Test Code를 위한 기술로 총 세 가지가 제시됐는데 순서대로 알아보겠습니당. 먼저 UI Test와 Unit Test의 균형을 맞추는 거예요. ☺️ Unit Test는 UI Test보다 더 빠르기 때문에 테스트 코드에서 더 비중이 커야 ..
안녕하세요 Hani입니다. ☺️ 잠깐 주저리주저리 해보자면.. 얼마 전에 프로젝트를 하나 완성하고 Unit Test까지 해보는 경험을 가졌었는데 테스트 코드를 작성하는 것이 전부가 아니라 Testable한 코드를 짜야 테스트 코드를 잘 쓸 수 있다는 걸 알게 됐어요. 🥺 이 글을 쓰는 이유 역시 Testable한 코드를 짰다고 생각되지 않았기 때문.. 크게는 두 가지 이유가 있었는데 첫번째는 저수준의 모듈은 고수준의 모듈에 직접 의존해도 된다고 생각했어요. 그런데 저저수준(?)의 모듈이 저수준 모듈에 의존하고 저수준 모듈이 고수준 모듈에 의존하다 보니 저저수준이 결국 고수준 모듈에 의존하는 추이 종속성 문제가 있었습니다. (요건 클린 아키텍쳐 개방 폐쇄 원칙 부분 읽으면서 알게 됨..) 그래서 의존성 역..
- Total
- Today
- Yesterday
- 네트워크 유량
- 최단경로문제
- 다익스트라 시간복잡도
- observeOn
- State Restoration
- WWDC19
- WWDC16
- 벨만포드 알고리즘
- CompositionalLayout
- 벨만포드 시간복잡도
- 컴퓨터 추상화
- IOS
- 에드몬드 카프 알고리즘
- WWDC21
- 네트워크 플로우
- 포드 풀커슨 알고리즘
- MeTal
- Testable
- 코딩대회
- CPU와 Memory
- WWDC17
- HIG
- mach-o
- 최단경로 문제
- 최대 매칭
- 최단경로 알고리즘
- rxswift
- test coverage
- 부스트캠프 6기
- 강한 순환 참조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |