알라딘

검색
헤더배너
상품평점 help

분류

이름:존 스키트 (Jon Skeet)

최근작
2025년 3월 <이펙티브 소프트웨어 설계>

저자의추천 작가 행사, 책 머리말, 보도자료 등에서 저자가 직접 엄선하여 추천한 도서입니다.
이 분야에 1개의 상품이 있습니다.
옵션 설정
25개
1.
스프링분철 서비스 이용이 가능한 도서입니다. 자세히보기
드럼 키트에 대한 얘기부터 시작해보자. 2019년 여름, 친구 중 한 명이 전자 드럼을 통해 나를 드러밍의 세계로 끌어들였고, 나는 곧 이에 푹 빠졌다. 실제로 드럼을 연주하기도 했지만, 그보다 더 많은 공을 들인 것은 MIDI SysEx 명령어를 다루는 코드를 작성해 드럼 키트의 설정에 상호작용할 수 있게 하는 작업이었다. 신종 코로나 팬데믹이 들이닥친 다음, 내 관심사는 다니던 교회로 옮겨갔다. 원격으로 예배를 드리든 추후에 다시 대면 예배로 돌아가든, 예배 중 음악과 영상을 어떻게 다룰지 고려할 필요가 있었던 것이다. 이를 위해 VISCA, NDI, OSC 같은 (카메라 및 오디오 믹서 관련) 프로토콜과 더불어 줌(Zoom), VLC, 파워포인트(PowerPoint), 스트림 덱(Stream Deck) 등을 활용한 소프트웨어 지향 통합에 치중했다. 이러한 프로젝트는 비즈니스 로직이 큰 비중을 차지하지 않는다. 대부분의 코드는 통합에 관련된 내용이며, 당혹감과 성취감을 동시에 불러일으킨다. 당혹스러움을 느끼는 이유는, 프로토콜의 문서화가 명확하게 되지 않았거나 실제 사용 목적에 맞게 디자인되지 않았거나 그냥 일관성이 없기 때문이다. 성취를 느끼는 이유는, 통합에 관한 부분을 해결하기만 하면 거인들의 어깨 위에 서서 유용한 앱을 매우 쉽게 만들어낼 수 있기 때문이다. 앞에서 언급한 지난 몇 년 동안의 경험은 주로 로컬 통합에 치중된 것이지만, 웹 API에서도 동일한 당혹감과 성취감을 느낄 수 있다. 새로운 웹 API를 고를 때마다 거치는 감정 곡선은 흥분, 당혹감, 짜증, 순응, 그리고 끝으로 꺼림칙한 평온함으로 요약할 수 있다. 강력한 API가 무엇인지를 완전히 이해한다는 것은 어떤 곡이든 연주할 준비가 돼 있는 지휘자가 거대한 오케스트라 앞에 서 있을 때의 기분과 유사하다. 바이올린 파트가 끝까지 한 음만 연주한다든지, 금관 섹션을 지휘할 때 별다른 이유 없이 다른 색의 지휘봉을 사용해야 한다든지 할 수 있기는 하지만 말이다. 이 책이 뭔가를 바꾸지는 못한다. 이건 책일 뿐이니까. 그러나 어떤 독자가 이 책을 읽고 그 내용을 따른다면 API 사용자의 경험을 바꿀 수 있다. 수많은 사람이 이 책을 읽고 그 내용을 따른다면 우리 모두 훨씬 일관적이고 덜 당혹스러운 웹 API 경험을 만들어나갈 수 있다. 이 책은 단지 내용이 훌륭한 것에서 그치지 않는다. JJ가 다루고 있는 모든 주제는 사실 어떤 팀에서든 올바른 결정을 내릴 수 있는 것들이다(물론 누군가는 이 책에서 다루는 코너 케이스를 놓칠 수도 있을 것이다). 아마도 특정 상황에서는 이 책에서 추천하는 방식보다도 더 적합한 결정을 내릴 것이다. 책에서는 어쩔 수 없이 제한된 요구 조건을 다룰 수밖에 없기 때문이다. 이런 식의 접근을 통해 내리는 여러 결정은 지엽적인 관점에서는 최적의 선택이지만, 큰 그림에서 보면 매우 파편화된 양상을 보인다. 때문에 같은 회사 내의 API라도 다른 여러 접근법을 취해야 할 수도 있다. 이 책은 각각의 주어진 문제에서가 아니라 다양한 API 디자인 영역에 걸쳐 일관된 접근법을 보여준다. API 디자이너에게 이렇게 깊이 있게 고민할 수 있는 기회가 주어지기란 쉽지 않다. 나는 너무나 운 좋게도 JJ 같은 사람들(특히 루크 스네링거(Luke Sneeringer)를 포함한)과 함께 일하며 이 책에서 다룬 여러 주제를 논의할 수 있었다. 구글이 API 디자인을 위해 지원해 준 덕분에 이 책과 API 시스템(https://aip.dev)을 통해 많은 개발자가 도움을 얻을 수 있게 됐다 해도 과언이 아니다. 그러나 이 책이 갖고 있는 훌륭한 가치와 별개로, 이 책을 읽는다고 훌륭한 API를 손쉽게 디자인할 수 있다는 것은 아니다. 다만 API를 디자인함에 있어 따라오게 되는 많은 복잡한 문제를 해결해서, 만들고자 하는 API에 존재하는 나름의 문제에 집중할 수 있게 해준다. 물론 계속 생각하고 고민해야 하겠지만, 그렇게 해야만 API가 잘 작동할 것이란 확신을 가져야 한다. 물론 API 사용자들이 당신에게 직접 감사의 뜻을 표하지는 않을 것이며, 많은 경우 API를 잘 디자인하려면 수많은 노력이 필요하다. 하지만 어찌됐든 API 사용자들이 당황스러운 상황을 마주하지 않는다면 얼마나 다행스러운 일이겠는가. 이 책을 통해 당신의 API가 누군가에게 거인의 어깨 역할을 할 수 있기를 희망한다.
가나다별 l l l l l l l l l l l l l l 기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자