티스토리 뷰
코드스쿼드 8일 째 2018년 3월 12일 월요일
벌써 2주차 이군요. 코드스쿼드는 카페 같은 분위기다. 좋다, 창가 자리에 앉으면 가끔 멀리도 볼 수 있고 맑은 햇빛도 받을 수 있다.
- TODO 작은 단위로 쪼개기
✅ JK피드백 반영한 것 검사요청
검사요청에 따른 피드백 반영과 다음 단계로 갈 수 있으면 가고
jk피드백
이정도면 단위변환기 미션에서 배워할 것들은 충분히 경험한 것 같습니다.
한 가지만 피드백 하자면 RhinoUnitConverter 객체를 도메인 객체라고 하는데 여전히 여러 가지 역할을 하는 함수들을 포함하고 있습니다.
다음 미션부터 입력/출력과 메인 흐름처리까지 모두 역할과 책임에 따라 분리하는 연습을 해봅시다.
마무리하시고 사다리게임으로 넘어갑시다.
✅ 일단 단위계산기 마무리하고
✅ 사다리게임으로 넘어가서 입력/출력/메인 흐름까지 모두 역할과 책임에 따라 분리하기 step1 시작하기
✅ 코드리뷰과정 공부... 해서 꼬인 것 해결했으나 잘 모르겠음 너무 복잡...
✅ github에 수정된 todo 정리
{ 그 외 시간에는 프로토콜좀 정리 뭘 어떻게 정리할 건지 구체적으로 하기
프로토콜 질문 한 것에 대한 답변 정리
- 프로토콜 : [✅공부] [✅질문 만들기] [✅적용] [❌정리]
- 익스텐션 : [✅공부] [❌질문 만들기] [✅적용] [❌정리]
- 제네릭 : [✅공부] [❌질문 만들기] [❌적용] [❌정리] } -> 수요일 집에서 해야겠음.
- TOWILL
1. 사다리게임 JK피드백 반영
Printer 객체에 관련있는 함수를 모아놓은 것 자체는 좋습니다.
다만 입력이 있고, 처리하고, 출력이 있는 구조에서는 이런 구조보다는
(print가 포함되어 있지만) Input 관련 객체, 입력받은 값들로 사다리게임을 처리하는 객체, 사다리게임 구조를 출력하는 Output 객체 이런식으로 구분하는 게 좋습니다.
그래야 하나의 기능을 변경할 때 하나의 파일만 바꾸게 됩니다.
어떻게 해야할 지 고민... 감이 안 잡힘
2. 사다리 게임 2단계 요구 사항 적용
들여쓰기 depth를 1단계로 줄이기 / 메소드 라인 최대 10줄 / method가 한 가지일만 하도록
-> printLadder에서 출력하는게 3depth
-> 일단 [[Bool]]로 해서 조건 처리 하는 것 때문에 if else 를 써야 하는데 [[String]]으로 해서 풀어볼까 생각중
-오늘 잘한 점
일어나서 벌떡 일어난 것, 일찍 일어 난 것(6:40)
-오늘 잘못 한 점
학원에서 집중력이 떨어져서 집에 왔는데 집중력이 더 떨어짐
~ 06:40 기상
~ 09:00 오일풀링 영어 108배 아침 영어
~ 10:00 확원오기
~ 10:30 자리 셋팅 및 데일리 미팅
~ 11:30 프로토콜 정리
~ 12:17JK강의
~ 12:30 휴식
~ 13:30 점심
~ 14:00단위계산기 마무리
그동안의 과정
https://gist.github.com/HaeSeongPark/2d97e1a6a94d71a810d73da4971a18c9
8일간 열심히 했다...?
~ 14:22 브랜치 생성요청 하면 되는데 22분동안 혼자서 삽질했네... 꼼꼼히 읽자
~ 15:07 코드리뷰과정 테스트 어렵다... 내가 뭐하는지 모르겠네... upstream은 뭐고...
~ 15:18 관련 책 찾아 다님... 없음...
~ 15:58 사다리 게임 1단계 최대한 분리중
~ 16:05 휴식
~ 16:45 사다리 게임 1단계 진행
~ 17:00 이것저것 휴식...
~ 18:00 집오기... 학원에서 집중력이 떨어지고 지금쯤이면 사람 없을 것 같아서 왔는데 사람 엄청 많네... 진빠진다 진짜...
~ 20:00 서류정리... 닭가슴살장조림 후 저녁 먹기
~ 20:30 휴식
~ 21:14 JK피드백 정리 하려는데 git github이 뭔가 엄청 꼬여서 삽질하고 있다. 아쒸
~ 22:10 통화
~ 23:30 꼬인 것 해결...하...시간 다 날렸네
~ 피드백 정리 및 내일 할 걸 정리,
<JK강의>
간접 참조 indirection
swift array는 링크드리스트로 돼 있다. 추가 삭제 변경이 쉬우니 그럴 때 쓰고
swift continuos array 연속배열로 돼 있어 접근이 많을 때 용이
value type은 값을 복사하기 때문에 메모리 손해가 있지만, 멀티스레딩 등에서 참조타입 보다는 부작용이 덜하다
메모리가 가격이 싸기 때문에 메모리를 쓰는 게 cpu를 쓰는 것 보다 낫다
장단을 따져가면서 써야... advanced한 내용 value vs reference
inrirection은 메모리를 효율적으로 하기 위해서
모바일은 메모리리가 여전히 제한적이기 때문에 메모리를 신경써야 한다.
클로저
indirection에서 좀 더 나간 게 functional programming
함수를 타입으로 지정, 인자값으로 넘기거나, 리턴값으로 받을 수 있다.
함수도 pure하게 짜야 한다.
반복문 비교문 없이 순수 함수만으로 재귀로 반복 그 만큼 데이터를 잘 써야 한다 map filter, 등
클로저 레퍼런스가 기본이고, 캡처목록을 사용할 수 있다. [intValue]
클로저도 객체처럼 참조 그래서 순환참조가 발생할 수 있다 따라서 캡처리스트를 써야한다. [self] ? owned? 약한참조? 뭔말인지 하나도 모르겠다.
알고리즘 풀 때 절차형, 함수형 두 가지로 알고르짐은 왜 공부하는 거지...?
어렵다. 내 모토랑 달라. 난 필요할 때 필요한 만큼만 ㅜㅜ 뭐지 이 막막함은...
고차함수 high-order function
함수형에서는 배열이 기본 타입처럼
+, > 는 클로저처럼 함수 구현 돼 있다?
'CodeSquad' 카테고리의 다른 글
코드스쿼드 10일 째 2018년 3월 14일 수요일 (0) | 2018.03.15 |
---|---|
코드스쿼드 9일 째 2018년 3월 13일 화요일 (0) | 2018.03.14 |
코드스쿼드 7일 째 2018년 3월 11일 일요일 (0) | 2018.03.11 |
코드스쿼드 6일 째 2018년 3월 10일째 토요일 (0) | 2018.03.10 |
코드스쿼드 5일 째 2018년 3월 9일 금요일 (0) | 2018.03.10 |