brunch

You can make anything
by writing

C.S.Lewis

by Ain Nov 14. 2022

개발 능력을 보유하고, 사업을 시작하면 보이는 것들

개발을 할 줄 알아도, 개발자님들 너무나 필요해요..

[요약] 

- 작은 개발 능력이라도 개발을 하면서, 사업성 테스트를 한다면 보다 빠르고, 적은 예산 및 리소스로 테스트를 할 수 있어서, 초반 리스크를 줄일 수 있다.

- 그러나 개발자님들은 꼭 필요하다. 이걸로 1주일을 날렸다.(전문가님들의 존재는 꼭 필요하다)

- 컴퓨터는 유두리가 없다. 그렇기에 개발의 딜레이에 있어서 서로 간의 양보도 필요하다.

- 영어 공부를 더 해야겠다.




[나에 대한 사전 배경]

- 나는 기본적으로 웹 퍼블리싱은 할 줄 안다. 기존에도 랜딩페이지 등을 자주 개발하며, 정적 페이지를 개발을 할 줄은 알았다.



[개발이 필요했던 이유]

- 이번에 사이드 프로젝트 진행을 위해 LMF* 테스트를 진행할 예정이었다. 보다 지표로써 의미가 있기 위해서  키워드 위주의 광고 테스트가 아닌 랜딩페이지에 기능을 변경해가면서, 테스트를 해보고자 하였다.

LMF : Language/Market Fit의 약자로, 잠재 고객의 니즈를 가장 정확히 묘사하는 언어를 찾는 것


1. (test_1) 계산을 하는 기능이 필요했다.

- 그렇기에, 계산식을 뽑아내기 쉬운 Python에 대해서도 더 공부할 겸 계산 기능을 Python으로 만들었다.


2. (test_2) 카카오맵을 가져오는 기능이 필요했다.

- 1번 버전과 다른 기능을 테스트하기 위해 Javascript로 카카오맵 API를 가져오는 기능을 만들었다.(OpenAPI에 대해서 연동을 해본 경험은 없었기에 겸사겸사 공부가 되었다)


3. (test_3) 크롤링을 통하여, Data를 모으는 기능이 필요했다.

- python에 selenium과 webdriver을 이용하면 크롤링 기능을 구현할 수 있다. 그렇기에 추후 기획에 있어서도 정말 큰 도움이 될 것 같아서, 개발을 진행한다.

- 실제로도 지금 기획을 하는데에 큰 도움이 된다.




[개발자의 입장이 되어보니 알게 된 부분]

- 나는 강의를 진행할 때에나 컨설팅을 진행할 때, 모두 "더 나은 기획자/PO"가 되기 위해서는 "플로우차트"와 "API reading", "Data 수집/가공"은 할 줄 알아야 한다고 이야기한다.


플로우차트를 그린 draw.io 화면 일부


1. (test_1) 계산 기능

- 알고리즘을 개발할 것이라면 플로우차트를 먼저 그리라고 배웠다. 그래서 플로우차트를 열심히 그렸다. 그린 플로우차트 10개를 기반으로, 계산 기능을 구현했다. 확실히 플로우차트까지 그려서 전달을 받으면 개발을 진행하는 데에도 이해와 진행에 쉽겠다는 생각을 한번 더 하게 되었다.

- 물론 개발하다가 플로우차트도 몇 번 수정한다.


출처 : kakao map API


2. (test_2) 카카오맵 기능

- Kakaomap API를 먼저 분석하며, 만들 수 있는 기능들을 정리하였고, 이를 기반으로 인 웹에서 진행할지, 링크로 넘길지를 고민하여, 기존 기획 내용을 수정하였다.

- Kakaomap API는 request와 response에 대한 정의서가 있는 것이 아니기에, 더 읽기 어려울 수 있으나, 구조를 알고 있어야 기획을 하는데에 가능/불가능을 판단할 수 있다. 내가 처음에 원했던 기능은 카카오맵만으로는 불가능했다.


크롤링 도중 발생한 오류 터미널


3. (test_3) 크롤링 기능

