Repository navigation
나의 프로그래머 인생에 대한 고찰 | 차한음 블로그 #15
Replies: 3 comments
|
안녕하세요, 김준(@kjoon418) 선배님. 제 글을 관심 있게 읽어주시고 피드백을 남겨주셔서 감사드립니다. 이메일을 통해 해당 포스팅에 관하여 남겨주신 말씀에 대하여 답변을 드리고자 합니다. 1.선배님께서 말씀해 주신 "프론트엔드 개발자 역시 콘텐츠를 제작하는 사람이 아니라 사용자의 문제를 해결하는 엔지니어"라는 정의는, 프론트엔드를 넘어 백엔드, 시스템, DevOps 등 소프트웨어 공학의 모든 영역을 관통하는 가장 기초적이면서도 보편적인 명제입니다. 저 역시 이 점에 대해서는 일말의 이견도 없이 전적으로 동의합니다. 나아가 저는 초등학교 시절 C 언어로 프로그래밍을 처음 접한 이래, 중학교 1학년때 부터 약 5년간 웹 프론트엔드 프로그래밍에 천착하여 바닐라 자바스크립트부터 시작해 React, Next.js 환경에서 SPA 핵심 로직을 직접 구현하고, 전역 상태 저장 패러다임으로의 전환을 시도하였으며, Bun JavaScript Runtime 오픈소스 기여와 다수의 해커톤 및 대회 출전, 그리고 상용 서비스를 배포하는 일련의 과정을 거쳤습니다. 이러한 프론트엔드 프로그래밍의 경험 속에서 사용자가 겪는 불편을 해소하는 등 프론트엔드 프로그래밍의 가치를 경험론적으로 깊이 체득하였습니다. 그러므로 프론트엔드 개발자가 단순한 시각물이나 페이지를 만드는 '크리에이터'에 불과하지 않다는 사실은, 제가 이 글을 쓰기 앞서 이미 깨닫고 있던 진실입니다. 2.제가 에세이에서 언급한 '콘텐츠'라는 개념이 무엇을 뜻하는지, 그 본질적인 연유를 밝힐 필요가 있을 것입니다. 여기서의 '콘텐츠'는 일상적인 어휘로서의 사진, 글, 미디어 등을 의미하는 것이 아닙니다. 컴퓨터 구조 및 소프트웨어 계층의 관점에서 볼 때, 응용 소프트웨어가 사용자에게 전달하고자 하는 "고유한 비즈니스 로직과 서비스 도메인" 그 자체를 지칭한 것입니다. 응용 프로그래밍은 본질적으로 특정한 사용자 문제를 해결하기 위한 서비스 도메인을 구현하는 작업입니다. URL 사진 공유 서비스이든, 위치 기반 장소 저장 서비스이든, 프론트엔드 프로그래밍은 가상 돔을 최적화하고 클린 아키텍처를 적용하며 우수한 상태 관리를 구축하더라도, 그 모든 기술적 노력은 필연적으로 "어떤 서비스 가치(콘텐츠)를 사용자에게 제공할 것인가"라는 상위의 도메인 목적에 완벽히 종속될 수밖에 없습니다. 즉, 프론트엔드 프로그래밍이란 '비즈니스 서비스 도메인의 성공적인 전달'이라는 최종 목적함에 귀착되는 부차적 수단인 것 입니다. 3.제가 프론트엔드 프로그래밍을 떠나 시스템 프로그래밍으로 전향하게 된 까닭은, 결코 '사용자의 문제를 해결하는 행위'에 싫증을 느꼈기 때문이 아닙니다. 저의 모든 지적 에너지와 엔지니어링의 열정이 "특정한 비즈니스 서비스 도메인(콘텐츠)"에 종속되는 형태가 아니라, "그 위에 올라가는 서비스가 무엇이든 간에, 컴퓨터라는 물리적 고철 덩어리 위에서 소프트웨어가 어떻게 더 결정론적이고, 결함이 없으며, 효율적으로 구동될 수 있는가"라는 컴퓨터 그 자체의 실행 환경(Runtime, OS, Compiler)을 다루는 일에 온전히 쓰이기를 진정으로 갈망했기 때문입니다. 시스템 프로그래밍은 '어떤 비즈니스 아이템을 서비스할 것인가'라는 도메인(콘텐츠)에 구애받지 않는 영역입니다. OS 커널과 메모리 관리자, 컴파일러 등은 그 위에서 실행되는 애플리케이션이 SNS이든, 금융 결제이든, 물리 시뮬레이션이든 상관없이 하드웨어 레지스터와 캐시 라인, 동시성 모델을 극한으로 제어합니다. 제가 과거 Bun의 런타임 소스코드를 뜯어보고 SPA 엔진을 바닥부터 구현하며 흥미를 느꼈던 지점 역시 '웹 화면의 완성'이라는 서비스 결과물이 아니라, '브라우저 엔진과 운영체제가 그 코드를 어떻게 파싱하고 메모리에 적재하여 실행하는가'라는 것에 있었습니다. |
|
안녕하세요. 내용을 보니, 저수준(low-level)에 흥미를 느끼시는 것 같네요. 시스템의 최적화와 안정성을 고민하는 것 역시 중요하지요.
프론트엔드 개발자로 프로젝트에 참여하다 보면 단순히 페이지를 구성하는걸로 프로젝트가 끝나는 경우가 많으니, 그렇게 생각할 수 있다고 생각해요. 그래도 저는 이 주장에 동의하진 못하겠습니다.
시스템 프로그래머가 만드는 제품이 비즈니스 아이템에 직접 연결되어 있진 않죠. 아무리 잘 어려운 기술을 써서 잘 만든 제품이라도, 필요하지 않으면 누구도 쓰지 않아요. |
|
김준(@kjoon418) 선배님, 답글을 남겨주셔서 감사드립니다. 선배님의 관점 속에서 제가 나아가야 할 프로그래머로서의 본질과 길을 다시금 반추해 볼 수 있는 계기가 되었습니다. 시간 내어 소중한 생각을 나누어 주셔서 다시 한번 감사드리며, 선배님의 앞길을 저 또한 응원하겠습니다. Re:
|
Uh oh!
There was an error while loading. Please reload this page.
나의 프로그래머 인생에 대한 고찰 | 차한음 블로그
내가 왜 프론트엔드 프로그래밍을 그만두고, 시스템 프로그래밍으로 전향했는지를 나의 블로그에서 한 번도 얘기를 해본 적은 없는 듯하다. 이번 글에서는 그 예기를 나의 인생 이야기와 ...
https://chebread.org/post/나의-프로그래머-인생에-대한-고찰
All reactions