반응형

전체 글 92

[Swift] Memoization

함수형 프로그래밍에서는 캐싱을 어떻게 구현할까? 클래스 내부에 캐시를 두면 결국 상태값을 클래스에 보관하는 것이 아닐까? 함수안에 변수를 쌓아둘 수는 없을까? 함수형 프로그래밍을 접하게 되면 위와 같은 고민을 자연스럽게 하게 될 것이다. '함수형 사고' 책 4장에는 이러한 고민을 덜어줄 기법이 나온다. 바로 '메모이제이션'이라는 기법이다. 도널드 미치의 Memo functions and machine learning 논문에서 처음 등장했다고 한다. 메모이제이션은 함수 레벨에서 캐싱을 할 수 있도록 도와준다. 그루비에서는 memoize()라는 함수를 제공한다. someFunction.memoize() 와 같이 호출할 수 있다. 이렇게 되면 클래스 내부에 캐시를 가지고 있지 않더라도 캐시와 동일한 기능을 구..

Programming 2018.10.12

[iOS] High Performance Auto Layout

https://developer.apple.com/videos/play/wwdc2018/220/ Don't churnInstruments로 Layout performance 확인하는 방법이 생길 예정임 (beta)1. 모든 constraints를 제거하는 것을 피하자2. static constraints는 한번만 추가하자3. 변경해야할 constraints를 교체해주자4. view를 제거하기 보다 hide 시키는 것이 좋다 영상에서 나왔던 예제 관련한 코드를 직접 작성해보는 것도 좋을 것 같다. fps의 차이가 얼마나 나는지 비교해보는 것도 좋겠다.코드가 더 간결해지는지도 확인해보자. Intrinsic Content SizeUIView.noIntrinsicMetricnoIntrinsicMetric을 어느..

Programming 2018.10.08

프로그래밍 공부할 것들

프로그래밍 공부를 시작한 친구를 위해 자료를 조금 정리해봤다. 내가 공부한 것도 있고, 좋다고 얘기만 들은 것도 있다. 적고보니 공부해야할 것들이 엄청 많다는 것을 느꼈다. 실무에서 눈에 보이게 사용되는 것 뿐 아니라 이러한 기반 지식을 알 때 전체적인 구조를 보는 프로그래머가 될 수 있을 듯 하다. 공부하면서 꾸준히 업데이트 해봐야겠다. Coding Interview University (한국어)CS 기초 지식이 없었던 저자가 구글을 목표로 두고 공부했던 것을 정리했다. 공부를 했던 동기가 확실했던 터라 집중적으로 공부했을 것이다. 저자는 많은 책을 읽었지만 실력을 쌓기 위해서는 몇가지 책을 제대로 공부하는 것이 더 중요하다고 말한다. 실제로 글을 보면 시간이 부족할 때, 시간이 많을 때로 나눠서 설명..

Programming 2018.10.06

로컬에 존재하는 저장소를 Github에 올리기

1. Github 에서 새로운 저장소를 만든다. 에러를 피하기 위해 READE나 gitgnore 파일을 만들지 않는다. (라고 되어있지만 그냥 무시하고 만들었다.)2. 터미널을 연다.3. 프로젝트 파일이 있는 곳으로 이동한다.4. git init5. git add .6. git commit -m "First Commit"7. Github 원격 저장소 URL 복사하기8. 원격 저장소를 지정해주자git remote add origin (원격_저장소_URL)git remote -v9. 푸시!!git push -u origin master 라고 했더니 역시 에러가 뜬다.순서를 조금 바꿔보자. 1. Github 에서 새로운 저장소를 만든다. README도 만들고 gitignore도 만든다.2. 터미널을 연다.3...

Programming 2018.03.10

클린 코드 Clean Code

인턴 시절 받았던 책인데 절반 정도만 읽어봤던터라 이번 기회에 끝까지 읽어보기로 했다.각 주제들이 굉장히 많이 압축되어 있는데도 분량이 많은 편이다.좋은 코드를 짜기 위한 저자의 고민을 배울 수 있고, java로 된 예제들이지만 어떤 언어에도 적용해 볼 수 있는 내용이었다.저자가 제안한 몇가지 규칙들이 기억에 남는다. #1 보이스카우트 규칙우리가 지나간 자리는 처음보다 깨끗하게 한다는 것이 보이스카트 규칙이다.중복되는 코드나 네이밍이 잘못되어 있는 것이 보이지만 괜한 에러를 발생할 것 같은 걱정이 되어서수정하지 않았던 경우가 있는데, 이 규칙을 알고나서 의식적으로 여러 코드들을 개선해보려 노력하고 있다.중복을 제거하다 보면 함수로 다시 분리하게 되고, 잘게 쪼개진 함수들은 클래스로 다시 정리할 수 있다...

Reading 2018.03.10

시음. 여덟번째.

컨텐츠를 제공받는 것에 대해서 지속가능하면서 저작권에 문제없는 방법을 함께 고민했어요. 유명 시인들의 작품을 가져오는 것은 저작권 문제가 생길 것이고 메이저한 출판사들이 시에 관련된 서비스를 제공하는데, 방대한 시를 찾아볼 수 있게 할 필요는 없다고 생각해요 그래서 자작시를 대안으로 떠올랐는데. 다양한 사람들이 참여해서 작품을 등록하고 그 중에서 오늘의 시를 선정하는 방식을 고민했지만, 시를 선정하는 기준이 애매하고 시간이 소요된다는 점에서 이 방법을 쓸 수 없었어요. 고민하다 일곱명의 작가가 있어서 일주일 단위로 돌아가면서 자신의 시를 소개할 수 있으면 좋겠다는 결론에 도달! 이전 : 기존에 있는 시 또는 자작시 중에서 직접 선정변경 : 한 주마다 시를 올릴 수 있는 작가 선정 슬프게도 이에따라 화면 ..

Writing 2017.04.01

시음. 일곱번째.

타자에 대한 관심보다는 자아를 끊임없이 양산해내는 좋아요의 시대를 살고 있는 우리가다른이에 대한 낯선 감정과 진정한 호기심을 느낄 수 있으면 좋겠다. 더 빨리 뛰라는 모든 것이 가능하다는 채찍질 대신에,이 세상에 얼마든지 더 새로운 것과 사랑스러운 것들이 많다는 위로를 하고 싶다. 언젠가 바라본 빛이 아주 슬프거나 아름답게 보인적이 있을 것이다. 사람이라면 부디 그랬을 것이다.그 추억을 잊고 싶지 않다. 누군가는 허세라고 할지라도 그 순간 만큼은 설렌다. 매일 그 순간을 선물하고 싶다.어떤 권력도 아닌 우리의 목소리로 특별히 아픔과 슬픔과 뒤쳐짐과 공허함을 위로할 수 있는 그 어떤것이 되면 좋겠다. 다른 어떤 대체할 수 있는 것이 나타나 우리가 만들던것을 대신 하더라도 아주 기쁠 것이다.생산의 고통 없이..

Writing 2017.03.31
반응형