전체 글 9

클린 스프링 - 인프콘 2024

두 번째 인프콘 발표를 한 달 전에 마쳤다. 성장을 주제로 한 발표를 해야 한다는 요구에 처음으로 기술 이야기가 아닌, 그동안 품고 있었던 나의 이야기를 나눌 수 있었던 작년 발표에 이어 이번엔 클린 스프링이라는 주제로 또 다른 이야기를 하게 됐다. 다시 발표를 한다면 클린 코드 이야기를 하겠다는 생각을 해왔다. 클린 코드라는 꽤 괜찮은 책을 너무 가볍게 보고 몇 가지 피상적인 원칙만 이야기하는 모습이 아쉬워서였다. 특히 개발 실력을 빠르게 향상해야 하는 주니어 개발자에게는 이 클린 코드가 정말 중요한 길잡이가 되어줄 수 있다는 나름의 확신이 있었기 때문에, 진정한 클린 코드가 무엇인지 말해주고 싶었다. 사실 로버트 마틴 책에 이미 모든 내용이 다 들어있다.  하지만 다들 책을 잘 안 읽는 걸. 그래서 ..

사상 2024.09.10

Homo Faber - 도구를 만드는 개발자

내가 브리즈번에서 가장 좋아하는 스시 일식당인 Takashiya는 함께 비즈니스 하는 분들과 축하할 일이 있거나, 고마움을 표현해야 하는 분이 있을 때 방문한다. 얼마 전엔 결혼 25주년 기념으로 아내와 함께 하려고 계획한 한 달간의 식사 코스 첫 날로 이곳을 찾았다. 평일 저녁이고 상대적으로 덜 붐비는 마지막 프리미엄 세션이라 나이가 지긋한 호주인 커플과 우리 부부만 자리해서 편안하게 식사를 하게 되었다. 평소엔 꽤 높은 텐션으로 분주하게 움직이며 요리를 준비하고 밝게 잘 웃던 셰프 Takashi Nami도 이날은 차분하게 음식을 준비하고 서빙하면서 조용히 이런저런 이야기를 들려주었다. 호주 전역에서 나는 특색 있는 해산물과 뉴질랜드, 일본, 스페인에서 직접 구해온 좋은 재료를 가지고 매번 예상을 넘..

사상 2024.03.11

테스트가 관리하는 트랜잭션 - 향로 님의 @Transactional 글을 읽고

@Transactional의 테스트 사용에 관한 부정적인 이야기를 언제부터인가 듣기 시작했고, 예를 들어 안티패턴이니까 쓰지 말라는, 그게 무슨 얘기인가 궁금하던 중에 재민 님의 @Transactional 테스트 사용에 관한 영상을 보고 생각을 간단한 남겼다. 전에 향로 님이 @Transactional 롤백 테스트에 대해서 반대한다는 얘기를 어디선가 들은 기억이 나서 향로 님의 이야기도 자세히 들어보고 싶다고 남겼는데. 얼마 지나지 않아 이런 장문의 글을, 예제 코드까지 만들어서 공개를 해주셨다. 이런 감동은 오랜만이다. 함께 일하는 사람들과 오프라인에서 기술과 개발에 관한 이야기를 깊이 있게 나눌 기회가 거의 없는 나에겐 온라인에서라도 이야기를 이어갈 수 있는 이런 기회는 무척 소중하다. https:/..

사상 2024.03.04

토비의 스프링이 나오기까지

2010년에 책이 나온 뒤에 블로그에 썼던 토비의 스프링이 나오기까지라는 글을 모두 옮겨봤다. 길다. 토비의 스프링 3이 나오기까지 (1) 원고에서 손 뗀지 얼마 안됐는데 벌써 책 내용도 가물가물하다. 그러니 책을 써온 그 동안의 기억도 금세 사라지겠지. 더 잊기 전에 책을 써왔던 이야기를 적어놔야겠다. IT서적은 국민학교 5학년 때부터 교보문고 컴퓨터 서적 코너에 수시로 들락거리면서부터 꾸준히 읽고 공부하기 시작했으니 대충 27년쯤 읽어온 것 같다. 하지만 한번도 내가 직접 책을 써볼까 하는 생각을 해본 적은 없다. 그래서 2006년 어느날 당시 마소 기자였던 희용이(지금은 마소 발행인이자 마소 인터렉티브 사장)가 "형 책 한번 써볼 생각 없어?"라고 지나가는 말로 물어봤을 때도 별 생각 없이 "기회되..

심상 2024.01.13

네트워킹, 우모(Umoh)

