brunch

You can make anything
by writing

C.S.Lewis

by 이규리 May 19. 2023

PM이 개발을 어디까지 알아야 하죠?

비전공자를 위한 이해할 수 있는 IT 지식(1)

프로덕트 매니저로 근무한 지 1년이 넘어가고 있다. 고객의 입장에서 생각할 수 있게 되었고, 어떻게 페인 포인트를 도출하여 문제 정의를 내리는지, 시기적으로 적합한 프로그램을 제공하는 방법은 무엇이 있는지 익힐 수 있게 되었다. 그러나 디자이너, 개발자와의 소통은 부재한 상황으로 향후 커리어 스텝을 위해 추가적으로 공부할 필요성을 느끼게 되었다. 


코드스테이츠에서도 추천 도서인 <비전공자를 위한 이해할 수 있는 IT 지식>을 읽어보며 잊었던 지식을 다시 보충하고, 디자이너, 개발자와 소통할 수 있는 방법을 익히고자 한다. 



[도대체 PM은 개발자와 소통하기 위해 어디까지 알아야 하나요?]

이 말이 제일 어렵다. 실제로 많이 들어오는 질문이기도 하다. 개발자에게 질문하니 '일하기 편한 PM'과 '일하기 힘든 PM'이 있다고 한다. 

개발 지식이 있는 기획자가 일하기 좋고,
기획 전달을 급하게 주고 일정 압박을 하는 기획자는 일하기 힘들었어. 
개발 지식이 있는 기획자는 이미 요구사항 구현이 개발하기에는 힘들겠다는 걸 알고 기획서에 반영해 주고, 필요한 서버 데이터도 서버 개발 담당자한테 확인해서 기획서 안에 어떤 DB 값을 사용하는지 다 적어주더라고, 그래서 일하기 엄청 편했어. 
그런데 일하기 힘든 기획자는 왜 이게 구현이 불가능한 건지 이해를 잘 못하고 아무리 개발자가 어렵다고 말해도 기간을 늘려서라도 구현해 줬으면 좋겠다 말하면서 뜻을 굽히지 않고 협업보다는 자기 성과를 우선으로 생각하는 기획자는 좀 힘들 거 같아. 


어느 정도의 개발 지식을 보유한 PM이 좋다고 하는데 '어느 정도'가 말이 쉽지 가늠하기가 어렵다. 그렇다고 개발 공부를 한다고 하니 'PM이 그 정도까지 알 필요는 없어.'라고 한다. 어렵다 어려워... 그래서 공부한다. 


완벽한 기획은 없다. 점진적 발전만이 존재한다. 
서비스의 흐름을 잡는 것이 <기획>이다. 
그래서 기획자는 항상 고객을 포함한 모든 서비스 구성원들과 대화를 해야 합니다. (23p)

개발 관련 지식이 없으면 개발자와 대화할 수 없습니다. 대화하지 못하면 판단할 수 없고, 서비스를 발전시킬 수 없습니다. 그래서 '커뮤니케이션을 위한 IT 지식'을 공부해야 합니다. (24p)

출처 : 비전공자를 위한 이해할 수 있는 IT 지식


기획자에게는 거창한 지식을 요하지는 않는다. 그러나 명확한 커뮤니케이션을 위한 넓고 얕은 지식은 보유하고 있어야 한다. 데이터의 구조와 흐름을 이해하고 있고, 개발자의 입장이 되어 프로젝트를 기획하고 조율해 낼 수 있어야 하는 것이다. 어찌 보면 개발자를 배려할 수 있는 사람은 기획자 만이 할 수 있는 업무일 것이다. 


[개발자는 컴파일러에게 문서로 일을 시키는 사람입니다.(34p)]


관계형 데이터 베이스 이해하기 너무 어렵다. 구조가 머릿속에서 그려지지 않는다. 좀 더 확인해 보고 익혀낼 필요가 있다. 실제 프로그램 상에서 어떻게 활용되는지 볼 수 있어도 빠르게 이해가 가능할 것 같다. 



[프로그래밍 언어 구분]

언어 구분을 저수준과 고수준으로 나눈 것과 더불어 컴퓨터가 일하기 쉬운 버전, 인간이 일하기 쉬운 버전이라고 설명한 부분이 재밌었다.             

1) 저수준 : '컴퓨터 친화적 언어', 컴퓨터가 어떻게 일해야 하는지 꼼꼼하게 기록 (장점 : 저사양 컴퓨터에서 원활히 작동 / 단점 : 구체적이지 않을수록 잦은 오류 발생)                      

2) 고수준 : '인간 친화적 언어', 적은 설명에도 컴퓨터가 알아서 행동함 (장점 : 사람들이 학습하기 쉽고 오류가 적음 / 단점 : 작동이 느림, 고사양 컴퓨터에서 잘 작동함)          


[컴퓨터 구성요소]

예전에 아버지가 말해주신 적이 있다. 'C 드라이브에는 절대 지우면 안 되는 것만 저장하고, D 드라이브에는 지워도 되는 것만 저장해 놔. 나중에 컴퓨터가 퍼질 수 있는데 그때 C 드라이브에 저장한 건 안 날아가고 살아있을 거야.' 그때는 이 개념을 전혀 이해하지 못했었다. 똑같이 저장하는데 왜 어떤 건 날아가고, 어떤 건 안 날아가는 걸까? 그걸 이번 구성요소를 공부해 보면서 익히게 되었다. 


사실 아직 헷갈리긴 하지만 유추해 보자면 D 드라이브에 저장되는 것들은 memory와 같은 역할을 한 게 아닐까 생각했다. 


