2020년도 이제 4일 남았네요.

작년 이맘때쯤 뭐했나 싶기도 하고, 올해 한해 동안 뭔일이 있었는지도 잘 기억도 안나고, 전반적으로 이전의 삶들이 희미해진 느낌입니다. 대신 몸은 예전보다는 조금 쉰 듯한(?) 느낌이라 좋긴한데… 여전히 먹는 약은 있고, 운동이 여의치 않은 것도 사실이고, 내년도를 위한 충분한 에너지가 모인것 같지도 않네요. 남은 날들은 가급적 올해를 깔금하게 정리하고, 내년도를 위한 계획을 잡아보는 날들로 써보려 합니다. 예전 같으면 아이들 방학일텐데.. 아직도 학교 수업일 수도 모자라고, 뭔가. 예전 같으면 딱딱 끊어지던 것들이 주우욱 늘어지는 느낌이네요.

크리스마스입니다.

소소하게 나에게 주는 선물로, 시소닉 포커스 GX-650을 선물해줬습니다. 이전에 8700으로 업그레이드 했던 케이스와 파워에서 소음이 너무 심하길래, 귀를대고 들어봤더니, 파워의 팬소음이더군요. 전원공급은 이상이 없었지만, 팬이 오래되어서, 소리가 나기 시작하는 것이었습니다. 보통 소음이 아니고, 약간 덜그럭(?) 거리는 진동 소음이 크게 섞여 있어서, 도저히 쓰지 못할 정도 였습니다. 전에껀 제이씨현의 PowerRock인데, 이게 산지 거진 8년이 다 되어 가는것 같으니, 오래 버티긴 했네요. AS로 팬만 수리가 되는지 모르겠는데, 안되면 직접 고쳐서 써봐야겠습니다. 남들은 팬도 분해해서 기름칠 다시하고 살린다고는 하는데, 그다지 하고싶지는 않네요. 아무튼 바꾸고 나니. 정말 조용하네요. 컴파일 한번 돌려보고 CPU팬소음이 큰지 다른 팬소음이 큰지 따져볼 수 있을 정도가 되었네요. 크리스마스 기념, AOSP S 빌드한번 해봐야겠습니다.

[독서록] 테스트 주도 개발(Test Driven Development : by example)


저자 : 켄트벡지음, 김창준,강규영 옮김

꽤 오래된 서적입니다. 한 십 몇 년 전에 읽어보고, 대충 감만 몸에 익힌 상태에서, 최근 신입사원들이 들어와서, 회사보유 서적으로 다시 읽어보게 되었는데요. 예전에 읽은 것과는 확연히 다른 느낌, 이해가 되었습니다. 무엇보다 이제는 익숙한 이름들이 몇몇 보이니까 반갑네요. Ward Cunningham, Richard Gabriel, Rebecca Wirfs-Brock, 모두 PLoP에서 만나보고, 이야기해본 분들입니다. Agile과 XP등도 이제는 익숙해지고, 주변도 대충 감은 알고 있는 상황에, 은근 개발환경/ 문화에 살짝 녹아져가고 있다는 느낌도 듭니다. 이런중에 텍스트를 다시 읽어봤는데, 솔직히 1장은.. 좀.. 따라가긴 힘드네요. 예제를 기반으로 한다고는 하지만, 뭐랄까 지독히 대화체로 되어 있고, 번역체가 여전히 남아 있는게 보여서, 껄끄럽달까요? 그냥 원문을 읽어보는게 어떨까라는 생각이 드네요. 그리고 좀. 지루합니다. 일단 리팩터링을 모르는 분이라면 코드를 하나씩 봐가면서 따라가는게 좋을 수도 있겠지만, 거꾸로. 아는 사람은 굳이 왜? 라는 생각이 들 수도 있겠다 싶었습니다. 기본적으로 예제의 작성 흐름은 순수 저자의 마음과 설계대로 흘러가는 것이라서, 독자가 쉽게 인정(?) 혹은 동의하기는 어려울 수도 있겠다 싶었습니다.