- 개발자의 입장 : 템플릿이 있다면 쉽게 개발할 수 있지만, 오류 사항을 수시로 체크해야 하는 요구사항 등이 있기에, 도와주고는 싶지만 바쁜 와중에 해당 업무까지 진행하기는 다소 어려울 수도 있을 것 같다.

- 기획자의 입장 : 매번 데이터를 수공업으로 수집했는데, 이에 대해서 자동으로 돌려두고, 다른 업무를 볼 수 있어서 효율성에서 너무나 좋았다.

크롤링을 통해 수집할 Data들에 대한 정의와 필요성에 대해서 고민을 하고, 이에 대해서 수집하여 분석을 하다 보면 새로운 서비스 기능/타겟층에 대한 인사이트가 생길 수밖에 없다. 그 이후 인사이트를 기반으로 테스트를 하다 보면 내가 원하는 목표 가설에 대해 도달할 수 있다.

그렇기에 데이터를 수집/가공할 수 있는 능력이 필요하며, 크롤링을 통해 수집된 data를 기반으로 SQL 까지 할 줄 안다면 더욱 좋을 것이다.




[개발 진행]


test_1에 대해서 할 이야기가 많기에, test_2에 대해서 먼저 이야기한다.


2. (test_2) 카카오맵 기능

- 너무나 감사하게도, 너무나 다행이게도 쉽게 개발이 되었다. 이 test 건을 하면서, 개발 능력 조금이라도 있음에 감사하게 되었다. 카카오 감사합니다.


3. (test_3) 크롤링 기능

- 개발을 하는 데에는 큰 어려움은 없었다. 내 기능이 ID/PW를 기반으로 진입하거나 하지는 않기 때문이었다. 그럼에도 오류가 다소 있긴 했지만, 해결 가능한 오류였다. 개발한 이 기능은 추후에도 자주, 그리고 잘 활용할 것 같다. 


출처 : 나무위키


1. (test_1) 계산 기능

- 개발을 진행하면서 html, js로 python과 연결하려고 보니, python에 Flask라는 프레임워크*가 있다는 것을 알게 되었다.

프레임워크 : 웹 페이지를 개발하는 과정에서 겪는 어려움을 줄이는 것이 주목적으로 통상 데이터베이스 연동, 템플릿 형태의 표준, 세션 관리, 코드 재사용 등의 기능을 포함

- "역시 개발은 점점 배워가는 맛이지"라는 생각에 이때까지만 해도 즐겁게 개발을 했다. 열심히 pip로 다운로드도 하고, 차근차근 진행하며, 결국 Localhost에서는 완벽하게 실행이 되었다.

- "나는 개발을 잘하는 것이 아닐까?"라는 생각으로, 도메인 서버에 업로드를 하였는데, 아래와 같은 오류가 뜬다.


- 그리고 고난의 1주일이 시작되었다.



[나는 막장 코더였다]

- 이전에도 그렇고 이번에도 그렇고 배포 후 상용화를 위한 Web, APP 서비스를 개발하는 것이 아닌 단기성으로 테스트를 위해 개발을 진행하고 있었기에, 이와 같은 오류에 대해서 처음 겪는 일이었다.


- 우선 해당 오류가 클라이언트 문제인지, 서버 문제인지조차 분간도 못하는 나였다.


파이썬 단톡방에 질의를 드린 사항


- 주변에 개발자들에게도 협업을 요청하고, 너무나 답답하여 단톡방에 들어가서 질의를 드렸으나, 나의 코드를 전문 다 볼 수 있는 상황은 아니었기에, 명확한 해결책을 전달해줄 수 있는 상황이 아니었다. 무엇보다 그러한 무리한 요구를 요청하고 싶지 않았다.


- 결국 기초 지식부터 쌓기 시작했다. 서버에 대해서도 잘 모르고, 동적 페이지를 실행하는 방법이나, Web에 대한 기초 지식도 없는 것이 내가 해결하지 못하는 이유라고 생각했다.


notion에 정리한 이번 오류에 대한 해결방안 강구


