저는 개발자는 아니지만 직접 만들었습니다. 그래서 더 진지한 조언을 듣고 싶었습니다
저는 개발자가 아닙니다.
핀테크와 크립토 업계에서 약 8년 동안 일했고, 개발자들과 함께 일한 기간은 10년이 넘습니다.
하지만 올해는 AI의 도움을 받아 혼자 직접 앱과 웹을 만들고 있습니다.
코딩을 전문적으로 배운 적도 없고, 개발자로 일한 경력도 없습니다.
그래서 제가 만든 것이 완벽할 거라고 생각하지 않습니다.
당연히 실수할 수 있고, 실제로도 많이 실수했습니다.
다만 한 가지는 분명합니다.
저는 그냥 아이디어만 말한 사람이 아닙니다.
직접 만들었고,
직접 실행해 봤고,
직접 배포했고,
문제가 생기면 직접 붙잡고 해결하려고 했습니다.
며칠 전에도 제가 만든 서비스에서 이상한 문제를 발견했습니다.
웹에서는 정상적으로 보이는데 Android 앱에서는 일부 결과가 이상했습니다.
처음에는 아주 작은 문제였습니다.
USDT와 USDC 아이콘이 깨져 보였습니다.
BTC와 ETH는 정상인데 stablecoin만 이상했습니다.
처음에는 단순히 이미지 문제라고 생각했습니다.
그런데 다른 화면을 보다 더 이상한 것을 발견했습니다.
서로 다른 송금 업체들의 예상 수령액 상단값이 완전히 똑같았습니다.
업체는 다른데 숫자가 소수점 둘째 자리까지 같았습니다.
이건 이상하다고 생각했습니다.
그래서 웹을 확인했습니다.
웹에서는 같은 문제가 없었습니다.
그날 저는 새로운 기능을 만드는 것을 멈췄습니다.
웹을 한쪽에 띄우고,
Android 앱을 다른 쪽에 띄운 뒤,
같은 조건을 넣어가며 하나씩 비교했습니다.
그러면서 제가 생각했던 것보다 문제가 더 크다는 것을 알게 됐습니다.
여기서 제가 이전 글에서 제대로 설명하지 못한 부분이 있습니다.
저는 처음부터 웹과 앱을 동시에 만든 것이 아닙니다.
먼저 앱을 만들었습니다.
처음에는 모바일에서 빠르게 결과를 비교할 수 있는 제품을 만들고 싶었습니다.
사용자가 금액과 통화를 입력하면,
여러 송금 방법과 크립토 경로를 비교하고,
예상 결과를 쉽게 볼 수 있도록 만들었습니다.
그다음에 웹을 만들었습니다.
그런데 저는 웹을 앱과 완전히 똑같이 만들 생각이 아니었습니다.
모바일 앱은 작은 화면에서 빠르게 확인하는 것이 중요하다고 생각했습니다.
반면 웹에서는 조금 더 많은 정보를 보여주고 싶었습니다.
기존의 간단한 비교 방식에,
조금 더 자세한 정보와 분석을 섞고 싶었습니다.
그래서 앱과 웹의 화면과 사용 방식이 다른 것은 의도한 것이었습니다.
앱은 더 간단하게,
웹은 조금 더 자세하게.
저는 그 자체가 문제라고 생각하지 않았습니다.
문제는 계산이었습니다.
화면은 달라도 같은 조건을 입력하면 기본적인 계산 결과는 같아야 한다고 생각했습니다.
예를 들어 같은 금액의 브라질 헤알을 영국 파운드로 비교한다면,
앱에서는 짧게 보여주고,
웹에서는 더 자세히 설명할 수는 있어도,
계산 결과 자체가 서로 다르게 움직이면 안 됩니다.
그래서 나중에 앱과 웹이 같은 계산 기준을 사용하도록 공통 로직을 만들었습니다.
쉽게 말하면 이런 생각이었습니다.
웹과 앱의 화면은 달라도 된다.
하지만 돈을 계산하는 기준은 같아야 한다.
저는 이 방향이 맞다고 생각했습니다.
지금도 그렇게 생각합니다.
그런데 문제가 생긴 것은 그 공통 계산 방식을 이미 만들어진 앱과 웹에 적용하는 과정이었습니다.
웹은 정상적으로 동작했습니다.
그런데 앱에서는 일부 과거 방식이 남아 있었고,
어떤 부분은 새 계산 방식을 사용하고,
어떤 부분은 예전 처리 방식의 영향을 받고 있었습니다.
제가 분명히 제외했다고 생각한 업체가 다시 보이기도 했고,
서로 다른 업체의 예상 수령액이 같은 숫자에 걸리기도 했고,
사용자가 선택한 크립토 자산과 내부에서 참고하는 가격 기준이 정말 일치하는지 의심되는 부분도 발견했습니다.
이때 솔직히 많이 당황했습니다.
저는 같은 제품을 만들고 있다고 생각했습니다.
그리고 계산 기준도 같게 만들었다고 생각했습니다.
그런데 실제로 하나씩 비교해 보니 그렇지 않은 부분이 있었습니다.
그날 거의 하루 종일 웹과 앱을 대조했습니다.
새로운 기능은 거의 만들지 못했습니다.
하나를 확인하면 다른 문제가 보였고,
그 문제를 따라가면 과거에 정상이라고 생각했던 부분까지 다시 의심하게 됐습니다.
그래서 이전 글을 썼습니다.
저는 그 글을 자랑하려고 쓴 것이 아닙니다.
“AI로 앱 만들었는데 대단하죠?”
이런 말을 하고 싶었던 것도 아닙니다.
오히려 반대였습니다.
제가 실제로 만든 제품에서 문제가 생겼고,
그 문제가 생각보다 단순하지 않았고,
제가 놓친 것이 무엇인지 알고 싶었습니다.
그래서 경험 있는 분들에게 진지하게 묻고 싶었습니다.
“이런 경우에는 무엇부터 확인해야 하나요?”
“웹과 앱이 다시 다르게 움직이지 않게 하려면 어떻게 해야 하나요?”
“제가 놓치고 있는 것이 무엇인가요?”
저는 이런 이야기를 듣고 싶었습니다.
실제로 몇몇 분들은 진지하게 답변해 주셨습니다.
계산 부분을 더 꼼꼼하게 확인하는 방법을 이야기해 주신 분도 있었고,
웹과 앱이 계산을 따로 하지 않게 만드는 방향을 설명해 주신 분도 있었고,
아예 하나의 방식으로 웹과 앱을 함께 관리하는 방법을 제안해 주신 분도 있었습니다.
저는 이런 답변이 좋았습니다.
제가 그 말을 전부 이해하지 못해도 괜찮습니다.
왜 그런 방법을 말하는지 설명을 들으면 하나씩 배울 수 있기 때문입니다.
그런데 일부 반응은 솔직히 조금 실망스러웠습니다.
제가 왜 그렇게 만들었는지 묻지도 않고,
어떤 순서로 앱과 웹을 만들었는지 묻지도 않고,
문제를 발견한 뒤 무엇을 했는지 묻지도 않고,
비꼬거나 결론부터 내리는 반응이 있었습니다.
물론 제 글 설명이 부족했을 수 있습니다.
그 부분은 인정합니다.
실제로 저도 댓글에 답하면서
“앱을 먼저 만들고 웹을 나중에 만들어서 생각없이 만든 것 같다”
는 식으로 너무 단순하게 말했습니다.
지금 다시 보면 그 말도 정확하지 않았습니다.
당시에는 하루 종일 문제를 붙잡고 있었고,
저도 당황한 상태에서 짧게 답했습니다.
정확히 말하면 이렇습니다.
먼저 앱을 만들었습니다.
그다음 웹을 만들었습니다.
웹은 앱을 그대로 복사하려는 목적이 아니라,
조금 더 많은 정보를 보여주려는 목적이 있었습니다.
그래서 화면과 사용 방식은 일부러 다르게 만들었습니다.
하지만 계산 결과는 같아야 한다고 생각해서
나중에 공통 계산 방식을 만들었습니다.
그리고 이미 존재하던 앱과 웹에 그 방식을 적용하는 과정에서 제가 실수했습니다.
그게 실제 상황입니다.
저는 이 실수를 숨기지 않았습니다.
오히려 공개했습니다.
웹은 정상인데 앱이 이상하다고 썼고,
업체별 결과가 이상하다고 썼고,
크립토 가격 기준이 잘못 연결될 가능성이 무섭다고 썼고,
금융 서비스에서 틀린 숫자가 그럴듯하게 보이는 것이 가장 위험하다고 썼습니다.
그리고 하루 동안 새 기능 개발을 멈추고 문제를 확인했다고도 썼습니다.
저는 그것이 자랑이라고 생각하지 않았습니다.
제 실패와 문제를 공개하고,
어떻게 고쳐야 하는지 묻는 글이라고 생각했습니다.
아마 제가 더 실망한 이유는,
제가 지난 10년 넘게 만나온 뛰어난 개발자들의 모습과 달랐기 때문일 겁니다.
저는 개발자가 아니기 때문에 개발자들에게 많이 물어봤습니다.
회사에서 수석 개발자들과도 일해 봤고,
업계에서 실력을 인정받는 분들과도 일해 봤습니다.
제가 이해하지 못하면 물었습니다.
“왜 이렇게 한 건가요?”
“제가 보기에는 다른 방법도 있을 것 같은데 왜 이 방법을 선택했나요?”
“이 부분은 제가 잘 모르는데 설명해 주실 수 있나요?”
그런데 제가 만나온 정말 뛰어난 개발자들은 대부분 설명해 줬습니다.
본인의 의도가 무엇인지,
왜 그 방법을 선택했는지,
어떤 문제가 있어서 다른 방법을 쓰지 않았는지,
제가 모르는 부분은 천천히 설명해 줬습니다.
제가 잘못 이해하고 있으면 그것도 설명해 줬습니다.
제가 비개발자라고 비웃지 않았습니다.
오히려 제가 이해할 수 있도록 말해 줬습니다.
그래서 저는 오랫동안 이런 생각을 해왔습니다.
정말 많이 아는 사람일수록 쉽게 단정하지 않는구나.
자신이 모르는 상황이 있을 수 있다는 것을 알기 때문에 먼저 묻는구나.
상대방이 왜 그렇게 했는지 듣고 나서 의견을 주는구나.
그런 사람들과 오랫동안 일해 왔기 때문에,
이번 일부 반응은 솔직히 조금 낯설고 실망스러웠습니다.
다시 말하지만 모든 댓글이 그랬다는 뜻은 아닙니다.
진지하게 방법을 알려주신 분들이 있었고,
저는 그분들의 의견을 감사하게 보고 있습니다.
제가 몰랐던 방법도 알게 됐습니다.
그런 답변을 받기 위해 글을 쓴 것이기도 합니다.
다만 저는 아직도 잘 모르겠습니다.
문제를 숨기지 않고 공개하고,
실수했다고 인정하고,
하루 종일 직접 확인하고,
무엇을 놓쳤는지 경험 있는 사람들에게 묻는 글에,
왜 질문보다 비꼼이 먼저 나와야 하는지 모르겠습니다.
제가 개발자가 아니기 때문에 부족한 것은 당연합니다.
AI의 도움을 받아 개발했기 때문에 놓치는 것도 있을 겁니다.
그렇다고 해서 제가 아무 생각 없이 복사만 하고 있는 것은 아닙니다.
문제가 생기면 확인합니다.
실제 결과를 비교합니다.
이상한 숫자가 나오면 왜 그런지 찾습니다.
제가 잘못 만들었다면 고칩니다.
모르면 묻습니다.
저는 앞으로도 그렇게 할 생각입니다.
이번 문제도 결국 해결하려고 계속 보고 있습니다.
다만 이번 일을 겪으면서 한 가지는 조금 아쉬웠습니다.
저는 개발자 커뮤니티에 와서
제가 모르는 것을 배우고 싶었습니다.
그리고 제가 실제로 겪은 문제를 공유하면,
경험 있는 분들이 다른 시각을 보여줄 수 있다고 생각했습니다.
실제로 그렇게 해주신 분들도 있었습니다.
하지만 일부 반응을 보면서는
제가 기대했던 것과 조금 다르다는 생각도 들었습니다.
저는 개발자는 아닙니다.
하지만 직접 만들고 있습니다.
실수도 합니다.
그 실수를 숨기지 않고 이야기합니다.
그리고 모르면 묻습니다.
제가 지금까지 함께 일했던 정말 뛰어난 개발자들은
그런 질문을 받았을 때 비웃기보다 설명해 줬습니다.
그래서 이번에는 솔직히 조금 실망스러웠습니다.