
처음 개발자 취업을 준비하기 시작했을 때, 저는 무조건 많이 배워야 한다고 생각했습니다. Java도 해야 하고, Python도 해야 하고, React도 빠질 수 없고. 그렇게 이름만 아는 기술들을 줄줄이 늘어놓다가 어느 순간 아무것도 제대로 설명하지 못하는 자신을 발견했습니다. 기술 스택 선택, 사실 방향만 제대로 잡으면 생각보다 단순해집니다.
개발자 취업 준비 전에 직무를 먼저 정해야 연결 가능한 기술 스택이 보인다
취업 준비를 시작하면 가장 먼저 부딪히는 문제가 뭘 배워야 하지?입니다. 저도 처음엔 그냥 유명한 기술부터 시작하려 했는데, 그게 얼마나 비효율적인지는 직접 겪어보고 나서야 알았습니다.
개발 직무는 크게 프런트엔드(Frontend), 백엔드(Backend), 앱 개발, 데이터, 클라우드·인프라로 나뉩니다. 여기서 프런트엔드란 사용자가 실제로 눈으로 보고 클릭하는 화면을 개발하는 영역입니다. 백엔드는 그 화면 뒤에서 데이터를 처리하고, 서버를 운영하고, 비즈니스 로직을 구현하는 영역이고요. 직무가 다르면 필요한 기술이 완전히 달라집니다.
프런트엔드를 목표로 한다면 HTML, CSS, JavaScript를 시작점으로 잡고, 이후 React나 TypeScript로 확장하는 흐름이 자연스럽습니다. 백엔드를 준비한다면 Java 또는 Python을 기반으로 하되, REST API(Representational State Transfer API)를 이해하는 것이 핵심입니다. REST API란 서버와 클라이언트가 데이터를 주고받는 방식을 정의한 설계 원칙으로, 백엔드 개발에서는 거의 모든 프로젝트에 등장하는 개념입니다.
제가 직접 느낀 건데, 직무를 먼저 좁히지 않으면 공부 방향이 계속 흔들립니다. React 해야 하나, Spring 해야 하나 처럼 서로 다른 직무의 기술을 두고 고민하는 건 처음부터 목표 직무를 정하지 않았기 때문인 경우가 많았습니다.
채용 공고가 가장 정직한 기준이다
기술 스택을 고를 때 제가 가장 유용하게 활용한 방법은 채용 공고를 직접 뜯어보는 것이었습니다. 블로그 추천 글이나 커뮤니티 의견은 작성자의 경험과 환경에 따라 다르지만, 채용 공고는 기업이 지금 당장 원하는 것을 그대로 보여줍니다.
실제로 국내 IT 기업 프런트엔드 공고를 10개 이상 모아보니, JavaScript, React, TypeScript, Git이 거의 빠짐없이 등장했습니다. 백엔드 공고에서는 Java, Spring Framework, SQL, Linux, Git이 반복됐습니다. 여기서 Spring Framework란 Java 기반의 웹 애플리케이션 개발을 위한 오픈소스 프레임워크로, 국내 백엔드 채용 시장에서 압도적으로 자주 언급되는 기술입니다.
공고를 많이 볼수록 보이는 게 있습니다. 반복되는 기술은 당장 익혀야 할 우선순위이고, 특정 공고에서만 보이는 기술은 나중에 추가로 배워도 되는 항목으로 분류할 수 있습니다. 실제로 고용노동부 워크넷 통계에 따르면 IT 직종 채용 공고에서 요구되는 기술 키워드는 직무별로 뚜렷하게 집중되는 경향이 있습니다(출처: 고용노동부 워크넷).
채용 공고를 정리할 때 제가 했던 방법을 공유하면 다음과 같습니다.
- 목표 직무 공고를 최소 10개 이상 수집한다
- 각 공고에서 요구 기술을 별도로 메모한다
- 3개 이상의 공고에서 반복 등장하는 기술을 1순위로 정한다
- 1~2개 공고에서만 보이는 기술은 나중에 배울 목록으로 분류한다
이렇게 하니 뭘 먼저 배워야 하나 라는 막막함이 훨씬 줄었습니다.
기술은 실제 할 용 하여 써봐야 한다
제가 처음에 저질렀던 실수를 솔직히 말하면, 이력서에 Java, Python, JavaScript, React, Spring, MySQL을 전부 적었습니다. 그런데 막상 면접에서 Spring에서 의존성 주입은 어떻게 구현하셨나요? 하고 물어보니 말문이 막혔습니다. 기술 이름은 알지만 실제로 써봤다고 말하기 어려운 상태였던 거죠.
의존성 주입(Dependency Injection, DI)이란 객체가 스스로 의존 관계를 생성하지 않고 외부에서 주입받는 설계 패턴으로, Spring Framework의 핵심 동작 원리 중 하나입니다. 이 개념을 직접 프로젝트에 적용해보지 않으면 면접장에서 설명하기가 쉽지 않습니다.
기업이 신입 개발자에게 기대하는 건 기술 목록의 길이가 아닙니다. 해당 기술을 어떤 문제 상황에서 선택했고, 어떤 기능을 구현했으며, 그 과정에서 어떤 오류를 만나 어떻게 해결했는지입니다. 기술 스택은 포트폴리오를 구성하는 재료이고, 재료는 실제로 써봐야 의미가 생깁니다.
프런트엔드 준비라면 JavaScript와 React로 검색 기능, 게시판 화면, API 연동 프로젝트를 직접 만들어보는 것이 훨씬 낫습니다. 백엔드라면 Spring이나 Django로 회원가입, 로그인, 게시글 CRUD 기능을 구현해 보는 것이 기술 이름만 나열하는 것보다 면접에서 훨씬 강합니다. 여기서 CRUD란 Create(생성), Read(조회), Update(수정), Delete(삭제)의 약자로, 데이터를 다루는 가장 기본적인 네 가지 동작을 의미합니다.
유행보다 기본기가 오래간다
IT 기술은 빠르게 바뀝니다. 제가 처음 공부를 시작했을 때와 지금을 비교해도 채용 공고에서 자주 보이는 기술 키워드가 조금씩 달라졌습니다. 하지만 그 안에서 흔들리지 않는 것들이 있습니다. HTTP 통신 구조, 데이터베이스 설계, 인증 흐름, 버전 관리 같은 기본 개념들입니다.
예를 들어 React를 쓰더라도 JavaScript의 비동기 처리나 클로저 개념이 부족하면 오류가 생겼을 때 어디서 문제가 발생했는지 찾기 어렵습니다. Spring을 사용하더라도 HTTP 요청과 응답 구조를 모르면 API를 설계하거나 디버깅하는 데 한계가 생깁니다.
한국소프트웨어산업협회(KOSA)의 자료에 따르면, IT 기업 채용 담당자들이 신입 개발자를 평가할 때 특정 프레임워크 숙련도보다 기본 CS(Computer Science) 이해도와 문제 해결 능력을 중요하게 본다는 응답이 높게 나타났습니다(출처: 한국소프트웨어산업협회). 여기서 CS란 자료구조, 알고리즘, 운영체제, 네트워크처럼 소프트웨어 개발의 이론적 기반이 되는 컴퓨터 과학 전반을 가리킵니다.
제 경험상 이건 좀 다릅니다. 주변에서 최신 기술을 많이 알아야 유리하다고 말하는 경우가 많은데, 실제로 면접 현장에서는 이 기술을 왜 선택했나요?, 이 구조에서 성능 문제가 생기면 어떻게 접근하겠어요? 같은 질문이 더 자주 나왔습니다. 도구보다 그 도구를 제대로 쓰는 사고방식을 보고 싶어 한다는 느낌이 분명히 있었습니다.
결국 기술 스택 선택은 이력서를 화려하게 채우는 작업이 아닙니다. 목표 직무에 맞는 기술을 추리고, 채용 공고로 우선순위를 정하고, 실제 프로젝트로 연결하는 흐름이 갖춰졌을 때 비로소 의미 있는 준비가 됩니다. 지금 기술 스택 때문에 고민 중이라면 먼저 희망 직무 공고 10개를 모아서 반복되는 기술 키워드부터 정리해 보시길 권합니다. 그 목록이 지금 당장 공부해야 할 로드맵이 됩니다.