원래 숫기가 없고 극도로 내성적인 성격을 가진 나는 처음 보는 사람들을 만나서 이야기를 나누고 관계를 형성한다는 네트워킹이란 정말 나와는 관련 없는 다른 세상 얘기라고 생각했다. 내가 좋아하는 건 조용히 관찰하는 것이고, 그래서 새로운 사람들을 만나는 모임에선 항상 사람들의 모습을 유심히 관찰을 하다가 조용히 사라지곤 했다. 그런 내가 네트워킹에 흥미를 가지게 된 건 90년 대 후반부터 열심히 참석하던 개발자 행사, 특히 해외에서 열리는 컨퍼런스 때문이다. 보통 3-4일 일정으로 열리는 컨퍼런스에선 매일 저녁 스폰서가 주최하는 네트워킹 파티가 진행된다. 행사가 열리는 호텔이나 전시장에서 하는 경우도 있지만 근처의 유명 펍이나 식당을 통째로 대여해서 열리기도 한다. 음식과 음악 정도 제공되는 공간에 다들 ..

심상 2023.10.11

테스팅 프레임워크는 직접 만들어 써보자

기존 블로그에 있던 글 중에서 남기고 싶은 것들을 옮겨봐야겠다. 2008년에 쓴 글이다. TDDBE/테스트주도개발 책을 읽으며 가장 감탄하게 만들었던 xUnit 만들기에 관한 이야기이다. 한참 뒤에 라이브코딩으로 xUnit 만드는 걸 유튜브에 공개했다. xUnit의 시초이자 자동화된 테스팅 프레임워크 붐의 기원은 잘 알려진 대로 JUnit이다. 물론 그 이전에도 여러 개발자들이 스스로 테스트 코드를 작성하기 위해서 여러 가지 툴을 직접 만들어서 사용했다고 한다. 하지만 JUnit처럼 공개된 단순한 프레임워크이면서 빠르게 많은 개발자들에게 영향을 주고, 실질적인 테스트의 가치를 느끼게 하고 테스트 작성을 실천하게 도와준 것은 없었다. JUnit의 첫 버전은 Erich Gamma와 Kent Beck이 함께 ..

사상 2023.10.10

아티장 프로그래머

로버트 마틴의 대표작인 Clean Code의 부제는 A Handbook of Agile Software Craftsmanship이다. 애자일 소프트웨어 장인정신의 안내서. 그런데 여기서 craftsman이 성차별(sexism)적인 단어라서 이 책을 싫어한다는 글을 본 적이 있다. 나는 원래 장인을 뜻하는 단어 중에서 artisan을 좋아한다. 코딩과 함께 은퇴 후에도 계속해보고 싶은 건 빵을 만드는 일이다. 전통적인 방식을 따라서 멋진 빵을 만드는데 필요한 과학적인 지식과 섬세한 기술, 오랜 경험을 갖춘 숙련된 제빵사를 artisan baker라고 부른다. artisan은 뭐랄까, 무엇인가 만들어내는 일에 대해서 보다 예술적인 추구를 하는 사람을 가리키는 말이 아닐까 싶다. 누군가 사용/식용할 수 있는 ..

심상 2023.10.07

작곡

https://youtu.be/rbSAIwBGCPA?t=1541 고1 때 작곡 공부를 시작하고 나서 두 번째로 만든 노래. 이 곡으로 친구가 기독교 창작곡 대회 본선에 진출했다. 정식으로 발매된 음반에도 실렸다. 친하게 지내던 친구가 어느 날 가사가 적힌 종이를 건네주면서 곡을 만들어달라고 했다. 당시 공부는 안 하고 맨날 기타만 친다고 아버지한테 혼나던 터라 틈을 내기가 쉽지 않았다. 아버지한테 걸리지 않으려고 어쩔 수 없이 새벽에 일어나 소리가 나지 않게 이불 뒤집어쓰고 조용히 기타를 치며 악보를 그렸다. 곡은 거의 하루 만에 완성했다. 나중에 듀엣으로 부를 수 있게 편곡하고 반주자를 위해서 피아노 악보도 만들었다. 녹음에 참여하는 밴드에게 연주 방법을 요청하는 글도 작성해서 전달했다. 대회에선 수상..

심상 2023.09.30

PaxCaelo 관성을 거슬러서

생계를 위한 수단이 아닌 창작 활동에는 관성이 강하게 적용된다. 관성은 우주에 빌트인된 현재 상태를 유지하려는 수동적인 속성이다. 예외는 없어서 법칙이라고도 부른다. 일정하게 운동하고 있는 물체는 다른 힘을 가하지 않으면 그 운동을 계속한다. 반면에 멈춰있는 물체는 힘을 주지 않으면 그대로 멈춰있다. 저절로 상태가 변하지 않는다. 20년 전 블로그를 처음 만들었고 10여년 간 열심히 블로그에 글을 썼다. 그때 알았다. 블로그는 관성으로 한다는 것을. 아침마다 힘겹게 일어나 출근을 하는 건 그러지 않으면 상사나 고객이 화가 날 거고, 내 생계가 막막해질 수도 있다는 절박함이 있어서다. 하지만 아침에 블로그 글을 쓰는 건, 그저 어제 썼기 때문이다. 그제도 쓰고, 지난주에도 쓰고. 아침에 기술 뉴스 사이트를..

심상 2023.09.27