iOS 앱 개발 부트캠프/퀘스트

개발자의 네 가지 소양

iosstudyletsgo 2024. 9. 11. 15:05

[선정 아티클]

https://yozm.wishket.com/magazine/detail/1921/

 

개발자로 거듭나기⋯ 네 가지 기본 소양을 기억하세요 | 요즘IT

개발자라면 어떤 기초 지식을 습득해야 할까? 좋은 개발자가 되려면 어떤 사고방식을 갖춰야 할까? 개발자를 꿈꾸는 당신을 위한 조언이 여기 있다. 한글과컴퓨터, 블리자드, 넥슨, 삼성전자, 그

yozm.wishket.com

 

개인 요약

[주제]

  • 개발자가 갖춰야 할 네 가지 기본 소양

[요약]

  • 개발자의 기본 소양

    개발자의 기본은 영어, 그 다음은 수학, 물리 그 중에서도 수학을 잘 알아야 한다. 기본이 된 후에 프로그래밍 언어를 공부하고 자료구조, 알고리즘, 운영체제, 하드웨어 등을 공부하면 된다.

    '웹 개발자니까 하드웨어는 몰라도 돼' 라든가 '나는 운영체제는 몰라도 돼' 라는 자세는 안된다. 프로그램을 돌리려면 하드웨어를 알아야 하는 법이기 때문이다. 또한 하드웨어 이론 뿐만 아니라 직접 만져보고 소프트웨어를 동작시켜보고 실생활에 사용해보며 하드웨어의 기능과 특징, 성능을 익혀야 한다. 뿐만 아니라 운영체제 버전별 기능이나 특징도 알아야 한다. 다방면으로 알아야 제대로 지식을 쌓을 수 있다. 

    표에 언급된 정렬, 스택, 힙, 스레드, 네이티브 코드, 모델-뷰-컨트롤러 아키텍처(MVC)  등의 내용은 알아야 소프트웨어 기본 지식을 갖췄다고 할 수 있다.
    게임 개발자가 꿈이라면 기본 지식만으로 텍스트 기반의 게임을 만들어 보는 것이 좋다. 유니티나 언리얼 같은 게임 엔진을 사용해 화려한 3D  그래픽 게임을 만들어보고 싶겠지만 2D 텍스트 기반 게임을 만들어보면서 기본 지식을 점검하고 활용할 수 있어 유용하다.



  • 일잘러가 되기 위한 크리티컬 싱킹

    크리티컬 싱킹이란 주어진 일의 앞뒤를 생각하는 습관을 말한다. 우리말로는 비판적 사고 정도로 번역할 수 있을 것이다. '왜 이 일을 해야 할까?', '어떤 방식으로 일하는게 최선일까?' 같은 문제의 상하좌우까지 고민하는 사고방식을 습관으로 들이면 모든 일을 더 깊이 들여다 볼 수 있다.소프트웨어를 개발하면서 왜, 어떻게, 무엇을, 누가, 언제까지 출시해야 하는지를 종합적으로 고려해야 한다. '어떻게'에 매몰되면 좁은 영역에서 해결책을 얻을 수는 있지만 종합적인 관점에서 최고 혹은 최선의 해결책을 얻진 못한다. 크리티컬 싱킹은 종합적인 관점에서 해법을 구하는 습관인 것이다.주인의식의 다른 말일수도 있지만 일반적으로 회사에 대해 주인의식을 가져야한다는 말과는 조금 다르다. 회사가 아닌 나에 대한 주인의식을 가져야 한다는 말이다. '그냥 시킨 것만 했어요'라고 대답하지 않으려면 나에 대한 주인의식, 즉 크리티컬 싱킹이 필요한 것이다.



  • 도구를 사랑하지 마라

    게임 하나에 다양한 분야별 개발자가 필요하지만 사실 개발자는 그래픽도 볼 줄 알아야하고, 데이터베이스, 도구도 많이 알아야 한다. 소스 관리 도구라든지 비주얼 스튜디오, 유니티, 언리얼 같은 엔진도 알아야 한다. 프로젝트를 성공적으로 개발하는데 필요한 모든걸 알아야 하는 셈이다. 당연히 사전에 모든 걸 알 순 없으니 꾸준히 공부해야 한다.

    그렇기에 특정 언어나 도구와 사랑에 빠져선 안된다. 사랑에 빠지면 최적의 언어와 도구를 선택하지 못하기 때문이다. 기술은 빠르게 변하므로 프로젝트라는 과업 달성과 1~2년 후를 고려해 선택해야 한다. 앵귤러JS 개발자가 5년 전에는 환영받았지만 지금은 리액트나 뷰가 대세이고, 15년 전에는 비주얼 스튜디오와 이클립스가 양대 산맥이었지만 지금은 인텔리제이 같은 도구가 선택지를 넓혀준다. 현업에서 바쁘더라도 6개월 주기로 새로운 기술과 도구를 확인하고 공부하는 기간을 가져야 한다.

    IT에서 5년이란 시간을 생각해보면, 5년 전에는 리액트, Vue.js, 파이토치, 쿠버네티스, GCP, 플러터, 코틀린, Go언어 같은 기술들이 대중적으로 사용되는 기술이 아니거나 아예 없던 기술들이었지만 지금은 각 분야에서 내로라 하는 대표주자가 되었다. 5년 전과 지금이 다르듯 5년 후도 다를 것이기 때문에 지속적인 공부가 필요하다.



  • π자형 인재 되기
    한 가지를 깊게 파서 잘하는 I자형 인재가 각광받던 시절이 있었다. 하지만 변화가 빠른 지금은 적어도 하나는 깊게, 나머지는 골고루 잘 아는 T자형 인재가 각광받고 있고, 최근에는 T자를 넘어 π 자형 인재라는 말도 나왔다. 하나가 아니라 두가지에서 전문성이 있어야 한다는 이야기이다. 
    '프론트엔드 개발을 잘하지만 머신러닝도 깊게 익혀두자' 라든가, '임베디드 개발자지만 백엔드도 익혀두자' 같은 식이다. 시작은 I자형 인재에서 T자형을 거쳐 π 자형 인재로 차근차근 나아가면 된다.  

 

[인사이트]

한 우물만 파지말고 전반적인 지식을 습득해야 한다. 전자공학을 전공할 때 귀에 딱지가 앉도록 자주 듣는 이야기였다. iOS 개발 캠프에 참여해놓고 자꾸 전자공학 전공 시절을 이야기 하게 되는데, 그쪽이나 이쪽이나 갖춰야할 인재상이 비슷한가보다.

그때도 학과의 전반적인 지식을 넘어 타 전공 학생들, 심지어 문과 계열 학생들과도 협업을 시켜대곤 했는데, iOS 앱 개발자로 진로를 잡은 지금도 특정 앱 개발 언어만 공부할 게 아니고, 새로운 툴과 언어들을 다양하게 공부하고 현업에 가서도 지속적으로 새로운 지식과 기술의 동향을 파악하는게 중요한가보다. 

늘 스스로 생각하고 새로운 것에 적극적으로 반응하는 것. 그것이 앱 개발자로 나아가기로 한 내가 갖춰야할 태도인 것이다.