프로그램 개발에서 가장 중요하게 생각하는 것

프로그램을 잘 만든다는 것은 무엇일까?

프로그램 개발에서 가장 중요하게 생각하는 것

프로그램 개발을 시작한 지 어느덧 30년이 넘었습니다.

처음 프로그램을 만들던 시절에는 좋은 프로그램을 만들기 위해서는 코딩 실력이 가장 중요하다고 생각했습니다.

어떤 언어를 잘 다루는지,

얼마나 빠르게 코드를 작성할 수 있는지,

복잡한 알고리즘을 얼마나 잘 구현할 수 있는지,

그리고 프로그램을 얼마나 효율적으로 만들 수 있는지가 중요하다고 생각했습니다.

그래서 새로운 프로그래밍 언어가 나오면 공부했고, 새로운 기술이 나오면 사용해 보았고, 더 좋은 알고리즘이 있으면 찾아보았습니다.

그렇게 10년, 20년, 그리고 30년이 지나고 나니 조금 다른 생각을 하게 되었습니다.

프로그램 개발에서 정말 중요한 것은 따로 있지 않을까?

코드를 잘 작성하는 것만으로 좋은 프로그램이 될까?

개발자가 프로그램을 만들 때 가장 쉽게 빠지는 함정이 있습니다.

바로 “내가 코드를 잘 작성했는가?”에 집중하는 것입니다.

저도 오랫동안 개발하면서 이런 생각을 많이 했습니다.

“이 기능을 이렇게 구현하면 더 효율적이지 않을까?”
“이 알고리즘을 사용하면 속도를 더 빠르게 만들 수 있지 않을까?”
“코드를 조금 더 깔끔하게 정리할 수 없을까?”

물론 모두 중요한 문제입니다.

하지만 프로그램을 사용하는 사람의 입장에서 보면 조금 다른 질문이 필요합니다.

“그래서 이 프로그램을 사용하는 사람이 편한가?”

결국 프로그램은 개발자를 위해 존재하는 것이 아니라 사용자를 위해 존재하기 때문입니다.

제가 가장 중요하게 생각하는 것

30년 동안 프로그램을 만들면서 지금 제가 가장 중요하게 생각하는 것은 크게 세 가지입니다.

1. 무엇을 만들 것인지 정확하게 이해하는 것
2. 사용하는 사람이 쉽게 사용할 수 있도록 만드는 것
3. 나중에 수정하고 발전시킬 수 있도록 만드는 것

어쩌면 너무 당연한 이야기처럼 들릴 수도 있습니다.

그런데 실제 개발에서는 이 세 가지를 지키는 것이 생각보다 쉽지 않습니다.

1. 무엇을 만들 것인지 정확하게 이해하기

프로그램 개발에서 가장 먼저 해야 할 일은 코드를 작성하는 것이 아니라고 생각합니다.

무엇을 만들 것인지 생각하는 것입니다.

아무리 훌륭한 코드를 작성하더라도 처음부터 잘못된 것을 만들고 있다면 좋은 프로그램이 될 수 없습니다.

예를 들어 사용자가 원하는 것은

“버튼 하나를 누르면 결과를 보여주는 간단한 프로그램”

인데,

개발자가 이것을 너무 복잡하게 생각해서 여러 화면과 수많은 기능을 넣어 버린다면 어떻게 될까요?

기술적으로는 훌륭할 수 있습니다.

하지만 사용자는 오히려 어려워할 수 있습니다.

그래서 저는 프로그램을 만들 때 가능하면 먼저 이런 질문을 합니다.

“이 프로그램을 사용하는 사람은 무엇을 하려고 하는가?”

그리고 그 질문에 대한 답을 찾은 다음 프로그램을 만들기 시작합니다.

2. 프로그램은 개발자가 아니라 사용자가 사용한다

개발자는 프로그램의 내부 구조를 잘 알고 있습니다.

어떤 버튼을 눌러야 하는지도 알고 있고, 어떤 순서로 기능을 사용해야 하는지도 알고 있습니다.

하지만 사용자는 그렇지 않습니다.

처음 프로그램을 실행한 사람에게는 개발자에게 너무나 당연한 것도 어려울 수 있습니다.

그래서 저는 프로그램을 만들 때 가능하면 “처음 보는 사람이 사용할 수 있는가?”를 생각합니다.

특히 제가 최근 만들고 있는 프로그램들은 40대, 50대, 60대 사용자도 쉽게 사용할 수 있어야 한다는 생각을 많이 합니다.

그래서 제가 좋아하는 표현이 하나 있습니다.

Simple & Smart

복잡한 기능을 가지고 있더라도 사용하는 방법은 단순해야 한다는 생각입니다.

기능을 많이 넣는 것이 좋은 프로그램을 만드는 것이 아니라,

필요한 기능을 사용자가 쉽게 찾고 사용할 수 있게 만드는 것

이 더 중요하다고 생각합니다.

3. 프로그램은 한 번 만들고 끝나는 것이 아니다

30년 동안 개발하면서 또 하나 크게 느낀 것이 있습니다.

프로그램은 완성되는 순간부터 다시 시작된다는 것입니다.

처음 만들 때는 완벽해 보였던 프로그램도 사용하다 보면 문제가 발견됩니다.

사용자가 새로운 기능을 요구하기도 하고,

환경이 바뀌기도 하고,

운영체제가 바뀌기도 하고,

새로운 기술이 나오기도 합니다.

그래서 프로그램은 계속 수정되고 발전합니다.

그렇기 때문에 저는 처음부터

“나중에 내가 이 프로그램을 다시 수정할 수 있을까?”

라는 생각을 합니다.

