WWDC 2016 Understanding Swift Performance 를 보다가 명확히 몰랐던 세가지를 알게 되었다. 1️⃣ final 키워드를 붙이면 컴파일이 빨라진다고 알고 있는데 이유가 뭘까? 2️⃣ uuid 필드를 String 타입 vs UUID 타입으로 들고 있는 것 중에 뭐가 더 좋은걸까? 3️⃣ 프로토콜과 달리 제네릭을 쓸 때는 구체타입을 왜 못바꿀까? [1] final 키워드 --- WWDC 세션 중 Method Dispatch 부분에 나오는 내용 ---- ✓ static dispatch: 컴파일 타임에 어떤 구현이 실행될 건지 알 수 있음 ✓ dynamic dispatch: 런타임에 어떤 구현이 실행될 건지 알 수 있음 static dispatch 인 경우, 컴파일러는 여러 기법 (..
단위 테스트 4-7장 (Part 2. 개발자에게 도움이 되는 테스트 만들기) 내용 정리 4장 좋은 단위 테스트의 4대 요소 # 좋은 단위 테스트의 네 가지 특성 - 회귀 방지 - 리팩터링 내성 - 빠른 피드백 - 유지 보수성 1) 첫번째 요소: 회귀 방지 회귀 방지는 테스트가 얼마나 버그(회귀)의 존재를 잘 나타내는 지에 대한 척도다. 회귀 방지 지표에 대한 테스트 점수가 얼마나 잘 나오는 지 평가하려면 테스트 중에 실행되는 코드의 양 / 코드 복잡도 / 코드의 도메인 유의성 을 고려해라. 단순한 코드를 다루는 테스트는 회귀 오류가 많이 생기지 않는다. 기반 코드에 실수할 여지가 많지 않다면 테스트는 회귀를 나타내지 않을 것이기 때문 이다. 복잡한 비즈니스로직을 다루는 테스트가 더 좋다. 2) 두번째 요..
Processing URL Session Data Task Results with Combine 에 나오는 내용입니다. [ 목표 ] Combine으로 네트워크 쪽 코드를 작성하는 것은 크게 두가지 절차를 거칩니다. 1. Data Task Publisher 를 만든다. 2. 비동기 연산자 (asynchronous operator) 들을 체이닝하여 data를 받고 처리한다. 이를 알아봅니다. 또한 네트워크 쪽 코드작성할 때 필요한 에러 핸들링, 스케쥴링, share 도 알아봅니다! [1] Data Task Publisher 만들기 URLSession 은 Combine Publisher 인 URLSession.DataTaskPublisher 를 제공합니다. func dataTaskPublisher(for: U..
단위 테스트 1~3장 (Part 1. 더 큰그림) 내용을 기반으로 하고 있습니다. 1장 단위테스트의 목표 # 단위테스트 현황 논쟁은 '단위 테스트를 작성해야하는가?' 에서 '좋은 단위 테스트를 작성하는 것은 어떤 의미인가?' 로 바뀌었다. # 단위테스트의 목표 - 소프트웨어 프로젝트의 지속 가능한 성장을 가능하게 하는 것 지속가능한 프로젝트 성장을 위해서는 고품질 테스트에만 집중해야한다. (사람들은 종종 테스트가 많으면 많을 수록 좋다고 생각한다. 하지만 그렇지 않다. 코드는 자산이 아니라 책임이다. 코드가 많아질 수록, 소프트웨어 내의 잠재적인 버그에 노출되는 표면적이 더 넓어지고 프로젝트 유지비가 증가한다.) 테스트는 코드의 단위가 아니라 동작의 단위. 즉 문제 영역에 의미가 있는 것. 이상적으로는 ..
단위 테스트 3장 내용을 기반으로 하고 있습니다. [ 저자가 생각하는 단위테스트 네이밍 안티패턴 ] 1. 엄격한 명명구조 가장 유명하지만 가장 도움이 되지 않는 방법 중 하나가 다음과 같은 관습이다. [테스트 대상 메서드]_[시나리오]_[예상결과] - 테스트 대상 메서드: 테스트 중인 메서드의 이름 - 시나리오: 메서드를 테스트하는 조건 - 예상결과: 현재 시나리오에서 테스트 대상 메서드에 기대하는 것 동작 대신 구현 세부사항에 집중하게끔 부추기기 때문에 분명히 도움이 되지 않는다. 간단하고 쉬운 영어 구문이 훨씬 더 효과적이다. 예를들어 public class CalculatorTests { public void Sum_of_two_numbers() { ... // when double result =..
- Total
- Today
- Yesterday
- DRF APIException
- Watch App for iOS App vs Watch App
- drf custom error
- Flutter Text Gradient
- github actions
- SerializerMethodField
- 플러터 싱글톤
- METAL
- flutter 앱 출시
- Flutter Clipboard
- Flutter Spacer
- Flutter 로딩
- 장고 Custom Management Command
- flutter deep link
- 장고 URL querystring
- Sketch 누끼
- ribs
- ipad multitasking
- Dart Factory
- PencilKit
- cocoapod
- Flutter getter setter
- Django Firebase Cloud Messaging
- Django Heroku Scheduler
- 플러터 얼럿
- Python Type Hint
- flutter build mode
- 구글 Geocoding API
- Django FCM
- flutter dynamic link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |