Swift unit test단위 테스트의 목적 단지 기능이 제대로 돌아가는지 확인하는 것은 기본 테스트가 가능한 코드로 만들기 적합한 구조인지 확인 -> 객체 동작을 테스트하기 좋은 구조로 작성하는 게 좋은 코드 -> 객체를 테스트 하려면 메소드 위주로 테스트를 진행 반복적인 상황이나 예외적인 상황도 커버가 가능한지 확인 테스트로 설계한 구조와 작성한 코드의 의도를 확인 실패하는 경우나 예외적인 경우도 테스트 하는 게 좋다. 테스트 함수 이름에 번호를 쓰기 보다는 어떤 경우인지 함수 이름만 보고 유추할 수 있도록 개선해보세요. 테스트 자동화를 하면 테스트코드를 보는게 아니라 실패한 테스트 함수 이름만 보고 바로 찾을 수 있는게 중요합니다. ---------------------------- 추후에 객체중..
커밋할 때 최소 단위로 PR은 여러 개 커밋이 합쳐져 있어야 함. 최소 기능 구현 후 커밋하기 struct 등 타입을 만들 때는 파일로 나누기 어떤 함수를 호출하고 반복해서 호출할 지 판단하는 흐름제어는 그 함수를 호출한 상위 모듈에서 하는 게 좋다. 물론 값을 전달하는 DTO 역할을 하는 객체라면 그냥 var로만 해도 무방 특정 메소드가 DTO를 리턴하게 된다면 나쁘지 않다 예를 들어 OutputView에서 출력하기 위한 값만 있는 데이터 구조가 필요하다면 DTO(Data Transfer Object) 용도로 값만 있는 객체를 LadderGame이 만들어서 OutputView에게 전달하는 구조가 테스트하기 더 좋은 구조입니다. 객체 내부 데이터는 최대한 은닉해서 감추도록 하세요.객체 속성은 privat..
typealias, Tuple- typealias : 기존 타입이나 custom타입에 별명을 붙이다.- 보다 더 의미론적으로 코드를 작성할 수 있다.typealias age = Int var myAge:age = 19 -tuple : 타입들을 하나로 묶는 것- 갯수나 타입의 제한이 없다. let http404Error:(Int,String) = (404, "Not Found") let (statusCode, statusMessage) = http404Errorprint("The status code is \(statusCode)")// Prints "The status code is 404"print("The status message is \(statusMessage)")// Prints "The st..
Swift type properties- WhatYou can also define properties that belong to the type itself, not to any one instance of that type. There will only ever be one copy of these properties, no matter how many instances of that type you create. These kinds of properties are called type properties.type 프로퍼티는 타입 그 자체에 속해 있는 것이다. 타입인스턴스가 아니라 또한 이 type properties의 복사본은 하나밖에 존재 하지 않는다. 여러분이 얼마나 많은 인스턴스를 만드는지 ..
swift guard, if 기준정하기 참고- guard 참고https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ControlFlow.htmlhttps://www.natashatherobot.com/swift-when-to-use-guard-vs-if/[위 사이트 번역] http://blog.canapio.com/108?category=948003[더 봐야할] http://radex.io/swift/guard/[더 봐야할]https://thatthinginswift.com/guard-statement-swift/ - where 문법 참고https://stackoverflow...
Protocols- WhatA protocol defines a blueprint of methods, properties, and other requirements that particular task or piece of functionality. 프로토콜은 메소드, 속성 그리고 다른 특정 작업이나 기능에 대한 요구사항의 청사진을 정의합니다.-> 예를 들어 많은 사람들 중에 운전을 할 수 있는 자격을 주려고 합니다. 그러면 "운전을 할 수 있다"라는 자격을 주려면 어떻게 해야 할까요? 운전면허증이 있어야 하고, 당연한 말이지만 운전을 할 수 있어야하는 등 이런 일련의 요구사항을 정의 하는 게 프로토콜입니다. The protocol can then be adopted by a class, structu..