'🐍'과 '🐉' 이 함께 만든 가위바위보 프로젝트입니다. 가위바위보 게임을 진행 후 묵찌빠 게임까지 진행되는 게임 프로젝트입니다. 부족하지만 최대한 기능구현에 목적을 두었습니다.
뱀 | 드래곤 |
---|---|
- Step1 플로우 차트 추가
- Step1 기능 구현 완료
- Step1 PR 전송
- Step1 리뷰결과 수정
- 컨벤션 수정
- 네이밍 수정
- 함수 세분화
- Step2 플로우 차트 추가
- Step2 기능 구현 완료
- Step2 PR 전송
- Step2 리뷰결과 수정
- 함수 순서 변경
- 네이밍 수정
- README 작성
Step 1_FlowChart | Step 2_FlowChart |
---|---|
승리 / 무승부 | 패배 / 입력 오류 |
---|---|
승리 | 패배 |
---|---|
- if문과 switch 간의 사용 고민
- if 은 다소 간단한 경우를 다룰 때 사용하고 원하는 한가지 이상의 조건을 다룰 수 있다.
- switch 의 다양한 경우를 다룰 때 사용하는 것이 좋고 무조건 모든 조건을 설정해 주어야 한다.
- 아래의 경우에서 switch 와 if 중 사용에 대한 고민이 적었다.
switch userNumber {
case 1, 2, 3 :
return compareTwoInput(userNumber, with: computerNumber)
default :
return "종료"
}
-
loof문과 재귀함수의 사용 고민
- 이 프로젝트에서는 loof 를 사용 했다.
- 재귀함수를 사용했을 때 나오는 사이드 이펙트를 완벽하게 관리하지 못해 loof 를 사용했다.
- 하지만 재귀함수 관리가 완벽할 경우에는 코드 직관성 또는 변수 사용량을 줄여 줄 수 있는 이점이 있다.
-
if let, guard let 사용 고민
- if let은 그 구문 중괄호 안에서 사용이 된다. 여기서 바인딩 된 상-변수는 if let 밖에서 사용 할 수 없다.
- guard let 은 오류 발생 시 중괄호 안의 구문이 실행되어 종료된다. 또한 guard let 밖에서 상-변수를 사용 할 수 있다.
- if let 을 쓰게 된다면 바인딩 되었을 때 중괄호의 중첩이 하나 더 생기기 때문에 guard 문 사용을 더 고려 했으면 했다.
- 에러 처리
- 이 프로젝트에서의 에러 모두 nil 값을 던져주어 사용 시에 오류 처리를 해준다.
- 에러처리를 더 세부적으로 나누어서 어떤 오류가 문제인지를 확인시켜주어야 할 것 같다.
- Result Type
- Do try Catch
- 은닉화 및 캡슐화
- 처음에는 파일 및 함수를 세분화 하여 구현하지 않았다.
- 추후 파워코딩 혹은 무거운 프로젝트를 다루게 된다면 접근 제한자를 사용한다던지, 함수의 재활용을 할 것이다.
- 현재 우리의 프로젝트에서는 깊숙하게 세분화 하지 못했다.
- 그렇게 된다면 추후 프로젝트를 다룰때 필요없이 중복 되는 부분이 많이 생기거나, 접근제한자를 정확하게 사용 할 수 없기 때문에 유지 관리가 힘들 것이다.
- 그렇기 때문에 추후 프로젝트 과정에서는 조금더 파일 혹은 함수들을 최대한 간략하게 구성하려고 노력 해야 겠다.
- 기본 문법 숙지
- 이 프로젝트를 진행 하면서, 기본적인 문법이 많이 비어있어서 어려움을 겪었기 때문에 기초를 좀 더 다지려고 노력 해야 겠다.
- Swift API Design Guidelines
- Swift Language Guide