STEP 2 UnitConverter 셀프 체크리스트 - hwj0623/ios_swift GitHub Wiki

체크리스트

written in 04/05. Fri

개발 환경에서 가장 학습하기 어려웠던 항목

extension 내 정규식 표현으로 문자/숫자 구분, 문자열의 숫자타입변환.

** 스위프트 문법과 지식 

  • 스위프트 API 설계 가이드라인 학습하기
  • 스위프트 기본 데이터 타입 활용하기
  • 정수 - 실수 타입 변환하기
  • 문자열 - 숫자 타입 변환하기
  • print() 함수 다양한 형태로 응용하기
  • Array 배열로 여러 값 다루기
  • if-else, switch-case로 상황에 따라 비교하기
  • 옵셔널(optional) 타입 응용하기
  • String 문자열 타입 다양하게 응용하기
  • do-try-catch 구문과 throw 방식 응용하기
  • Enum 열거 타입으로 케이스 구분하기

이번 미션에서 공부한 스위프트 문법 중에서 학습하기 가장 어려웠던 것은 어떤 것인가요? 

정규식 및 형변환 다루기

개발 경험 

  • github 저장소 만들기
  • github 저장소에 새 프로젝트 연결하기
  • 한 가지 역할만 하는 함수 만들기
  • 함수 호출 관계 분석
  • 반복되고 중복된 코드 개선

그 외에 학습하기 어렵거나 시간이 오래 걸린 것은 무엇이고, 어떻게 극복했나?

코드 재사용성 높이기(리팩토링). 함수 간 기능 분리. enum 구조에서 딕셔너리 구조로 재 리팩토링하면서 함수내 상수에 의존하던 코드를 입력 인자에 의존하도록 전환하는 작업 수행

추가 학습

  • 질문들에 대해 본인만의 답변을 정리
  1. 프로그램을 시작하면 사용자가 입력해서 변환이 가능한 단위들을 메뉴처럼 표시하려면?

사용자와 interact 할 수 있도록 기본 입력 포맷을 조정. ARS 서비스 등을 참고하여 번호 입력으로 프로세스의 세분화를 유도

가령, [1] 거리변환(cm, m, inch, yard) [2] 무게변환(g,kg,lb,oz) [3] 부피변환(L, gal, qt,pt) 등에 숫자 입력 받고 다음 입력을 세분화

  1. 사용자가 입력할 때 실수를 덜하도록 유도하는 방법은 무엇일까?

print 메시지 등으로 먼저 입력 예제 표시 uppercase 를 lowercase로 변환하는 전처리 작업 정규식 표현으로 구분자를 유연하게 구분하도록 처리 (ios 개발을 가정하여) 숫자입력 text와 단위변환 selector를 구분지어 1inch8 (18inch 오타 )등을 방지

  1. 단위가 추가될 때마다 개선하기 편한 코드와 메뉴 구성은 어떤 방식일까?

dictionary를 사용하면 dictionary에 해당하는 값들만 CRUD 하고, 메서드 변환을 가급적 피할 수 있지 않을까 싶다.

  1. 사용자가 입력한 값 하나로 여러 단위로 변환해서 출력하도록 개선하려면?

입력 단위를 배열로 받아서 (ex: [ from, to1, to2, to3...]) 로 입력받아서 for loop를 돌려서 함수를 반복 호출. 이때, 직접적으로 단위 환산을 시도하는 함수 외에 Caller 함수 중에서 해당 기능을 담당하여 수정하는 것도 중요. (각 메서드의 고유 기능 유지)