---
# System prepended metadata

title: 48번 회의실

---

# 48번 회의실

S065_홍동현, S040_이은정, S053_조기현


### 목적
정보 공유, 피드백 수용

### 과정 

* 1주차 미션 코드설명, 피어 리뷰
* 미션을 수행하면서 들었던 의문점 공유
* 리뷰어님으로부터 받은 피드백 내용을 공유


### 결과

* 다양한 문제 해결 방법 공유 
    - 스토리보드에서의 오토레이아웃 경고
    <img width="40%" src="https://user-images.githubusercontent.com/50410213/91726028-87163980-ebda-11ea-8412-a5b41f8a9fdc.png"/><img width="60%" src="https://user-images.githubusercontent.com/50410213/91726422-2c311200-ebdb-11ea-91ad-a0089818e0b8.png"/>
    레이아웃을 한 방향으로만 잡아줬을 때 뷰의 사이즈를 계산하지 못해 나타나는 경고를 범위 오토레이아웃을 잡아줌으로써 해결
    - shuffle 메소드 테스트
    [shuffle(using:)](https://developer.apple.com/documentation/swift/array/2994755-shuffle) 를 활용해 인자로 받은 [RandomNumberGenerator](https://developer.apple.com/documentation/swift/randomnumbergenerator) 로 로직을 수행하도록 구현
    실제 앱 실행에서는 기본 라이브러리에 구현되어 있는 [SystemRandomNumberGenerator](https://developer.apple.com/documentation/swift/systemrandomnumbergenerator) 로 shuffle 을 실행하고, 테스트 단계에서는 고정 시드를 반환하는 Generator 를 만들어 실행
        ```swift
        final class FixedSeedGenerator: RandomNumberGenerator {
            func next<T>() -> T where T : FixedWidthInteger, T : UnsignedInteger {
                return 1
            }
        }
        ```
        `FixedSeedGenerator` 는 항상 고정된 시드값 1을 반환하기 때문에 shuffle 에서 항상 같은 결과가 나옴
     
    
* 각자 코드 문제점 공유
    * 아래 코드와 같이 class의 property 값을 초기화 해주는 내용을 내부 메소드로 대체하려다 보니 피치 못하게 property를 Implicitly Unwrapped Optionals 로 선언했다.
    ``` swift
    private var cards: [Card]!
    init(){
        reset()
    }
    ```
    하지만, property를 Implicitly Unwrapped Optionals로 선언하는 것은 좋은 방법이 아니었고, reset() method의 내용을 init()에 채워 넣어 property를 초기화 하고, reset() method는 아래와 같이 수정한다면, optional 로 선언하지 않아도 된다.
    ``` swift
    mutating func reset() {
		self = Deck()
	}
    ```
    <br/>
    
    
    
    
    * 범위 체크를 아래처럼 바꿔 가독성이 좋게 했다.
    
    ``` swift
    if playerCount < 1 || playerCount > 4 
    ```
    ``` swift
    if (1...4).contains(playerCount)
    ```