제게는 2장 이후의 이야기 그리고 3장에서의 이야기가 이제는 좀 더 와닿고, 도움이 되겠다 싶은 내용들이었습니다. 일종의 팁 들이 주어졌다고 할까요? 약간의 마음가짐을 다시 잡도록 도와주는 문구들도 있었구요. 아래는 그 일부분 들을 발췌 해봤습니다.

“데밍: 품질에 대한 책임을 그 누구보다도 작업자에게 맡겨야 한다”. 역. P1
사실 요즘 다시 TDD를 들여다보는 것은 Test할 일이 많아져서 입니다. 품질에 대해서 다시 여기저기서 압박이 들어오는 상황이라서, 기존 방법론들 설계방법, 우리의 개발 문화들을 다시 돌아보고 있는 상태이지요. 이전까지는 테스트가 한참 모자랐다고 할 수 있겠고, 이제는 모자라다는 수준은 아니지만, 조금, 뭐랄까 중복되었다라는 느낌이 많습니다. 테스트 리팩토링을 할 때라고 할 수도 있겠네요.

“xper.org의 TDD수련법”
일종의 공식이자, 단순화된 절차랄까. 일을 좀더 빠르게 진행할 수 있도록 도와주는 행동요령정도가 되겠네요.
1. 가능한 하나의 테스트를 빠르게 추가하고
2. TC를 돌려보고, 코드가 테스트에 의해 실패하는 것을 확인하고
3. 코드를 고쳐서
4. TC를 수행 시, 모두 성공하도록 만들고
5. 중복을 제거한다.(Refactoring) p.71
* 가짜구현. 뭐든 만들자, TC가 패스하면 OK. 그리고 고친다.

“Clean code that works by Ron Jeffries”, p.21

“용기를 갖는 것 두려움을 뛰어넘는 것”

“Metaphor Gardening 워드 커닝햄”

“느낌(부작용에 대한 혐오)을 테스트로 변환하는 것은 TDD의 일반적인 주제다”. p.57

testEquality $5 != $6
value object $5 == object $5
object != value p.62

equal null, equal object p.63

위험한 상황 동치성 테스트 실패 -> 곱하기 테스트 실패로 이어짐 p.67

Dollar -> Franc testform분열 Copy&Paste에 대한 활용과 경계. p.70

“TDD로 구현할 땐 테스트 코드의 줄 수와 모델 코드의 줄 수가 거의 비슷한 상태로 끝난다. TDD가 경제적이기 위해서는 매일 만들어 내는 코드의 줄 수가 두 배가 되거나 동일한 기능을 구현하되 절반의 줄 수로 해내야 할 것이다. TDD가 자신의 방법에 비해 어떻게 다른지 측정. 이때 디버깅, 통합작업, 설명하는데 걸리는 시간.” P.145

“잠시 실험을 시도했는데, 제대로 되지 않아서 버렸다.” p.148

Agile Manifesto

http://agilemanifesto.org/iso/ko/manifesto.html

책을 읽고 난 후 떠오른 생각을 정리해봅니다.
경험(=Object)의 중첩(Superposition) : ObjectLifeCycle
+—- Aging ———–+
O1 S————————-E
+-Overlap-+ Communication, Energy Exchange, Resembling
O2 S—————————E
+–Replication-+ Legacy, Inheritance, Heritage, History, Legendary

O3 S——————————-E
Most Longest and repeated Object/Feature becomes legacy and firm infrastructure.

워드프레스 5.6

워드프래스 버전은 꾸준히 업데이트가 잘 올라오네요. 요샘 찜찜하게 여기저기 해외 로그인 시도가 많이 보여 이참에 살짝 권고사항이 mysql도 업데이트 했고. 업데이트가 떠 있길래 했는데. 외관상 크게 바뀐 것 같진 않은데. 뭐랄까 쾌적하다는 느낌이 드네요. 휴대폰으로 모바일상태에서 글작성하는 것도 왠지 어색하지 않다는 느낌도 드네요. 이전하고 비슷한 것 같긴한데 말이죠…