본문 바로가기
[실용주의 프로그래머] 가차 없는 테스트 [실용주의 프로그래머] 가차 없는 테스트 -개발자 대부분은 테스트를 싫어한다.코드가 어디에서 깨지는지 무의식적으로 알고 약한 지점을 피해 다니면서, 살살 테스트하려 한다.실용주의 프로그래머들은 다르다.우리는 당장 버그를 찾아 나서도록 내몰리지만, 그 대신 나중에 다른 사람이 자기 버그를 발견하게 되는 수치를 피할 수 있다. -일찍 테스트하고, 자주 테스트하라. 자동으로 테스트하라. -코드를 작성하자마자 테스트해야 한다. -버그가 빨리 발견될수록 고치는 비용이 적어진다.코드 조금, 테스트 조금은 스몰토크 세계에서는 유명한 격언이다.우리는 제품 코드를 만드는 것과 동시에(혹은 이전에) 테스트 코드를 만듦으로써 그 주문을 우리것으로 할 수 있다. -사실 훌륭한 프로젝트에는 제품 코드보다도 테스트 코드가 더 많.. 2018. 11. 15.
[android] Google Sign In 서버로 검증하기 #3 [android] Google Sign In 서버로 검증하기 #3 https://developers.google.com/identity/sign-in/android/backend-auth -Client 에서 Sign in 이 끝나면 user의 ID token 을 HTTPS 를 통해 서버로 보낸다.Server 에서는 ID token 을 이용해 검증한다. 이 때 절대 Account 정보에서 얻어오는 id 정보가 아니라,ID token 을 보내야 한다. -ID Token 을 가져오기 위해서는 GoogleSignInOptions 를 만들 때 requestIdToken 을 호출해야 한다.GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInO.. 2018. 2. 24.
[Objective-C] 예외와 에러 [Objective-C] 예외와 에러 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 18. 18.1. 예외란 * 18.1.1. 예외 처리 개념 -예외(exception)는 프로그램의 정상적인 실행을 중단하고 대응해야 할 특별한 상황을 뜻한다. 예를 들어 NSMutableArray 의 메서드 addObject: 는 인수 객체를 리시버인 배열에 추가하는데, 인수가 nil 일 때는 부정한 인수라는 걸 나타내는 NSInvalidArgumentException 가 발생한다.메서드 objectAtIndex: 로 참조하려고 한 인덱스가 요소 개수를 벗어나면 범위 오류를 나타내는 예외 NSRangeException 이 발생한다. * 18.1.2. Objective-C 예외 처리 -예외가 일어.. 2018. 1. 9.
[을지로 맛집] 베트남 생쌀국수 - 한국에서 이런 맛을?? [을지로 맛집] 베트남 생쌀국수 - 한국에서 이런 맛을?? 시작 : 14:51끝 : 15:04 회사 주변에 어느 날 갑자기 생긴 베트남 생 쌀국수집.사람들은 "생 쌀국수" 란 어떤 쌀국수일까 의문을 가졌고,어느 샌가 한명씩 이곳의 맛을 보고 와서 칭찬을 하기 시작했다. 처음에는 "그래도 한국에서 파는 쌀국수가 다 거기서 거기지" 라는 생각이었는데,칭찬하는 사람들이 점점 더 많아지면서,직접 검증(?) 하기로 결심한다. ( 먹거리 X 파일을 너무 많이 본다 ㅋㅋ ) 그래서 찾아갔다.2층에 위치해있다. 들어서면. 아주 깔끔한 인테리어가 맞아준다. 주방은 반 오픈 주방이다. 메뉴는 이 한페이지가 다다.오늘은 기본 "소고기 생 쌀국수" ( 7,000원 ) 을 맛볼 것이지만,아래쪽에 있는 분짜이엠, 해산물샤브샤브,.. 2017. 5. 25.
[Effective Java] 방어 가능한 readObject 메소드를 작성하자 [Effective Java] 방어 가능한 readObject 메소드를 작성하자 - Serializable 하게 만들고 싶은 class 의 물리적 표현과 논리적 표현이 같다고 해도, 무조건 implements Serializable 을 붙이는 것이 능사가 아니다. readObject 는 바이트 스트림 인자 하나만 받는 생성자라고 볼 수 있는데 누군가가 고의적으로 이상한 바이트 스트림을 제공할 경우 문제가 될 수 있다. 따라서 readObject 메소드를 만들고, defaultReadObject() 를 수행 후, 역직렬화되는 객체의 유효성을 검사해야 한다. 만일 유효성 검사에 실패하면, readObject 메소드에서 InvalidObjectException 예외를 발생시켜야 한다. - 위의 방법으로 유효성.. 2017. 3. 24.
[인사동 맛집] +84 (플러스84), 정통 베트남 음식~ [인사동 맛집] +84 (플러스 84), 정통 베트남 음식~ 나는 항상 새로운 음식, 맛있는 음식, 가성비가 좋은 음식을 먹고 싶어틈만 나면 나에게 접근성이 좋으면서 위의 조건을 충족시키는 음식점을 검색한다. 어느 날 나에게 딱 걸린 식당이 하나 있으니 그것은 "+84" ( 플러스 84 ) 플러스 84 는 베트남 식당으로 "수요 미식회" 에 나왔단다.+84 가 등장한 수요 미식회를 보지 못했지만, 여튼 수요 미식회에 나왔다는 것은 어느 정도 맛집으로 검증되었다는 의미. 게다가 몇몇 블로거들의 리뷰를 보면 음식들이 정통 "하노이 식" 이라는 얘기도 있고,반미에 다른 곳에서는 사용하지 않는 "돼지 빠떼" 를 사용하여 놀랐다는 이야기도 있어 기대를 더 불러 일으켰다. 가게는 협소한 편이었다.한번에 수용 가능한.. 2017. 3. 12.
[수유 맛집] 본가족발 - 질보다는 양을 생각한다면 이곳!! [수유 맛집] 본가족발 - 질보다는 양을 생각한다면 이곳!! 저녁을 마마스의 리코타치즈 샐러드를 먹어서인지, 어머니께서는 밤이 되자 배고프다고 족발 노래를 부르셨습니다. 그래서 수유동 술골목(먹자골목이라기엔 너무 술집만..)을 돌아다니다 이 집을 정해서 들어갑니다. 생각해보니 왜 이집을 갔는지 모르겠습니다. 저렇게 외관만 봐도 귀신나올것 같은 집에, 간판도 제대로 없는데 말이죠. 가게이름은 "본가족발" 인 것 같네용 인테리어는 저렇습니다. 인테리어에는 신경을 전혀 안 쓴것이 팍팍 느껴지는 곳입니다. 족발 + 불족발 세트가 나왔습니다. 가격은 23,000원입니다. 가격 대비 양은 엄청 많습니다. 그러나 고기의 퀄리티가 좋지 않았습니다. 어머니께서는 그 일반적인, 썰었을 대 테두리부분에 쫄똑한 살이 한껏 붙.. 2016. 9. 11.
[iOS Study] 코어 데이터 [iOS Study] 코어 데이터 출처 : 아론 힐리가스의 iOS 프로그래밍 -데이터를 로컬에 저장하는 방법은 “아카이빙” 또는 “코어 데이터” 를 사용한다. -아카이빙의 가장 큰 결점은 전부 다냐 아무것도 아니냐는 특성에 있다.아카이브 안의 내용에 접근하려면 전체 파일을 언아카이브해야 한다.변경사항을 저장하려면 전체 파일을 다시 쓰기 해야 한다.반면 코어 데이터(Core Data)는 저장된 객체의 일부만 가져올 수 있다.그리고 어떤 객체를 변경한다면 파일의 해당 부분만 갱신할 수 있다.이러한 점진적 가져오기, 업데이트, 삭제, 삽입은 파일시스템과 메모리 사이를 오가는 많은 모델 객체를 가지는 경우 앱의 급격한 성능 향상을 가져올 수 있다. -코어 데이터는 객체-관계형 매핑 ( object-relatio.. 2016. 3. 25.
반응형