memory는 보조전달장치에 저장하지 않으면 CPU로 실행을 시켜 작업을 했더래도 파일이 남아있지 않는다. 또는 해당 파일은 보조전달당치 속 데이터 뭉치의 일부이기 때문에 '일부' 데이터만 담고 있다. 그러므로 이 데이터는 삭제가 되더래도 데이터 뭉치가 삭제되지 않기 때문에 C 드라이브에 있는 건 보존할 수 있게 되는 것이다. 


이해가 되지 않으면 다음으로 넘어갈 수 없어서, 나만의 이해 방식으로 정리해 봤다. 혹시 이 글을 보시는 분이 있으시다면, 해당 의견에 대한 첨언이나 피드백 부탁드립니다. 






[운영체제]            

운영체제 (Operating System) : 하드웨어 관리 = 보조기억장치를 관리함 (웹 : 윈도, 맥 OS / 앱 : iOS, 안드로이드)          


운영체제 회사들은 개발자의 삶에도 큰 영향을 미치고 있습니다. (54p)


운영체제에 대해 공부를 해보던 중 위 마지막 문장 때문에 들은 생각이 있다. 

첫 번째로는 개인이 운영체제를 만드는 것이 가능한 영역인가

두 번째로는 규모와 경쟁력을 보유하고 있지 않으면 개인이 운영체제를 만들어도 사용하는 사람이 없게 되는 것일까 이걸 브라우저 개념으로 생각해 보았다. 

우리가 지금 쓰고 있는 브라우저 종류는 다양하다. 크롬, 폭스, 웨일 등등이 있는데 기업들은 이런 브라우저를 왜 만들어 내는 것일까?


엔진 속도가 빠르고 성능이 뛰어나다는 것을 앞세워 자회사의 브라우저를 사용할 것을 홍보하고 있다. 이런 브라우저에는 많은 기록이 담아진다. 크롬을 예로 들어보면 내가 어떤 사이트에 접속했는지, 내 주변 근방으로 어떤 음식점이 있는지 등의 정보를 다양하게 제공한다. 또한 크롬을 사용하면 호환이 편리한 구글의 다른 프로그램도 사용할 수 있도록 구성해 놓았다. 브라우저는 단순 사용성만을 가지는 게 아닌 다양한 고객 군을 만들어낼 수 있다. 자회사에 접속한 기록을 확인하고 회사의 노출 정도가 어느 정도 되는지 궁금한 기업가, 그리고 구글 자체적으로도 어떤 서비스를 가장 많이 이용하고 있고, 검색하는지도 한눈에 확인할 수 있다. 편의성이 높다고 하지만 우리가 사용하는 행위 자체가 회사에는 자산이 되는 것이다. 


그렇다면 운영체제로 넘어가면 브라우저보다 강압성이 더 높다. 무조건 해당 운영체제를 활용해야지만 앱과 웹을 만들 수 있다. 이는 자회사의 제품을 무조건 쓸 수밖에 없게 만든다. 대적할 상대가 없다면 더더욱이 그렇다. 우리는 계속해서 애플과 안드로이드를 사용할 것이기 때문에. 만약 개인이 이를 뚫으려고 한다면 대기업을 만드는 것에서 그치는 것이 아니라 대중들이 없으면 살 수 없는 제품이 나와야 한다. 생각만 해도 어렵네..?




[운영체제 위에 소프트웨어]

그럼 이걸 뚫을 수 있는 방법은? 뛰는 놈 위에 나는 놈 전략이지 않을까?


뛰는 놈 위에 나는 놈 리스트

1. JVM(java Virtual Machine) : JAVA로 모든 운영체제에서 사용할 수 있는 프로그램을 만들 수 있음. -> 니즈가 적어짐            

1) 운영체제(os)에 독립적 언어          

2) 안드로이드 사용 가능                     

3) 사용성이 넓음          


2. 파이썬 : 윈도나 맥 OS 등의 운영체제 위에서 프로그램을 설치 및 실행 가능

1) 인간 친화적인 고수준 언어 

2) 쉽게 배우고 코딩할 수 있음          


위 두 가지의 단점 '느림'


그리고 우리가 알아야 할 것은 모바일과 PC는 다르다. (개발 공부해 보려고 알아보니 앱은 어렵기 때문에 웹부터 공부하라고 한다.)


개발자들은 프로그래밍 언어를 통해 운영체제 위에 돌아가는 프로그램을 만드는 사람들입니다. (59p)



[용어정리]

https://youtu.be/S85Bl2ysigE            

1) 데이터베이스 : 전자적(electronically)으로 저장되고 사용되는 관련 있는(related) 데이터들의 조직화된 집합(organized collection)                      

2) 관계형 데이터 : 관계형 데이터베이스(RDB)는 테이블, 행, 열의 정보를 구조화하는 방식입니다. RDB에는 테이블을 조인하여 정보 간 관계 또는 링크를 설정할 수 있는 기능이 있어, 여러 데이터 포인트 간의 관계를 쉽게 이해하고 정보를 얻을 수 있습니다. (출처 : 구글)          

3) IDE (Integrated Development Environment) : 통합 개발 환경, 개발을 하기 위한 모든 것들을 제공해 주는 환경                                           

4) Android Studio : 안드로이드 애플리케이션 개발 용도                                             

5) XCode : 애플 운영 체제 위의 애플리케이션 개발 용어                                            

6) Eclipse : C / C++ 개발, 자바 개발, 웹 개발 용도                                            

7) PyCharm : 파이썬 개발용도                                     





매거진의 이전글 커뮤니티가 주목받는 이유는?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari