GN⁺: 코드는 읽는 것보다 실행되는 경우가 더 많다
(olano.dev)소프트웨어 개발의 가치 체계
- 소프트웨어 개발 과정에서 코드는 작성보다 읽히는 경우가 더 많으며, 이는 유지보수가 쉬운 코드를 작성하는 것이 좋은 투자임을 의미함.
- 코드는 단순히 작성되는 것이 아니라 사용자에게 서비스를 제공하는 목적을 가지고 있으며, 사용자 경험이 중요함.
- 사용자 중심의 개발을 위해 사용자에게 프로그램을 일찍이고 자주 보여주고 피드백을 받는 것이 중요함.
코드 운영의 중요성
- 코드가 실행되는 것은 프로그램을 운영하는 것을 포함하며, 배포, 업그레이드, 모니터링 등을 포함함.
- 소프트웨어가 실제 운영 환경에서 실행될 때 KISS(Keep It Simple, Stupid) 원칙이 더욱 중요해짐.
- 실제 운영에서는 코드뿐만 아니라 시스템의 각 부분을 이해하고 실패 상황에서도 작동할 수 있도록 하는 것이 중요함.
비즈니스 관점의 중요성
- 사용자 중심의 개발은 소프트웨어가 조직에 가치를 제공한다는 가정 하에 유효함.
- 비즈니스 관점을 개발 과정에 포함시키는 것이 유익할 수 있으며, 예산, 마케팅, 기한 등을 고려해야 함.
- 조직 전체를 고려할 때 소프트웨어, 팀 또는 사용자에게 의미 있는 결정이 항상 최선은 아닐 수 있음.
소프트웨어 개발의 일반적인 문제점
- 유지보수가 어려운 코드는 작성자 중심의 접근으로 발생함.
- 사용자 경험을 고려하지 않는 소프트웨어는 개발자 중심의 접근으로 인해 발생함.
- 운영을 고려하지 않고 설계된 소프트웨어는 개발자 중심의 접근으로 인해 발생함.
- 비즈니스 관점을 고려하지 않는 소프트웨어는 개발자 중심의 접근으로 인해 발생함.
- 실제로 운영되지 않는 소프트웨어는 비즈니스 중심의 접근으로 인해 발생할 수 있음.
GN⁺의 의견
이 글에서 가장 중요한 것은 소프트웨어 개발 과정에서 다양한 요소들의 상대적 중요성을 인식하고 이를 바탕으로 의사결정을 하는 것임. 사용자, 운영, 개발자, 비즈니스 간의 관계를 이해하고 균형을 맞추는 것이 중요함. 이 글은 소프트웨어 개발자들에게 흥미로운 인사이트를 제공하며, 개발 과정에서 종종 간과되기 쉬운 비즈니스와 운영의 중요성을 강조함으로써 보다 효과적이고 책임감 있는 개발 문화를 조성하는 데 도움을 줄 수 있음.
Hacker News 의견
-
언어 설계 및 표준 라이브러리 개발자와 모듈 개발자, 일반 개발자, 최종 사용자 간의 사용량 증가
언어 설계자 대비 모듈 개발자, 일반 개발자, 최종 사용자의 비율이 각각 약 1000배씩 증가하는 경향이 있음. 이는 언어 설계나 표준 라이브러리 개발 초기 단계에서의 작은 게으름이 후방에 큰 영향을 미칠 수 있음을 의미함.
-
시스템 사용의 이유와 중간 관리자의 역할
사용자가 시스템을 사용하는 이유는 회사에서 구매했기 때문일 수 있으며, 이 경우 개발자는 실제 사용자의 필요보다는 중간 관리자의 요구에 부응해야 함. 이는 사용자가 불완전한 제품에 얽매이게 될 수 있음을 시사함.
-
비교 관계를 나타내는 수학 기호 ≹에 대한 발견
'≹' 기호는 두 개체가 서로에게 크거나 작지 않으면서도 반드시 동등하지 않은 관계를 나타냄. 이는 수치적으로만 비교할 수 없는 상황에서 중요한 구분임.
-
코드 실행 비용 대비 개발자 시간의 가치
코드를 10억 번 실행하는 비용이 개발자 몇 분의 시간보다 적을 수 있음. AWS 서버를 한 달간 사용하여 웹 API 코드를 1000억 번 실행할 수도 있음. 코드 최적화는 경제적으로 비효율적이 될 때까지 항상 인간의 가독성을 우선시해야 함.
-
코드 가독성의 중요성
코드가 읽히지 않으면 오래 실행되지 않음을 의미함. 시스템 관리자에서 개발자로 전환하려는 초보자의 관점에서 이해함.
-
저자의 이론에 대한 비판적 시각
저자가 일반적인 진리를 재해석하여 자신의 이론을 구축함에 있어, 그 표현이 고통스럽고 유용하지 않은 단축어로 오해될 수 있음.
-
비즈니스의 본질과 사용자의 중요성
비즈니스는 실제로 존재하지 않으며, 자원을 조직하는 데 도움이 되는 가상의 구조임. 비즈니스의 목표는 사용자에게 봉사하는 것이며, 내부 정치가 혼란스러워 비즈니스 이익만을 추구하게 되면 조직은 독성을 가지게 됨.
-
개발, 운영, 비즈니스의 복잡한 관계
개발, 운영, 비즈니스는 각각 단일한 엔티티가 아니며 다양한 전문성과 조직 내 다른 역할을 가진 사람들로 구성됨. 이들 모두가 코드 작성 방식과 사용자에게 제공되는 시기에 영향을 미침.
-
소프트웨어 업계의 윤리적 문제에 대한 토론
소프트웨어 전문가들 사이에서 증가하는 불편함의 원인을 설명하려는 시도로, 사용자가 고객이 아닐 때, 비즈니스 모델이 사용자에게 부정적인 영향을 미칠 때의 윤리적 의무에 대한 질문을 제기함.
-
개발, 운영, 비즈니스의 상대적 중요성에 대한 개인적 견해
개발, 운영, 비즈니스의 중요성은 상황에 따라 다르며, 때로는 개발이 비즈니스나 운영보다 우선시되어야 하는 경우도 있음을 인정함.