개발자 준비 전에 먼저 결정할 것
💡10분 안에 이런 내용을 알려드려요
- 29살에 처음 프로그래밍을 배운 개발자의 개발 공부 노하우
- 프론트엔드, 백엔드, 데브옵스, 데이터 사이언티스트! 나의 성향에 맞는 개발 분야 고르는 법
- 부트캠프부터 국비 지원 학원까지 비전공자를 위한 구체적 학습 가이드
※ [오늘부터 개발자] 시리즈의 콘텐츠입니다. ※
저자 김병욱
29살에 처음 개발에 뛰어들어 4개월 만에 취업에 성공한 스타트업 개발자
*본 콘텐츠는 2021년 11월에 발간된 〈오늘부터 개발자〉의 본문을 퍼블리의 시선으로 발췌해 구성했습니다.
만약 당신이 운동선수라는 직업을 가지고 4년 뒤 올림픽에 나간다면, 지금 당장 무엇을 할 것인가?
"기초체력 훈련을 할 것이다"와 같은 대답이 나올 수 있겠지만, 내가 출전할 운동 종목을 선택하는 게 먼저다. 종목에 따라 해야 하는 운동이 완전히 달라지기 때문이다.
아이러니하게도 개발자를 준비하거나 개발자가 되겠다고 마음을 먹으면 일단 개발 기초에 대한 책을 사거나 강의부터 듣기 시작한다. 무엇을 해야 할지 정확히 알아보지도 않고, "요즘 대세가 파이썬(Python)이다"라는 말만 듣고 일단 책을 사고 인터넷 강의를 신청한다.
그런데 사실 이런 부분 때문에 개발자로 입문하는 데 많은 시간을 허비하게 된다. 개발에는 다양한 분야가 있고, 분야에 따라 해야 하는 공부가 전혀 다르다. 그렇기에 가장 먼저 해야 할 일은 본인이 하고자 하는 개발 분야를 정하는 것이다.
물론 처음 입문 과정에서 내가 프론트엔드가 잘 맞는지, 백엔드가 잘 맞는지는 알 수 없다. 결국 이 부분도 본인이 직접 경험해 보지 않으면 판단하기 어려울 것이고, 현업에 입문해 일을 하는 과정에서도 이게 나에게 잘 맞는지 확인하기 쉽지 않다.
그래서 주위의 말만 듣고 무작정 시작하기보다 본인이 눈에 직접 보이는 앞의 화면을 만드는 것을 좋아하는지, 아니면 다양한 예외 케이스들을 생각하면서 뒤쪽의 로직을 만드는 걸 좋아하는지 진지하게 생각해 보는 시간을 가져야 한다.
즉, 스스로 적성검사의 시간을 갖는 것이다. 그동안 내가 살아왔던 과정을 대입해 보면 결정내리는 데 도움이 될 수 있다.
만약 결과물을 바로 확인하는 것을 좋아하거나 꾸미는 것을 좋아하고 디자인에 관심이 있다면 프론트엔드가 잘 맞을 확률이 높다.
프론트엔드 쪽을 결정했다면 이제 웹을 할지, 앱을 할지 결정해야 한다. 그에 따라 공부해야 하는 것들이 달라지기 때문에 이 부분도 미리 결정해야 한다.
요즘은 앱 안에서도 웹으로 구성되어 있는 부분이 많고, 웹의 사용성 또한 점점 높아지고 있기는 하지만 처음 공부할 때는 하나를 정해서 시작하는 것이 좋다. 앱을 하겠다고 결정했으면 안드로이드와 IOS 중 하나를 선택해야 한다. 개발을 공부하기에 앞서 본인의 성향에 맞는 분야를 선택하는 것이 우선이다.
참고로 특정 분야의 개발자가 된 경우에도 일정 기간이 지나면 백엔드에서 프론트엔드로 또는 프론트엔드에서 백엔드로 이동하는 경우가 많으니 처음 선택을 할 때 너무 큰 걱정을 하지 않아도 된다.
나 역시도 회사에서는 백엔드를 개발하고 있지만, 사이드 프로젝트를 할 때는 프론트엔드 쪽도 하고 있다. 그러니 지금은 개발자로 '시작'하는 분야를 정한다고 생각하고 본인의 마음이 가는 쪽으로 정하고 시작해도 큰 문제가 없을 것이다.
개발 분야 정하기: 프론트엔드? 백엔드? 데브옵스?
서비스의 개발은 크게 프론트엔드와 백엔드로 나눌 수 있는데, 우리가 자주 접하는 회원가입 페이지를 보면서 개발자들이 어떤 일을 하는지 알아보자.
이렇게 회원가입 페이지를 만들기 위해서는 무엇부터 해야 할까?
일단 눈에 보이는 내용들을 하나씩 만들어야 한다. 입력 창도 만들어야 할 것이고, 깔끔하게 보이도록 디자인도 입혀줘야 한다. 이런 과정들을 통해 웹브라우저에서 화면에 보일 수 있도록 만들어야 한다. (이런 페이지는 HTML과 CSS를 활용해 만든다.)
여기서 끝이 아니다. 이제 이 페이지를 통해 수집한 회원의 정보를 저장하는 과정을 거쳐야 한다.
회원이 입력한 정보를 어딘가에 보내서 ID가 기존 회원과 겹치지 않는지, 비밀번호 중복값은 제대로 입력되었는지, 이름에 띄어쓰기가 들어있지는 않은지 등 회원이 입력한 정보들이 모두 문제가 없을 경우 이를 데이터 베이스에 저장한다.
이러한 모든 과정이 에러 없이 마무리되어야 진정한 회원가입 페이지 하나가 만들어지는 것이다. 이제 프론트엔드와 백엔드에 대해 눈치를 챘을 것이다.
- 프론트엔드는 우리 눈에 보이는 화면을 하나하나 만들어 내는 것이고,
- 백엔드는 사용자의 눈에는 보이지 않지만, ID 중복확인 등 뒷단(서버)에서 일어나는 일들을 처리하는 것이다.
1) 프론트엔드 개발자
우리가 사용하는 웹과 앱 페이지의 화면을 만드는 개발자를 프론트엔드 개발자라고한다.
이때 우리가 만드는 서비스는 웹일 수도, 앱일 수도 있다. 그래서 프론트엔드 개발자를 웹 프론트엔드 개발자, 앱 프론트엔드 개발자로 나누기도 한다.
- 웹 프론트엔드 개발자는 크롬, 사파리, 익스플로러 등의 웹브라우저에서 사이트(홈페이지)에 접속했을 때 보여지는 모든 화면을 만들고,
- 앱 프론트엔드 개발자는 스마트기기에서 이용하는 앱 서비스의 화면을 만든다.