- port, host부터 시작해서 차근차근 공부하면서, 현재 내 앞에 있는 문제가 무엇인지를 파악했고, "해당 이슈는 nginx와 같은 Back-end의 문제이다"부터 Front-end의 변수를 삭제하는 것부터 시작하여, nginx, 아파치 등을 지나, 결국 Wordpress에서 가상 환경을 만든 것이 문제가 됨에 도달했다.


- 웹 서버에 진입하여, 아무리 노력해도 접근 권한이 없기에, root 권한을 이용할 수가 없다. 


- 결론적으로 Javascript로 코드를 바꾸었다. 이번 python은 그냥 경험과 인사이트를 얻었다로 만족했다.





아쉬움에서 배운 것들


- 동적 페이지에 대한 개발을 조금은 할 줄 알게 되었다. 덕분에 Javascript와 Python-Flask에 대해서 개발자 초급 정도는 할 줄 알게 되었다.

- Back-end에 대해서 조금 더 알게 되었다. 기존에는 그냥 흘리고 넘어갔던 port, host에 대한 개념과 nginx, 아파치, ubuntu에 대한 개념을 공부하면서, 해결해나갔기에 좋은 인사이트가 되었다.


[기획자, 사업가로서 필요한 개발 능력]

- 개발을 하다 보니, 개발자분들에게 어떻게 더 잘 전달을 해야 하는지에 대한 인사이트가 더욱 생기게 되었다.

- 사업가로서, 빠른 A/B 테스트는 정말 중요하다. 이러한 것을 하루면 테스트를 해볼 수 있으니, 개발 능력은 큰 부스터를 달아줄 수 있다. 물론 MVP 테스트는 개발 없이도 충분히 가능하다.


[개발 환경에 대해서 더 잘 파악해야 한다]

- 결론적으로 내 코드가 안되었던 이유는 Wordpress에서 도메인을 연결하였던 것이 가장 큰 패착이었다. Wordpress 자체에서 Ubuntu 환경을 도메인에 미리 넣어두었기에, 내가 해당 환경에서의 root 권한을 받을 수가 없었던 것이 컸다.

- 그렇기에 "su -" 권한을 가져올 수가 없었고, "sudo"를 전혀 쓸 수 없었다.

- 결과적으로 python을 설치를 할 수 없었기에, Flask를 실행한다는 것이 말이 안 되었다.


[기초 지식에 대한 필요성을 인지]

- 개발을 시작할 때, 프로젝트를 작게라도 하면서, 경험해보라고 이야기를 많이 한다. 그리고 여러 개발 경험을 마치고 난다면 개발에 대한 기초 지식이 필요한 순간이 오는 것 같다. 그리고 나는 그러한 순간이었다. 기초 지식이 생기고 나서 해결 방향이 보이기 시작했다.

- 파이썬 Version별로 실행하는 위치가 다 다르고, 위치에 따라서 되는 것이 있고 안 되는 것들이 있었다. 그렇기에 초기 세팅부터 파이썬 환경에서는 가상 환경을 실행해서 차근차근 진행을 할 필요가 있었다.


[사람들에게는 유두리가 있지만, 컴퓨터에게는 없다]

- 사람들 사이에서는 업무를 진행하는 데에 있어서, 서로 간에 유두리가 있기에 해결할 수 있는 부분이 있지만, 컴퓨터는 그렇지 않다. 그렇기에 더 시간이 오래 걸릴 수 있음을 우리는 인지하고, 개발자분들에게 양해를 구해드려야 한다.

- 애자일 방법론에서도 괜히 스프린트를 10~20%를 더 부여하겠는가.


[영어 공부를 더 해야겠다]

- 대부분의 개발에 대한 해결책들이 해외에 더 많을 수밖에 없다. 해외에는 더 많은 개발자들이 있고, 이슈를 던지고 해결해나가고 있기에.

- 그리고 그 채널이 stackoverflow에 많이 나와있고, 여기서 해결책을 많이 얻었으나, 영어라는 진입장벽이 있어서, 스트레스를 많이 받았다.



{해결이 가능한 내용이 있다면 댓글로 공유 주시면 감사드리겠습니다:)}

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari