티스토리 뷰
코드스쿼드 6일 째 2018년 3월 10일 토요일
주말에도 코드스쿼드 생활은 계속된다. 단, 난 집이 편하니까 집에서... 코드스쿼드는 정말 자유롭다. 그 자유속에서 안일해 지지 않고 꾸준히 지속하는 게 중요하다.
- TODO 작은 단위로 쪼개기
✅1. 값나오게하기 -> 유효한지 안 한지, 단위를 입력한지 안 한지, 지원하지 않는 단위를 입력했는지 안했는지 다 체크하니까 안심하고
1.1 rawUserUnit과 rawUserConvertUnit이 weigth인지 length인지 volume인지 판단해서
1.2 Length, Weigth, Volume객체 rawUserValue, rawUserValue, rawUserConvertUnit을 던저주면 될 듯,
근데 rawUserConvertUnit과 rawUser rawUserUnit이 어떻게 weigth인지 length인지 volume인지 알 수 있을까???
2. 어제 아민소스를 봤는데 프로콜과 익스텐션 제네릭이 나왔다. 사실 잘 모르겠는데 뭔가 깔끔해 보여서
공부 & 질문 만들기 -> 내 소스에 적용해보면서 익히기 -> 정리해서 내 것으로 만들고 ->
위 순서대로
2-1 프로토콜 : [✅공부] [✅질문 만들기] [✅적용] [❌정리]
2-2 익스텐션 : [✅공부] [❌질문 만들기] [✅적용] [❌정리]
2-3 제네릭 : [✅공부] [❌질문 만들기] [❌적용] [❌정리]
다 할 수 있을까...?
- TOWILL x표시 된 것...
2-1 프로토콜 : [✅공부] [✅질문 만들기] [✅적용] [❌정리]
2-2 익스텐션 : [✅공부] [❌질문 만들기] [✅적용] [❌정리]
2-3 제네릭 : [✅공부] [❌질문 만들기] [❌적용] [❌정리]
-오늘 잘한 점
컨디션 조절하기 성공 어제 12시 좀 넘어서 자고 7시 30분 기상
뽀모도로로 집중과 휴식 분리하려고 노력한 것!
-오늘 잘못 한 점
사실 고백하자면 7시에 일어났는데 빈둥거렸다. 😂 벌떡 일어나자!
뽀모도로로 집중과 휴식 분리하려고 노력은 했는데... 잘 안 됨 swift 단위 계산기에 쓴 시간 8시간 도 안 됨..
오전 7시 부터 24시면 17시간 인데...
아침에 시간 낭비, 휴식시간 불규칙, 불필요한 영상시청, 집안일도 줄이기
~ 07:30 기상
~ 08:00 일지 쓰기
~ 09:50 집중력 강화를 위한 108배, 씻기, 밥먹기, 집안일 이것저것... 집안일은 왜이렇게 많지?
해도해도 끝이 없네 왜 벌써 1시간 50분이나 흘렀는가...?
~ 10: 38 1.1 rawUserUnit과 rawUserConvertUnit이 weigth인지 length인지 volume인지 판단하기 (48분)
mutating func start(){
while true {
self.userInputValue()
// 여기까지 오면 안전하게 rawUserValue, rawUserUnit, rawUserConvertUnit이 있으니까
// rawUserUnit rawUserConvertUnit이 weigth인지, length인지, volume인지 확인하기
// -> 확인하는 함수 만들기 InvalidChecker보다는 RhinoUnitConvert에 있는 게 맞는 것 같다.
// 이름은 단위를 체크하는 거니까 unitCheck가 좋겠군 인자는 위에 값 두게 나오는 거는 weigth, length, volume중 하나
// 3개 중 한 개가 나오면 그 객체와 값들을 가지고 초기화 해서 기본단위(length면 cm 등)로 변환하고
// 객체 convert(:convertUnit)를 하면 되겠다.
// 근데 untiCheck()에서 weigth, length, volume 중 하나가 나오게 하려면 어떻게 해야 하지...? 타입이 다 다른데...?
// 하 뭐하나 쉬운 게 없군 어제 아민 소스에서 봤던 프로토콜, 익스텐션, 제네릭을 하면 될까...?
// 오 될 것 같아 빅너드책 프로토콜 설명에
"프로토콜을 적용하면 어떤 타입 자체를 몰라도 타입의 인터페이스를 지정하는 등 타입을 다룰 수 있다" 라고 돼 있네.
// 오호 어쩌면 unitCheck()가 필요 없을 수도
// 프로토콜 공부시작, 아 요새 xcode 너무 자주 죽는데...
}
}
~ 10:55 휴식 겸 빨래널기 집안일 정말 ㅜㅜ
~ 11:26 빅러드렌치 chapter19 프로토콜 코드 19.4 까지 (78분)
~ 11:52 휴식 및 쇼미더모니 김하온 시청... 하... 얼마나 연습하면 저렇게 될 수 있는거지...?
~ 12:34 빅러드렌치 chapter19 프로토콜 코드 19.11까지 (118분)
~ 12:40 휴식
~ 13:14 빅러드렌치 chapter19 프로토콜 구성까지 ( 152분 )
~ 13:19 휴식 설거지
~ 13:48 질문거리 남기기 (181분) 질문 남기는데 29분이나 썻다고?
~ 14:37 점심
~ 15:22 빅러드렌치 chapter21 확장을 추가하여 프로토콜 준수 추가하기 까지 (197분)
~ 15:27 휴식
~ 15:59 빅러드렌치 chapter21 확장 1독 완료
~ 16:30 휴식
~ 17:30 빅러드렌치 chapter22 제네릭 타입제한 조건까지 (257분)
~ 18:00 빅러드렌치 chapter 22 제네릭 1독 (287분)
~ 18:05 휴식
~ 18:35 빅러드렌치 chapter 23 프로토콜확장 1독 (317분)
~ 19:40 타입 합치고 프로토콜, 익스텐션으로 중복 구조 변경 (382분)
protocol Unit{
func changeToBasicValue(_ value:Double, _ unit:UnitRatioAndSymbol) -> Double
func convert(basicValue:Double, to convertUnit:UnitRatioAndSymbol) -> String
}
extension Unit{
func changeToBasicValue(_ value:Double, _ unit:UnitRatioAndSymbol) -> Double{
return value / unit.ratio
}
func convert(basicValue: Double, to convertUnit:UnitRatioAndSymbol) -> String {
return "\(basicValue * convertUnit.ratio)\(convertUnit.symbol)"
}
}
struct Length:Unit {
enum LengthUnit:String,UnitRatioAndSymbol, EnumCollection{
case cm, m, inch, yard
var ratio:Double{
switch self {
case .cm: return 1.0
case .m: return 0.01
case .inch: return 0.3937
case .yard: return 0.109
}
}
var symbol:String{
switch self {
case .cm: return "cm"
case .m: return "m"
case .inch: return "inch"
case .yard: return "yard"
}
}
}
}
~ 20:50 TODO1 해결,
TODO2 프로토콜과 익스텐션 공부 후 내 소스에 적용 -> 정리필요
제네릭은 공부만 -> 내 소스에 활용할 부분 고민해보기 (452분)
~ 21: 21 휴식 및 한 것 정리
~ 22 :40 운동 후 저녁 먹기
~ 22: 51 운동일지쓰기
~ 23: 47 영어공부
~ 오늘 하루 분석
'CodeSquad' 카테고리의 다른 글
코드스쿼드 8일 째 2018년 3월 12일 월요일 (0) | 2018.03.12 |
---|---|
코드스쿼드 7일 째 2018년 3월 11일 일요일 (0) | 2018.03.11 |
코드스쿼드 5일 째 2018년 3월 9일 금요일 (0) | 2018.03.10 |
코드스쿼드 4일 째 2018년 3월 8일 목요일 (0) | 2018.03.09 |
코드스쿼드 3일 째 2018년 3월 7일 수요일 (0) | 2018.03.07 |