4. 문제의 해결은 항상 코드일까?
동기
서비스를 운영, 개발해오며 다양한 문제를 마주치곤 합니다. 많은 상황들이 자금 문제, 일명 돈으로 찍어 누르면 해결되는 상황이기도 하지만 개인 서비스를 운영하는 우리 같은 소상공인들은 EC2 스펙 향상에도 손이 덜덜 떨리곤 합니다.
그렇다면 결국 코드를 개선해서 주어진 상황을 타개하려고 합니다. 개발자로서 당연히 가져야 할 태도이며, 그 과정을 통해 얻는 인사이트도 분명 존재한다고 생각합니다. 하지만 어느 순간 문득 이런 생각이 들었습니다.
코딩이 모든 기술적 문제의 해결책인가?
비즈니스가 영위되기 위해서는 다양한 사람들이 필요합니다. 그 중에서 기술적인 부분의 문제 or 도전 과제들을 해결해 나가는 사람들이 개발자라고 생각합니다. 즉, 개발자는 비즈니스라는 큰 틀에 소속된 채로 제한적인 자원 내에서 현명하게 문제를 해결할 필요도 있다고 봅니다. 회사는 사업을 위해 존재하는 곳이지, 개발자 개인의 기술적 자아 실현을 위해 존재하는 곳이 아니라는 것이지요.
자그마한 서비스 이지만, 어쩌면 작은 서비스라 더 제한된 자원 내에서 해결해야만 했던 몇 가지 일들을 소개하면서 어떤 방식으로 문제를 풀어 나갔는지 서술해 보겠습니다.
1. 관리자 페이지

문제 상황
맵샷에는 공지사항 관련 DB가 존재합니다. 유저는 해당 공지사항을 읽을 수 있고, 공지사항 생성, 수정, 삭제를 담당하는 별도의 관리자 기능이 필요했습니다. 관리자 페이지를 만들기 위해서는 별도의 프론트 서버가 필요했고, 서버에는 권한 관련 기능들이 추가되어야 했습니다. 관리자의 정보를 저장할 별도의 테이블도 추가 생성해야 했습니다.
해결

로컬에서 DB 접속 후 내용을 직접 입력하는 방식으로 생각을 바꿨습니다.
조금만 더 생각해보니 저 DB에는 공지사항 내용 밖에 없었습니다. 과연 공지사항 등록이라는 이 한 가지 기능 때문에 관리자 관련 추가 작업을 하는 것이 작업 대비 효율이 맞는 작업인지 의심이 들기 시작했습니다. 마침 인텔리제이 에서 해당 DB에 연결하면 테이블 편집이 아주 손쉽게 가능했고, 훨씬 빠르게 공지사항 관련 작업을 마무리 할 수 있었습니다.
2. 문의 보내기

문제 상황
맵샷에는 유저가 관리자에게 문의를 보내는 기능이 존재합니다. 유저는 문의 카테고리를 선택하고, 답신 받을 메일과 관련 내용을 작성하면 관리자에게 해당 내용이 전달됩니다.
이 기능을 코드로 구현 시 다양한 방법이 존재합니다. 메일 서버를 별도로 구축해서 관련 내용을 전송하거나, 아니면 별도의 관리자 페이지를 구상해서 처리 하는 방법도 있습니다. 혹은 유저를 회원가입 시켜서 별도의 게시판 형태로 만든 후, 댓글로 해당 내용을 처리하는 방식도 존재하겠네요. 어떤 방식을 선택하던 구현해야 할 코드의 내용이 보통은 아닐 것 같습니다.
근데, 꼭 필요한 코드일까요?
해결
판을 벌이기 전에 생각해 볼 사항이 있습니다. 지금은 문의가 한 달에 몇 번 오는지 빈도 파악이 된 상황이지만, 이 사실을 모르던 상태였으니 관련 내용은 제외한 채로 기술해 보겠습니다.
내 서비스를 유저들은 왜, 어떤 상황에 사용하는가?

맵샷은 업무 자동화 사이트입니다. 조금 더 세밀히 말하면, 회사에서 본격적인 업무 전 사전 밑작업을 도와주는 서비스 입니다. 이 말은 어떻게 말하면, 수 많은 업무 중에 잠깐 스쳐가는 사이트 중 하나란 뜻이기도 합니다. 구글 애널리틱스의 세션 유지시간 (4~50초 가량)을 보면 이 말이 증명됩니다. 그렇다면 어느 정도 생각이 정리가 됩니다. 이 기능이 정상적으로 작동하려면 최대한 부담 없이 이용 가능해야 합니다.
그러면 일단 회원 가입을 시킨다는 전제는 제외됩니다. 남은 옵션은 작성한 내용을 관리자의 메일로 전송시키는 방식이네요. 그런데, 이런 소규모 서비스에서, 문의가 한 달에 몇 번 올지도 모르는 상황에 메일 서버 코드를 작성하는 것이 최선일까요?
찾아보니 이미 이메일 관련 서비스들이 많이 있었습니다. 게다가 일정 사용량까지는 무료로 제공됩니다. Email.js 라는 서비스를 이용하면 200개 까지 메일 전송이 무료로 사용 가능합니다. 문의 메일 빈도 파악이 얼추 완료된 지금 생각하면, 차고 넘치는 수치였습니다. 자바스크립트 코드 단 몇 줄 만을 추가해서 문의 기능을 완료할 수 있었습니다.
결론
상황에 따라 코딩을 안 하고도 좋은 해결책들을 생각해 볼 수 있었습니다. 가장 좋은 코드는 존재하지 않는 코드라는 말도 있듯이, 문제에 접근할 때 다양한 생각을 해 보는 것도 좋을 것 같습니다.
Last updated