- 컴퓨터가 랜덤으로 생성한 중복되지 않는 3개의 숫자를 맞추는 게임입니다!
Rilla | Christy |
---|---|
![]() |
![]() |
Rilla | Christy |
- Step 1
- Step 2
- Step1
- Step2
- 중복되지 않은 3개의 숫자
1에서 9까지의 숫자중 중복되지 않은 숫자를 어떻게 3개만 뽑아 올까 고민을 많이 했다. 만약 뽑았을때 중복의 갯수가 한개가 될 수도 있고 두개가 될 수도 있었기에 Array와 조건문으로는 쉽게 해결하지 못할것 같았다. 그래서 Set 콜렉션 타입을 사용해 랜덤 숫자를 Set 콜렉션의 Count가 3이 될때까지 계속해서 뽑는식으로 해결했다.
- FlowChart 작성법
기존에 FlowChart작성을 해본적이 없어서 어디까지 그림에 표현해야 하는지에 대한 감이 잘 잡히질 않았다. 그래서 복잡하고 세세하게 적기보단 최소한의 요구사항만 다 들어가있는 흐름도만 작성하자 라는 결과에 도출 해 작성했다.
- readLine의 안전한 옵셔널 추출 방법
readLine을 통해 받아온 문자열이 옵셔널이기 때문에 안전하게 추출하는 방법에 대해 고민을 많이 했다! 구글링을 통해 찾은 자료들 대부분이 강제 추출을 사용했는데, 과제 제약사항에 위반되는 부분이라 다른 해결 방법을 찾아야 했다. 그러다 compactMap을 알게 되었다. compactMap은 nil을 자동으로 제거해줘 안전하게 옵셔널 바인딩을 할 수 있다. 사용 방법은 map과 똑같은 클로져로 사용하면 된다!
- enclosing catch is not exhaustive 에러
처음에 정의한 모든 에러 타입을 catch를 했음에도 불구하고 지속적으로 enclosing catch is not exhaustive 에러가 발생했다. 이를 해결하는 방법으로 추가적으로 catch문 이 하나 더 필요했다. 이는 정의하지 않은 에러가 발생할 수 있는 상황에 대비하여 작성해 줘야 했습니다. 추가적으로 'localizedDescription'은 에러의 코멘트 역할을 한다!
- 순서도 익히기
- 함수 단위 고민하기
- Git의 기본 사용(add, commit, push, pull)
- GitHub의 원격 공동 저장소 활용
- Git 저장소의 충돌 해결
- Git Branch의 이해
- GitHub에서 Pull Request 전송
- Swift API Design Guidelines 읽어보기
- Swift Set의 이해와 활용
- Swift의 Optional 안전하게 처리하기
- Git의 커밋단위 고민하기
- Git 커밋 로그 형식 고민하기
- 스위프트 코딩 컨벤션 고민하기
- 동료와 협업자세 고민하기