“좋은 설계는 타 개발자가 시스템을 오용하기 어렵게 안전한 경계를 만드는 것에서 시작합니다.”
초등학생 시절 컴퓨터를 하다 문득 기존에 존재하고 있던 프로그램만이 아닌 나만의 프로그램을 직접 만들고 싶다는 욕구가 생기게 되었고, 인터넷에서 VB.NET이라는 이름의 프로그래밍 언어를 발견하며 프로그래밍이라는 분야에 빠져들기 시작했습니다. 개발에 재미를 붙여 10년이 넘는 기간 동안 취미로 삼으며 다양한 언어와 기술을 탐색해, 이를 바탕으로 새로운 환경에서도 빠르게 백지 상태에서 스택을 학습해 프로토타입을 구축할 수 있는 역량을 갖추었습니다. 현재는 React를 주력으로 함과 동시에 Dart/Flutter 생태계를 애용하여 깊게 파고드는 등 다양한 기술에 꾸준히 관심을 가지며 학습을 이어가고 있습니다.
오랫동안 프로그래밍을 접하고 경험해오면서 다음과 같은 개발 철학을 지니게 되었습니다:
- 런타임 안정성이 보장되는 견고함과, 지속 가능하고 생산성 있는 개발 속도가 보장되는 간결함이 조화를 이루는 구조를 지향합니다.
- 정적 타입을 통한 컴파일 타임 에러 예방이 가능한 언어를 선호하며, Strict 한 린터 등 개발 환경 설정을 통해 휴먼 에러를 구조적으로 극복하고자 노력합니다.
- 역할과 책임이 명확히 드러나는 객체지향 구조와 인터페이스의 의도를 한눈에 파악하기 좋은 선언형 프로그래밍을 결합하여, 코드를 파악하는 인지 부하를 줄입니다.
- 프로젝트 전반의 구조나 외부로 드러난 인터페이스 자체만으로 이를 사용할 개발자에게 코드 변경이나 활용의 충분한 가이던스가 될 수 있는, 개발자 경험(DX) 측면에서의 명확한 설계를 중시합니다.
- 대중적인 기술에 안주하기보다 상황에 가장 알맞은 최적의 대안 기술을 리서치하고 발굴하는 과정을 즐깁니다.
- 어떤 아키텍처나 패러다임도 절대적인 정답은 없음을 인지하며, 상황에 가장 적합한 실용적이고 유연한 코드 설계를 지향합니다.
진정으로 아름다운 코드는 컴퓨터가 효율적으로 읽는 것을 넘어, 함께 일하는 동료나 내가 만든 코드를 사용할 타 개발자가 효율적으로 읽고 활용을 할 수 있는 구조여야 한다는 마음가짐으로 코드를 작성해 나가고 있습니다. 내가 작성하고 있는 코드가 누군가가 사용하는 서비스가 된다는 것을 실감하며 사용자 중심의 인터페이스를 구현하는 데 큰 즐거움을 느낍니다.