본문 바로가기
[Effective Unit Testing] Chap5. 유지보수성 [Effective Unit Testing] Chap5. 유지보수성 -코드는 쓰이는 횟수보다 읽히는 횟수가 훨씬 많다.그리고 현실에서의 작성의 대부분은 기존 코드를 수정하거나 확장하는 걸 뜻한다.이를 유지보수라 하기도 하고 개발이라 부르기도 한다. -테스트도 태생은 제품 코드와 다를 바 없는 코드인지라, 근본적으로 똑같이 불안정하다.자동화된 단위 테스트를 작성할 때도 이런 취약성에 주의하면서 관리해야 한다. 5.1. 중복-모든 악의 근원 넘버원은 “어설픈 최적화” 이고, 넘버투는 “중복(Duplication)이다. 5.1.1. 예시 -상수 중복은 given 과 then 의 상수를 따로 정의해서 쓰는 것을 이야기한다.상수 중복은 지역 변수로 만들어서 제거할 수 있다. 5.1.2. 개선 방법 -구조 중복과 .. 2019. 3. 14.
[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.
[Effective Objective-C] #29 참조 세기를 이해하라 [Effective Objective-C] #29 참조 세기를 이해하라 출처 : Effective Objective-C -메모리 관리는 오브젝티브-C 같은 객체 지향 언어에서 중요한 개념이다.어떠한 객체 지향 언어든 그 언어의 메모리 관리 모델을 깊이 이해하고 있으면 메모리를 효과적으로 사용하고 버그가 없는 코드를 작성할 수 있다.이 법칙을 이해하고 나면 오브젝티브-C 의 메모리 관리가 더는 복잡하지 않고 ARC 를 쉽게 사용할 수 있을 것이다.ARC 는 거의 모든 메모리 관리에 대한 결정을 컴파일러에 넘긴다.그래서 개발자는 비지니스 로직에만 집중할 수 있다. -오브젝티브-C 는 메모리 관리를 위해 reference count 를 사용한다.객체가 계속 살아 있길 원하면 count 수를 올리고, 그 객체의.. 2017. 9. 22.
[Java Concurrency] 중단 및 종료 #1 [Java Concurrency] 중단 및 종료 #1 - 작업이나 스레드를 안전하고 빠르고 안정적으로 멈추게 하는 것은 어려운 일이다. 더군다나 자바에는 스레드가 작업을 실행하고 있을 때 강제로 멈추도록 하는 방법이 없다. 대신 인터럽트(interrupt)라는 방법을 사용할 수 있게 되어 있는데, 인터럽트는 특정 스레드에게 작업을 멈춰달라고 요청하는 형태이다. 실제 상황에서 특정 스레드나 서비스를 "즉시" 멈춰야 할 경우는 거의 없고, 강제로 종료하면 공유되어 있는 여러 가지 상태가 비정상적인 상태에 놓일 수 있기 때문에 스레드 간의 협력을 통한 접근 방법이 올바르다. 다시 말해, 작업이나 서비스를 실행하는 부분의 코드를 작성할 때 멈춰달라는 요청을 받으면 진행 중이던 작업을 모두 정리한 다음 종료하도록.. 2017. 4. 25.
[Effective Java] 스레드 안전을 문서화 하자. [Effective Java] 스레드 안전을 문서화 하자. - 클래스 행동을 문서화하지 않으면, 프로그래머는 가정에 의존해서 그 클래스를 사용해야 한다. 만일 그런 가정들이 잘못되면, 그로 인한 프로그램은 불충분한 동기화나 과도한 동기화를 하게 될 것이다. 어떤 경우든, 심각한 에러가 유발될 수 있다. - 메소드 선언부의 synchronized 변경자는 메소드의 상세 구현 부분이지 외부로 제공되는 API 가 아니다. 즉 Javadoc 에 synchronized 가 공개되지 않는다. synchronized 변경자가 있다는 것이 스레드 안전을 문서화하기에 충분한 것은 아니다. 동시적 사용을 안전하게 하려면, 해당 클래스가 어떤 수준의 스레드 안전을 지원하는지 명확하게 문서화해야 한다. - 다음은 스레드 안전.. 2017. 3. 14.
[일본] 일본 가정식을 먹어보자!! - 가정식이 뭔지 궁금하지? [일본] 일본 가정식을 먹어보자!! - 가정식이 뭔지 궁금하지? 2015. 10. 08 (목) #일본 가정식이라니 뭔지 궁금할거다.말 그대로 밖에서 쉽게 사먹는 돈부리, 우동, 초밥 등이 아니라일본 가정에서 먹는 반찬같은 것을 이야기한다. #일본 가정집을 방문하지 않아도 맛 볼 수 있는 가게가 있다. #쿠로몬 시장 초입쪽에 있는 집으로,니뽄바시 역에서 가깝다.이름은 잘 모르겠다. #귀여운 캘리그라피 형태로 써져있는데,대충 읽으면 "량속 일본교 식당" 이라고 되어 있다. 좋게, 빠르게 먹을 수 있는니뽄바시에 있는 식당이라는 의미인듯? 자세한 건 따로 검색해보길~ #들어가면 이렇게 여러가지 반찬들을 진열해 좋고,맘에 드는 반찬들을 쟁반에 담아 레일을 따라 가면 된다. #레일의 끝에서는 밥의 양 (소,중,대).. 2016. 1. 25.
[부자가 되려면 더 열심히 일해야 한다] vs. [부자가 되려면 현명하게 일해야 한다] [부자가 되려면 더 열심히 일해야 한다] vs. [부자가 되려면 현명하게 일해야 한다] 출처 : 돈에 관한 생각 Chap 17. -"대부분의 사람들이 돈이 거의 바닥이 나야 관심을 갖기 시작한다.시간에 대해서도 마찬가지인 사람들이 많다." - 요한 볼프강 괴테 -"부자가 되려면 더 열심히 일해야 한다." 는 진실이 되어서는 안 되는 말이다."더 현명하게 일해야 한다" 로 바꿔 받아들이길 바란다. -부나 경제적 상황과 관계없이 누구에게나 하루 24시간이 주어진다. -부를 쌓기 위해서는 무조건 많이 일해야 한다는 가정이 문제다.만약 당신이 이 같은 조언에 충실한 편이라면 실제로 남들보다 더 열심히 일에 매진하는 스타일이겠지만동시에 실패를 맛보고 비참한 상황에 빠질 개연성도 높다. 한발 뒤로 물러서서 더 영리.. 2015. 7. 2.
[홍콩] 비행기가 좋아. [홍콩] 비행기가 좋아. 이제 인천공항을 떠나 홍콩으로 날아간다. 홍콩의 쳅랍콕 공항으로 간다.. 공항 이름이 무슨 캄보디아어 같다. 쳅랍콕, 쳅랍콕.. 발음하기도 어렵네. 중요한건 이게 아니고, 지금 내가 하고 싶은 말은 난 비행기가 참 좋다는 것. 엄밀히 이야기하자면 나는 "기내식을 먹을 수 있는" 비행기를 참 좋아한다. 장거리 비행기를 탈 때면 어김없이 제공되는 기내식. 나는 구름 위를 날며 구름위의 구름 한 점 없는(?) 새파란 하늘과 함께 구름을 내려다보며 기내식을 먹는 순간을 참 좋아한다. 그것은 정말이지 하늘을 나는 기분이랄까? 유럽여행을 하면서 Ryanair 라는 저가항공을 15회 이상 탔지만, 한번도 하늘을 나는 기분이 들지 않았다면, 기내식을 먹는 여행은 2~3시간만 날아도 정말 하늘을.. 2013. 3. 16.
반응형