![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/HYfqd/btqxsA4Airr/MbKAUk2mhb86c5BvYYtJsK/img.png)
오랜만에 작성하는 TIL이다. 꾸준히 일기쓰는 것 처럼 했어야 했는데... 다시 오늘부터 시작! iOS 개인프로젝트 오늘은 움찬러너 메인 화면을 구현했다. 기능적인 것은 일단 제외해두고 화면 레이아웃부터 구현했다. 딱히 어려운 것은 없었는데 scrollView를 이용해 내부 View들이 스크롤 가능하게 하는 법은 오늘 처음 알게 되었다. 평소에 테이블뷰나 콜렉션뷰를 뷰컨트롤러 전체에 채워두고 하니 scrollView를 따로 사용할 필요성을 못 느꼈는데, 이번 기회에 레이블, 버튼, 뷰 들로만 구성하여 레이아웃을 구현하니 scrollView가 꼭 필요한 것을 알았다. 서울시 전체에 대한 지도를 구현하려고 하니 이것을 어떻게 해야하나 고민에 빠졌었다. 마침 어디선가 얻은 서울시 ai파일을 sketch에 옮기..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cxBfOz/btqxtqOeu7R/OIF3ykTnLL7O1FnPouU8J0/img.png)
이 글은 개인적으로 공부한 내용을 정리한 글입니다. 개인마다 이해한 내용에는 차이가 있을 수도 있으니 감안해주시기 바랍니다. 오타나 내용적으로 부족한 부분에 대한 말씀은 감사하게 받겠습니다! iOS 애플리케이션 개발 시 코코아 터치 프레임워크로, macOS 애플리케이션 개발 시 코코아 프레임워크로 개발을 하고 있습니다. 코코아, 코코아 터치 프레임워크는 내부적으로 몇가지 주요한 디자인 패턴을 채택하여 구현되어 있습니다. 다음은 Apple 개발자 문서에서 제시하고 있는 Common Pattern들 입니다. 이 글에서는 Delegation Pattern에 대해서 알아보겠습니다. Delegation? 자세히 알아보기 전에 Delegation의 사전적인 정의는 무엇일까요? 네이버에서 검색해봤습니다 :) dele..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/2kgdd/btqxlcPlOzZ/E9uiGPDQky13s9WgfZwsKK/img.png)
부스트캠프 19일차 드디어 마지막 미션까지 끝났다... 이번주가 확실히 미션도 어려웠고 내용도 알찼던 것 같다. 기억에 남는 건 술로 인하여 따로 공부를 더 못하고 피어세션에도 제대로 참여를 못한 것이 아쉽다... 그래도 팍팍한 일상속에서 오랜만에 크게 웃어본 것 같다. 네트워크 관련해서 공부를 깊게한 적이 없었다. 이제 어느정도 동작과정이나 HTTP의 스펙에 대해서는 감이 잡힌 것 같다. 아직은 부족해서 추가로 공부를 더 해야겠다. 오늘 느끼는 가장 큰것은 당분간 술은 멀리하자...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cJ1SGR/btqxgySipiY/K8lizgzskZf8JzKKvIOiy1/img.png)
부스트 캠프 16일 차 챌린지 마지막 주의 첫째 날이 지났다. 이번 주 미션은 확실히 어려울 것이라는 이야기대로 어려웠었다. 정규표현식을 써본 기억이 그냥 필요한 내용 가져다 쓴 것 밖에 없었다. 확실히 단시간에 배워서 써보려고 하니 무리가 있었다... 공부한다고 해서 정리해보긴 했지만 정규표현식도 많이 써봐야 자유자재로 쓸 수 있을 것 같다. mocha + assert를 이용해서 테스트 코드를 작성해봤다.(TDD?) 확실히 테스트 코드부터 작성하고 구현을 하니깐 구조가 처음부터 잡힌 상태로 시작되는 느낌이 컸다. 시간이 조금 더 걸리는 느낌이 있지만 잘못 설계하고 나중 가서 고칠 바에 테스트 코드부터 작성하고 하는 것이 더 안전하다고 생각한다. 3학년 때 컴파일러 수업을 안 들었던 게 아쉬웠던 하루였다..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/JVRGe/btqxfEZKg7s/K0MvbBfRc8vhnPnGoeGw61/img.png)
정규표현식RegExp 생성자로 생성하거나 리터럴 방법으로 생성가능하다.xxxxxxxxxx// 리터럴 방식const re = /ab+c/;// 생성자함수const re = new RegExp("ab+c");정규식 패턴이 바뀌는 경우 생성자 함수를 사용하여 동적으로 정규식을 만들어 준다. 정규식 패턴단순한 문자열로 만들거나 특수문자와 단순 문자열의 조합으로 패턴을 생성할 수 있다.단순 문자열직접 찾고자하는 문자열로 정규식을 구성한다.xxxxxxxxxxconst re = /apple/;const result = re.exec("banana apple");// return [ 'apple', index: 7, input: 'banana apple', groups: undefined ] 특수문자를 사용한 패턴..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bjTHNn/btqxeJzPzzn/yqmIVTmml2ZXHgAvqM5yfK/img.png)
프로젝트 설계 오늘은 하루죙일 설계만 했다. ERD만들고 클래스 다이어그램 만들고 UI Workflow만들고... 코딩은 못했지만 꼭 해야될 일은 한 것이고 혼자서 프로젝트를 할 때 처음부터 빡빡하게 계획한 적은 처음이라 새로운 경험이였다. ERD는 살면서 처음 만들어봤다. 짧은 DB 지식을 가지고 한다고 해봤는데 차차 수정되어야 할 것 같다. 클래스 다이어그램은 패턴 수업 때 너무 많이 그려서 이제 익숙하다. StarUML키고 들어가는게 너무 자연스러웠다ㅋㅋㅋ 그리고 UI... Sketch라는 노란색 보석(?)모양의 프로그램이 있더라. 음... 처음 해봤는데 시간가는 줄 모르고 하긴했다. 재밌고 신기하고 결과물로 번듯한게 나오니 뿌듯했는데 시간이 너무 오래걸렸다;; 결국 오늘도 하루가 삭제되고 밥먹고 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cojAI7/btqxbCuAPQx/UKg6ORikkFmKicqfWjsTFk/img.png)
iOS Study 오늘 스터디는 animation 뿌시기였다. 부스트 캠프를 진행하면서 자바스크립트의 canvas내용을 공부할 때 iOS의 Custom UI예제를 해본 것이 도움이 많이 됐었는데 오늘 한 내용도 canvas를 공부하면서 알게 된 내용 때문에 확실히 더 와 닿았다.(확실히 어느 언어든지 기본적인 원리는 비슷한 것을 다시 느꼈다.) 화면 전환 시에는 UIViewControllerAnimatedTransitioning을 이용하여 애니메이션 효과를 주더라. 전체적인 과정은 1. 애니메이션을 적용하고 싶은 뷰 컨트롤러에서 UIViewControllerAnimatedTransitioningDelegate를 채택하고 2. 새로운 뷰 컨트롤러를 present 할 때 구현된 UIViewController..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/5k6nu/btqxfeFIh9d/CFtWblAYdYxGQhvnpeBI81/img.png)
부스트 캠프 15일 차! 부스트 캠프 3주 차 마지막이 끝났다. 릴레이 프로젝트가 진행됐는데 운 좋게 실력자분들을 만나서 척척 진행됐다! 열심히 하는 사람들이 보기 좋았고 오늘도 역시 재미있었다. +, UI에서 이용하는 좌표값이나 색상값을 코드 상단에서 uppercase variable로 선언하여 사용하는 식으로 작성했다. 코드 리뷰를 하면서 이를 관련된 객체리터럴로 정리하고 사용하면 더 좋을 것 같다는 의견을 받았다... 오 간단한 건데 왜 그 생각을 못했을까... 코드 리뷰는 역시 재밌고 좋은 거다. 서울 스마트 앱 공모전 공모전에서 요구하는 서울시의 공익을 위한 아이디어가 무엇이 있을까 그전부터 생각했었다. 평소에는 그렇게 생각이 안 나더니 화장실에서 갑자기 생각이 났다...! 그것 때문에 오늘은 ..