어느덧 C#이 세상에 나온 후 강산이 바뀌고도 한참의 세월이 흘렀습니다. 어린 시절의 나에게 가장 큰 영향을 끼쳤던 두 가지 언어인 베이직과 C의 경우에는 아쉽게도 그러지 못했지만 C#의 경우에는 출현부터 현재에 이르는 과정을 먼 발치에서 지켜볼 수 있었는데, 이처럼 훌륭한 저서를 접하고 또 소개할 수 있는 기회를 가지는 행운까지 만끽하게 되었습니다.
우리가 태어나서 앞 세대로부터 교육을 받으며 자라나 더 나은 세대가 되고자 노력하고 또 그렇게 꾸준히 무언가를 이루어가며 살아가는 것처럼, 프로그래밍 언어도 마치 생명체와 같이 탄생, 학습, 성장 등과 같은 생명 주기를 지니는 것으로 본다. 물론 이러한 생명력을 부여하는 존재 또한 역자나 독자와 같은 인간이기에 프로그래밍 언어가 생명체라고 정의할 수는 없지만, 어떤 면에서는 그렇기에 더욱 인간적인 면들이 프로그래밍 언어에 나타나는 것은 아닌가라는 생각도 해 봅니다.
C#은 이제 어느 정도 성숙한 느낌을 주는 언어가 되었습니다. 앞서 나온 언어들에서 구현된 많은 면을 그대로 계승해 좋은 점을 발전적으로 이어 나가면서, C#의 강점 가운데 하나로 꼽는 높은 생산성마저도 꾸준히 개선해 나가고 있습니다. C#의 단점이라면 한 번 C#을 경험한 프로그래머가 이전에 쓰던 언어로 돌아가기가 쉽지 않다는 점 정도가 아닐까 합니다.
이처럼 발전을 이뤄낸 모습을 지니고 있지만, 초기보다 불가피하게 덩치가 커지고 복잡해졌습니다. 그래서 C#을 제대로 알고 사용하려면 어쩔 수 없이 더 노력해야 하게 되었는데, 이는 개발자에게 부담으로 작용합니다. 다행히 '제대로 알고 정확하게 사용'하는 데 도움이 될 멋진 지침서 가운데 하나가 바로 지금 여러분의 눈앞에 있다고 감히 이야기 하고 싶습니다. 책을 번역하면서 개발자인 저로서도 수년간 당연시하며 사용하던 코드의 내막들을 깨닫고 고개를 수없이 끄덕였습니다. C#을 닷넷의 일부가 아닌 언어 자체로 보고 언어에 대한 탐구를 즐기고자 하거나 초급에서 벋어나 중/고급 개발자를 향해 열정을 불태우고자 한다면 이 책이 큰 도움이 될 것이라고 믿습니다.
어느덧 C#이 세상에 나온 후 강산이 바뀌고도 한참의 세월이 흘러버렸습니다. 어린 시절의 나에게 가장 큰 영향을 끼쳤던 두 가지 언어인 베이식과 C의 경우에는 아쉽게도 그러지 못했지만, C#의 경우에는 출현부터 현재에 이르는 과정을 가까이서 또 한편으로는 먼발치에서 지켜볼 수 있었는데, 이처럼 훌륭한 책을 접하고 또 소개할 수 있는 기회를 갖는 행운까지 만끽하게 되었습니다.
우리가 태어나서 앞 세대로부터 교육을 받으며 자라나 더 나은 세대가 되고자 노력하고, 또 그렇게 꾸준히 무언가를 이뤄가며 살아가는 것처럼 프로그래밍 언어도 마치 생명체와 같이 탄생, 학습, 성장 등과 같은 생명주기를 지니는 것이라 생각합니다. 물론 이러한 생명력을 부여하는 존재 또한 역자나 독자와 같은 인간이기에 프로그래밍 언어가 생명체라고 정의할 수는 없지만, 어떤 면에서는 그러기에 더욱 인간적인 면들이 프로그래밍 언어에 나타나는 것이 아닌가라는 생각도 해봅니다.
C#은 이제 어느 정도 성숙한 느낌을 주는 언어가 되었습니다. 앞서 나온 언어들에서 구현된 많은 면을 그대로 계승하고, 좋은 점을 발전적으로 이어 나가면서 C#의 강점 가운데 하나로 꼽는 높은 생산성마저도 꾸준히 개선해 나가고 있습니다. C#의 단점이라면 한 번 C#을 경험한 프로그래머가 이전에 쓰던 언어로 돌아가기가 쉽지 않다는 점 정도가 아닐까 합니다.
이처럼 발전을 이뤄낸 모습을 지니고 있지만, 초기보다 불가피하게 덩치가 커지고 복잡해졌습니다. 그래서 C#을 제대로 알고 사용하려면 어쩔 수 없이 더 많은 노력이 필요한데, 이는 개발자에게 부담으로 작용합니다. 다행히 '제대로 알고 정확하게 사용'하는 데 도움이 될 멋진 지침서 가운데 하나가 바로 지금 여러분의 눈앞에 있다고 감히 이야기하고 싶습니다. 책을 번역하면서 개발자인 저도 수년간 당연시하며 사용하던 코드의 내막들을 깨닫고 고개를 수없이 끄덕였습니다. C#을 닷넷의 일부가 아닌 언어 자체로 보고 언어에 대한 탐구를 즐기고자 하거나, 초급에서 벗어나 중/고급 개발자를 향해 열정을 불태우고자 한다면 이 책이 큰 도움이 될 것이라고 믿습니다.
이 책은 지속적인 혁신과 변화를 거치는 과정에서도 변치 않는 C#의 가치와 핵심을 저자의 경험과 노하우에서 비롯한 잘 정리된 논리에 따라 차근차근 설명하며, 개정판을 거치면서 진화하는 C#의 주요 변경 사항을 적재적소에서 녹여 내고 있습니다. 다양한 매체를 이용해 자유롭게 찾아볼 수 있는 넘쳐나는 정보로 인해 혼란스럽기까지 한 시대에 이 책과 같은 인쇄물이 갖는 강점은 길을 잃지 않고 목표에 보다 잘 집중해 원하는 것 이상의 지식을 단단히 머릿속에 새길 수 있는 포장된 길을 제공하는 것입니다. 너무나 빠른 기술 발전 속도와 신기술 등장에 현혹돼 자칫 기본을 다지는 데 필요한 투자의 중요성을 놓치기 십상입니다만, 부디 이 책과 함께하는 분들은 적어도 C#에 한해서는 무한한 가능성을 펼칠 수 있는 누구보다 단단한 기반을 다지는 기회로 삼아 주셨으면 하는 바람입니다.
Essential C# 개정판을 몇 권에 걸쳐 번역하는 사이 C#은 이제 20대에 접어든 한창 에너지 넘치는 젊음을 떠올리는 시절을 맞이했고, 한편으로 역자처럼 C# 초기를 함께한 개발자들이 어느덧 중년을 넘어서고 있습니다. 최근 몇 년 동안 직접 코딩하기보다는 개발팀을 리딩하는 업무에 집중하고 있어, 코드를 쫓는 눈길이 예전처럼 빠르지 못하고 생각한 것을 코드로 옮기기까지 많은 대기시간을 요구하는 비동기적 사고방식에 젖어 있습니다. 하지만 개발의 즐거움과 창조의 매력에 빠져 본 사람이라면 누구나처럼 가슴 속에 꺼지지 않는 코딩에 대한 열정은 여전함을 느낍니다. 개정판을 번역하면서 조금은 식어 가던 열정을 다시 깨울 수 있었던 것은 반복되는 일상에서 얻기 힘든 가치 있는 경험이었습니다. 독자분들이 책을 보고 C#을 이해하고 제대로 사용할 수 있는 힘을 얻으실 수 있도록 노력했습니다만, 역자의 부족함으로 인해 저자의 의도를 정확히 짚지 못한 부분이 있을 수 있는 점 미리 너그러이 양해 부탁드립니다.