코드를 작성할 때도 지금 당장 동작하는 것만 생각하지 않고 나중에 다시 보았을 때 이해할 수 있는 코드를 만들려고 합니다.

AI 시대가 되면서 이 생각은 더욱 중요해졌다

AI 시대의 프로그램 개발

최근에는 AI와 함께 프로그램을 만드는 일이 많아졌습니다.

저 역시 ChatGPT와 함께 프로그램을 만들면서 예전과는 전혀 다른 개발 경험을 하고 있습니다.

예전에는 개발자가 직접 코드를 작성해야 했습니다.

하지만 지금은 AI에게

“이 기능을 만들어줘.”

라고 설명하면 상당한 수준의 코드를 만들어 줍니다.

그런데 여기서 재미있는 변화가 하나 생겼습니다.

코드를 작성하는 능력보다 무엇을 만들어야 하는지 설명하는 능력이 더 중요해지고 있다는 것입니다.

AI가 아무리 코딩을 잘한다고 하더라도 개발자가 요구사항을 제대로 설명하지 못하면 원하는 프로그램을 만들기 어렵습니다.

결국 AI 시대가 되었다고 해서 개발자의 역할이 없어지는 것이 아니라,

개발자가 더 본질적인 문제에 집중해야 하는 시대가 된 것이라고 생각합니다.

AI가 코드를 만들어 주어도 결정은 사람이 한다

요즘 AI와 함께 개발하면서 제가 자주 하는 일이 있습니다.

AI가 만들어 준 코드를 그대로 사용하는 것이 아니라 하나씩 확인하는 것입니다.

“왜 이렇게 만들었지?”

“이 방법이 정말 좋은 방법일까?”

“다른 방법은 없을까?”

“나중에 문제가 생기지는 않을까?”

그리고 필요하면 다시 AI에게 질문합니다.

이 과정을 반복하다 보면 AI가 단순한 코드 작성 도구가 아니라 하나의 개발 파트너처럼 느껴질 때가 있습니다.

하지만 최종적인 판단은 여전히 개발자의 몫입니다.

AI가 만들어 준 코드라고 해서 무조건 좋은 코드인 것은 아니기 때문입니다.

결국 프로그램 개발도 사람의 문제다

30년 동안 개발을 하면서 처음에는 프로그램을 기술의 관점에서 많이 바라보았습니다.

하지만 시간이 지나면서 점점 사람의 관점에서 바라보게 되었습니다.

프로그램을 사용하는 사람은 누구인가?

무엇이 불편한가?

어떤 기능이 필요한가?

어떻게 하면 더 쉽게 사용할 수 있을까?

그리고 프로그램을 사용한 뒤 사용자의 일이 정말 편해졌는가?

결국 좋은 프로그램이란 코드가 복잡하고 기술이 많이 들어간 프로그램이 아니라

사람의 문제를 해결해 주는 프로그램

이라고 생각합니다.

그래서 지금 제가 가장 중요하게 생각하는 것

30년 동안 프로그램을 만들어 온 지금,

제가 프로그램 개발에서 가장 중요하게 생각하는 것은 “기술” 그 자체가 아닙니다.

무엇을 만들 것인지 생각하고,

누가 사용할 것인지 생각하고,

사용자가 어떻게 사용할 것인지 생각하고,

그리고 앞으로 어떻게 발전시킬 것인지 생각하는 것입니다.

그리고 AI 시대에는 여기에 하나가 더 추가되었습니다.

AI에게 무엇을 시킬 것인지 정확하게 판단하는 능력입니다.

AI가 코드를 만들어 주는 시대가 되었다고 해서 프로그램 개발이 쉬워진 것만은 아닙니다.

오히려 무엇을 만들 것인지 생각하는 사람의 역할은 더 중요해졌습니다.

마무리

30년 전에는 제가 직접 코드를 한 줄 한 줄 작성했습니다.

지금은 AI와 대화하면서 프로그램을 만들고 있습니다.

개발 환경도,

프로그래밍 언어도,

컴퓨터도,

인터넷도,

그리고 개발 방법도 정말 많이 변했습니다.

하지만 한 가지는 크게 변하지 않았습니다.

좋은 프로그램을 만들기 위해서는 결국 사람을 생각해야 한다는 것.

아마 앞으로 AI가 더 발전하더라도 이 생각만큼은 변하지 않을 것 같습니다.

그리고 앞으로도 저는 새로운 기술을 배우는 개발자이면서,

동시에 사람이 사용하기 좋은 프로그램을 만드는 개발자이고 싶습니다.

30년 개발자가 생각하는 좋은 프로그램.

어쩌면 그 답은 아주 단순한 곳에 있는지도 모르겠습니다.

“프로그램을 사용하는 사람의 입장에서 생각하는 것.”

저는 그것이 프로그램 개발에서 가장 중요한 것이라고 생각합니다.

그런데 이런 생각을 가지고 있던 제가 최근에는 조금 특별한 프로그램을 하나 만들게 되었습니다.

바로 AI Quant입니다.

30년 동안 대부분의 프로그램을 혼자 개발해 왔던 제가 처음으로 AI와 함께 본격적으로 만들어 본 프로그램입니다.

그렇다면 AI Quant는 어떻게 만들어졌을까요?

다음 이야기에서는 제가 AI와 함께 AI Quant를 만들어 가면서 실제로 어떤 과정을 거쳤는지 이야기해 보겠습니다.

30년 동안 프로그램을 만들어 온 개발자가
AI를 만나면서 다시 생각하게 된
"좋은 프로그램"에 대한 이야기.

다음 글에서는 처음으로 AI와 함께 만든 프로그램,
AI Quant가 어떻게 만들어졌는지 그 이야기를 시작해 보겠습니다.