선언적으로 살면 부자가 될 수 있을까?
안녕하세요! 오늘은 선언적 프로그래밍과의 만남이 어떻게 제 삶을 변화시켰는지에 대해 이야기하고자 합니다.
안녕하세요! 오늘은 선언적 프로그래밍과의 만남이 어떻게 제 삶을 변화시켰는지에 대해 이야기하고자 합니다.
“선언적”이라는 개념은 단순한 프로그래밍 방법론을 넘어서 제가 문제를 해결하는 방식과 삶을 바라보는 태도에까지 영향을 미쳤는데요, 선언적 접근이 기술적인 문제를 넘어서 일상과 직업에 어떻게 변화를 가져다주었는지 함께 만나보시죠.
선언적 프로그래밍의 이해
처음 선언적 프로그래밍을 접했던 때는 iOS 챕터 리드였던 진서님과의 만남에서였습니다. 그 때의 경험은 DRFA(Declarative, Reactive, Functional Application) 아키텍처를 통해 이 새로운 패러다임의 효과를 직접 보고 배울 수 있는 좋은 기회였습니다. 요약하자면 선언적, 반응적, 함수적 형태를 왜, 어떻게 사용해야 하는지에 대한 내용이었는데요, 이러한 경험은 선언적 사고를 개발과 일상에 적용하는 데 큰 도움이 되었습니다.
선언적에 대해 알기 위해선 “선언형 프로그래밍”에 대해 알면 좋은데요, 위키피디아에 긴 설명이 있으니 제 방식으로 요약하자면 “어떻게 보다는 무엇을에 집중하자” 입니다. 대표적인 예시로는 SwiftUI가 있겠네요.
선언적이라는 개념을 만나고나서는 그 적용 대상을 점점 확장해나갔습니다. (그 중 하나가 슬링에서 만들었던 태블릿 챕터 문화였습니다.)
하지만 빛이 있으면 어둠이 있듯이 항상 모든 것을 선언적으로만 생각할 수 없습니다. 적어도 SwiftUI에는 어떻게를 알지 못하면 만들 수 없는 것들이 있었거든요. 그렇기 때문에 무엇을에 대해 고민할 수 있는 것은 어떻게를 먼저 해결해준 똑똑한 사람들 덕분이라는 생각을 하며 항상 감사한 마음을 가지고 있습니다.
선언적 사고의 적용
선언적 프로그래밍의 원칙을 저의 일상과 취미인 커피 브루잉에도 적용해 보았습니다. 모든 원두에 대해 몇 가지 브루잉 레시피를 적용함으로써, 복잡한 환경 변수를 관리하는 대신 원두의 진정한 맛을 탐색하는 데 집중할 수 있었습니다. 그렇게 “어떻게 내려먹는지”에 대해서 고민을 덜하다보니 “무엇을 내려먹을지”에 대해서 고민하게 되었고, 이러한 고민을 통해 브루스터가 만들어질 수 있었습니다.
브루스터(BREWSTER)
브루스터는 커피를 내려먹다의 BREW와 힙스터를 합친 단어로, 집에서 필터 커피를 내려먹는 힙스터들을 위한 원두 검색 포털입니다. 커피를 내려먹다보면 나의 취향이 생기는데 이 취향의 원두를 찾기란 하늘의 별따기와 같다고 생각합니다. 커피는 공산품이 아니기 때문에 그 양이 한정되어 있고, 그렇기 때문에 내가 좋아하는 원두를 언제든 신선하게 먹을 수 있을거란 보장이 없습니다. 그렇게 되면 여러 사이트를 전전하며 각 카페가 판매하는 원두 목록을 비교하며 내가 좋아하는 컵노트와 최대한 비슷한 원두를 구매하게 되는데요. 이것도 항상 성공하는 방법은 아닙니다.
이 문제를 해결하기 위해 브루스터는 만들어졌습니다. 브루스터에는 로스터리 카페들의 사이트에 있는 원두 정보를 모아서 제공하기 때문에 한 번에 검색할 수 있으며, 더 나아가선 내가 좋아요한 원두나 작성한 리뷰에 맞춰서 내가 좋아할만한 원두를 추천해주는 것까지 제공하고자 합니다. 최종적으론 여러 카페의 원두를 한 번에 받아볼 수 있는 기능까지 완성하고 싶습니다.
찾아온 기회
최근에 회사를 쉬면서 실험해보고 싶은 것이 있었습니다. 바로 GPT와 플러터인데요, 지금까지 만난 모바일 개발자들은 대부분 크로스플랫폼 앱에 대해 부정적이었고 저도 그랬습니다. 제공할 수 있는 경험의 수준이 다르다고 생각했었습니다. 하지만 SwiftUI의 수준과 업데이트 속도를 보다보니 차라리 이렇게 선언적으로 개발하는거라면 크로스플랫폼으로도 충분히 가능하지 않을까? 라는 생각이 있었습니다.
그리고 GPT는 전 회사에서 프로젝트를 주도하는 경우가 많다보니 해야 하는 업무도 많았는데 그때 조금씩 도움받는 정도였는데 짝코딩 수준으로 옆에 띄워놓고 일했을 때 내가 무엇을에 대해 생각하고 어떻게는 GPT가 짜줄 수 있지 않을까 하는 생각도 있었습니다.
브루스터라는 만들고 싶은 서비스가 있고 마침 실험해보고 싶은 기술들도 있는데 이건 정말 못 참습니다. 바로 진행해봤습니다.
약 2주간 플러터 프로젝트로 GPT의 도움을 받아 브루스터의 원두 목록(검색, 좋아요 등), 리뷰(피드, 작성 등), 마이페이지(내 정보, 계정 업그레이드, 익명 로그인 등)을 1차 목표로 하여 개발을 진행해보았고 오늘 그 결과가 완성되었습니다. 아래 그 결과물을 공유합니다.
느낀 점
GPT의 도움을 받으면서 플러터 개발하는 과정은 정말 감탄의 연속이었습니다. 코드를 읽을 수 있다는 가정 하에 어떠한 로직을 자세히 설명하면 그것에 맞게 정확하게 만들어주는 것이 정말 매력적이었습니다. 가장 많이 생각했던 것이 “미래에는 정말 선언적으로 일 할 수 있겠다.” 였습니다.
GPT가 발전함에 따라 개발자들의 영역이 사라지고 있다는 의견도 보았는데요, 저는 오히려 앞으로 패러다임이 바뀔거라고 생각이 들었습니다. 개발자들은 이제 무엇을 할 지를 더욱 잘 알아야 하게 될 것이며, 이건 기존에도 개발자들이 비즈니스를 알아야 하는 것과도 일맥상통한다고 느꼈습니다.
GPT가 생성해주는 코드는 수준이 낮지도 않았고, 리팩토링도 주어진 방향에 맞게 잘 해주었습니다. 이러한 경험을 바탕으로 앞으로 개발자의 경력의 기준도 바뀌게 될거라는 생각도 들었습니다.
마무리
오늘은 약 2주간 GPT+플러터로 개인 프로젝트를 진행하면서 느낀 점과 왜 이런식으로 접근하게 되었는지에 대해서 얘기해보았습니다. 세상이 정말 빨리 바뀌고 있는 것 같네요. Xcode도 이제 그만 버벅이고 코파일럿도 넣을만큼 빠릿빠릿해졌으면 좋겠네요.
글을 마무리하며 “선언적으로 살면 부자가 될 수 있을까?”라는 질문에 접근해볼까 합니다.
선언적으로 산다고 해서 직접적으로 부자가 될 순 없지만 삶의 질과 만족도에는 크게 기여하는 것 같습니다. 선언적 프로그래밍과 같은 사고 방식은 효율성을 높여주며, 문제 해결에 집중하게 만들어주기 때문에 경제적인 성공으로 이어지는 가능성이 올라갑니다. 그러니 선언적으로 사는 것은 저에게는 아직은 가능성이 남았다고 볼 수 있겠습니다.
이 글을 읽은 모두가 부자가 되길 바라며 이만 마무리하겠습니다.
감사합니다!

