
개발자가 되고 싶다는 생각은 분명한데, 막상 뭐부터 해야 할지 몰라서 유튜브 강의만 열어두고 멍하니 있었던 적이 있습니다.
저도 그랬습니다. 비전공자로 개발자 취업을 준비하면서 가장 먼저 느낀 건, 정보가 없어서 막막한 게 아니라 정보가 너무 많아서 더 혼란스럽다는 점이었습니다.
이 글은 그 혼란 속에서 직접 헤쳐 나오면서 정리한 실제 흐름입니다.
방향설정 없이 공부부터 시작하면 생기는 일
처음에 저는 개발자가 되고 싶다 는 생각 하나로 일단 Python 강의를 결제했습니다.
왜 Python이냐고요? 유명하다고 했으니까요. 그런데 몇 주 지나지 않아서 JavaScript도 배워야 하지 않을까?, Java를 먼저 해야 백엔드가 되는 건 아닐까? 하는 생각이 들기 시작했고, 결국 세 가지를 동시에 건드리다가 셋 다 어중간하게 됐습니다.
직접 겪어보니, 언어를 먼저 고르는 것보다 직무(職務)를 먼저 정하는 게 훨씬 중요했습니다.
직무란 개발자 안에서도 내가 어떤 역할을 맡을 것인지를 의미합니다. 크게는 프런트엔드(Front-end)와 백엔드(Back-end)로 나뉘는데, 프런트엔드는 사용자가 직접 보는 화면을 만드는 역할이고, 백엔드는 서버와 데이터베이스를 다루며 서비스 내부 구조를 설계하는 역할입니다.
저는 채용 공고를 직접 검색해보고 난 후 방향이 잡혔습니다.
원티드와 사람인에서 신입 개발자 공고를 10개 이상 열어보니, 프런트엔드 공고에는 HTML, CSS, JavaScript, React가 반복적으로 등장했고, 백엔드 공고에는 Java, Spring, SQL, REST API라는 단어가 자주 보였습니다. 여기서 REST API란 서버와 클라이언트가 데이터를 주고받는 방식의 규칙을 말하는데, 백엔드 개발자라면 반드시 이해해야 하는 개념입니다.
채용 공고를 보고 난 후 아, 이걸 기준으로 준비해야겠다는 감이 처음으로 왔습니다.
기초학습, 속도보다 이해도가 먼저입니다
방향이 정해지면 그다음은 기초 개념과 언어 학습입니다. 그런데 이 단계에서도 흔히 하는 실수가 있습니다.
문법을 빠르게 외우는 데만 집중하는 겁니다. 제 경험상 이건 좀 다릅니다. 문법보다 웹이 어떻게 동작하는지 구조를 먼저 이해했을 때 이후 공부가 훨씬 수월했습니다.
예를 들어 웹 개발을 배울 때 클라이언트 서버 구조(Client-Server Architecture)를 먼저 이해하는 것이 중요합니다.
클라이언트 서버 구조란 사용자의 브라우저(클라이언트)가 서버에 요청을 보내고, 서버가 데이터를 응답으로 돌려주는 방식으로 웹이 동작하는 기본 원리를 말합니다. 이걸 모르고 HTML만 치다 보면 내가 지금 뭘 만드는지 감이 없어집니다.
기초 단계에서 챙겨야 할 핵심 개념을 정리하면 다음과 같습니다.
- 변수, 조건문, 반복문, 함수 등 프로그래밍의 기본 구조
- 웹이 동작하는 방식과 클라이언트-서버 구조의 개념
- 자료구조(Data Structure) : 데이터를 효율적으로 저장하고 다루는 방법으로, 배열·리스트·딕셔너리 같은 형태가 대표적입니다
- 데이터베이스(DB) 기초와 SQL 쿼리 작성법 (백엔드 지망이라면 필수)
솔직히 이 단계는 눈에 보이는 결과물이 없어서 지루하게 느껴지기 쉽습니다. 저도 몇 번 포기하고 싶었습니다. 그런데 기본기를 탄탄하게 다져둔 사람과 그렇지 않은 사람의 차이는 프로젝트 단계에서 명확하게 드러납니다. 오류가 생겼을 때 원인을 추적하는 능력 자체가 달라지거든요.
프로젝트 경험이 비전공자의 경쟁력을 만든다
이론 공부를 어느 정도 했다 싶으면 프로젝트를 시작해야 합니다. 그런데 많은 분들 중 아직 실력이 부족한데라며 미루는 경우가 많습니다. 제가 직접 써봤는데, 실력이 충분해진 다음에 프로젝트를 시작하려고 기다리다 보면 그 타이밍은 영원히 오지 않습니다.
처음에는 작은 것부터 만들면 됩니다.
프런트엔드라면 자기소개 페이지나 할 일 관리 앱처럼 단순한 것도 충분합니다. 백엔드라면 회원가입, 로그인, 게시판 기능이 포함된 기본 CRUD 애플리케이션부터 시작하는 게 좋습니다. 여기서 CRUD란 Create(생성), Read(조회), Update(수정), Delete(삭제)의 앞 글자를 딴 것으로, 데이터를 다루는 가장 기본적인 네 가지 기능을 말합니다.
직접 겪어보니, 프로젝트에서 실력이 늘어나는 구간은 기능을 구현할 때가 아니라 오류를 해결할 때였습니다.
에러 메시지를 구글에 검색하고, 스택 오버플로(Stack Overflow)에서 비슷한 사례를 찾고, 직접 코드를 수정해 보는 그 과정에서 이해도가 확실히 달라졌습니다.
국내 개발자 커뮤니티인 생활코딩이나 OKKY에서도 비슷한 사례를 많이 볼 수 있어서 참고가 됐습니다.
또 한 가지 중요한 건, 프로젝트를 진행하면서 깃허브(GitHub)에 코드를 올려두는 습관입니다.
깃허브란 코드를 버전별로 관리하고 외부에 공개할 수 있는 플랫폼으로, 취업 시 포트폴리오의 핵심 창구가 됩니다. 면접관들이 깃허브 링크를 먼저 확인하는 경우가 많기 때문에, 프로젝트마다 커밋(commit) 기록을 쌓아두는 것이 실력 증명에도 도움이 됩니다.
포트폴리오는 꾸미는 게 아니라 정리하는 겁니다
포트폴리오를 마지막에 한꺼번에 만들려고 했다가 낭패를 본 적이 있습니다.
프로젝트를 진행하면서 어떤 문제를 겪었는지, 왜 이 기술을 선택했는지 기억이 흐릿해지거든요. 그때부터 프로젝트를 할 때마다 노션에 간단히라도 기록해 두는 방식을 썼더니 나중에 정리가 훨씬 쉬웠습니다.
포트폴리오에서 중요한 건 디자인이 아닙니다.
내가 어떤 직무를 준비하는지, 어떤 기술 스택(Tech Stack)을 사용했는지, 그 과정에서 어떤 문제를 어떻게 해결했는지가 명확하게 보여야 합니다.
기술 스택이란 프로젝트를 구현하는 데 사용된 언어, 프레임워크, 라이브러리, 데이터베이스 등 기술의 조합을 의미합니다.
면접관 입장에서는 이 사람이 실제로 무언가를 만들어봤는가 를 가장 먼저 확인하기 때문에, 결과물보다 과정 서술이 더 설득력 있는 경우가 많습니다.
채용 공고 분석도 이 단계에서 꼭 병행해야 합니다.
고용노동부가 발표한 자료에 따르면, IT 직종 구인 수요는 꾸준히 증가 추세에 있으며 특히 소프트웨어 개발 직종의 채용 규모가 지속적으로 확대되고 있습니다.
시장 수요가 있다는 건 좋은 소식이지만, 그렇다고 아무 기술이나 배워서 통하는 건 아닙니다.
실제 공고에서 반복적으로 요구하는 기술을 파악하고, 그 기준에 맞게 포트폴리오를 다듬는 작업이 필요합니다.
일반적으로 로드맵대로만 따라가면 된다는 식으로 말하는 경우도 많은데, 저는 그 말을 그대로 믿지 않습니다.
이해 속도도 다르고, 흥미를 느끼는 분야도 다르기 때문에, 같은 방법이 모두에게 맞을 수는 없습니다.
한국직업능력연구원의 조사에서도 비전공자 직업 전환 성공 요인 중 하나로 자기 속도에 맞는 학습 전략 수립이 언급된 바 있습니다. 결국 로드맵은 참고하되, 자신의 상황에 맞게 조정하는 것이 더 현실적인 접근입니다.
지금 돌아보면, 비전공자에게 필요한 건 완벽한 준비가 아니었습니다.
방향을 정하고, 기초를 다지고, 작은 것부터 만들어보고, 그것을 정리하는 흐름을 꾸준히 이어가는 것. 그게 전부였습니다.
막막하게 느껴질 때일수록 지금 당장 할 수 있는 한 가지만 생각하면 됩니다. 채용 공고 하나를 열어보는 것도 충분한 시작입니다.