시작하는 이야기
- 나는 유니티 개발자로 2년간 경력을 쌓았지만, 최근 들어 직무 전환에 대한 고민이 많았다.
- 게임업계에 진출할 기회도 있었지만, 사실 나는 게임 개발에는 큰 열정이 없었다.
- 유니티의 전망이 불확실하다고 느껴졌고, UI에 대한 관심이 더 컸기 때문에 플랫폼 독립적인 웹이나 크로스 플랫폼 앱 개발에 눈을 돌리게 되었다.
- 특히, React와 React-Native는 플랫폼에 구애받지 않고 웹과 앱을 모두 아우를 수 있는 기술이기에 매력적이었다.
고민의 시간
직무 변경을 고려하면서 나는 두 가지 선택지에서 고민했다
- Main: React 웹 개발 / Sub: React-Native 어플리케이션 개발
- Main: Android Native / Sub: React-Native/Flutter 크로스 플랫폼 개발
첫 번째 선택지는 내가 좋아하는 UI를 살리면서 웹과 앱을 모두 다룰 수 있는 길이었다. React와 React-Native를 주력으로 삼는 개발 방향은 최신 웹 트렌드와 크로스 플랫폼의 장점을 살릴 수 있어 매력적이었다.
두 번째 선택지는 Native Android 개발에 좀 더 집중한 선택지였다. 안드로이드는 여전히 강력한 모바일 플랫폼이고, Native 개발의 깊이 있는 이해는 앱 성능 최적화에서 강력한 장점을 발휘할 수 있었다.
하지만 나의 성향상 웹과 UI에 대한 관심이 더 컸기 때문에 결국 1번 선택지를 선택했다.
FrontEnd Developer Roadmap(+근데 이제 Backend를 곁들인...)
나는 "프론트엔드 개발"을 중심으로 나아가기로 결정했고, 이를 뒷받침하기 위한 구체적인 로드맵을 세웠다.
주로 프론트엔드 개발이지만, 백엔드도 함께 고려하는 풀스택 개발자가 되기 위한 목표다.
일단 채용 공고의 분석이 먼저라고 생각했다 -> 돈은 벌어먹고 살아야지.....
위 채용 공고들은 채용 공고 사이트에서 회사들이 frontend 개발자를 요구할때 요구하는 능력들이다
정리하면 다음과 같다
필수로 가져가야 할 능력 | 필수는 아니지만 가져가면 좋은 능력 |
React / React-Native 를 활용한 최소1년 이상의 준하는 개발 능력 |
App Store 및 Google Play Store에 앱 출시 및 유지보수 경험 |
Git을 통한 소스코드 관리 경험 | 새로운 기술스택을 배우고 적용하는 데 심리적 허들이 낮아야 함 |
Redux / Zustand 등을 활용한 상태 관리 라이브러리의 사용 경험 | Figma / Zeplin등의 협업 가능자 |
자료구조 / 운영체제 / 알고리즘에 대한 기본적인 이해 및 적용 능력 | 컴퓨터 공학 전공자 |
HTML / CSS / Javascript(+TypeScript) 에 대한 이해 | 배포 자동화 유경험자 |
렌더링 최적화 등의 프론트엔드 성능 개선 지식 및 경험 | 주어진 상황에서 적절한 기술적 판단을 내릴 수 있어야 함 |
Web / App의 정말 Low레벨부터의 중요한 기반 지식을 갖추고 있어야 함 |
위 정보를 바탕으로, 나만의 Roadmap을 세우기로 했다.
더듬이의 FrontEnd Roadmap
- 프론트엔드 개발을 본격적으로 공부하기로 결심한 나는, 다양한 자료를 참고하며 나만의 로드맵을 만들어 나가고 있다.
- 이 블로그에서는 내가 어떻게 학습 계획을 세웠고, 어떤 내용을 중점적으로 배우고 있는지 단계별로 정리해보려고 한다.
- 이 로드맵은 나의 프론트엔드 개발 도전기를 기록한 것이자, 앞으로도 지속적으로 업데이트될 예정이다.
1. WEB의 기본 및 특징
![]() |
웹 개발의 시작은 인터넷과 웹의 기본을 이해하는 것에서 시작한다. 웹이 어떻게 작동하는지 이해하는 것이 중요한데, 다음과 같은 개념을 학습할 것이다
|
2. HTML / CSS
![]() |
프론트엔드 개발에 있어 가장 중요한 HTML과 CSS를 먼저 다뤄야 한다. 여기서는 단순히 페이지를 구성하는 방법만 배우는 것이 아니라, 반응형 웹 디자인과 CSS 아키텍처 설계까지 이해하는 것이 목표다.
|
3. JavaScript 기본
![]() |
HTML과 CSS로 기본적인 UI를 만들었다면, 이제 JavaScript로 동적인 기능을 추가해야 한다. 다음과 같은 기본 기능들을 학습하고 실습하는 것이 중요하다:
|
4. Git & Github
![]() |
개발자로서 Git은 필수다. 코드 관리를 위한 Git과 협업 도구인 Github는 이미 익숙하게 사용하고 있다. 프로젝트 버전 관리를 쉽게 하고, 협업을 원활하게 하는 데 중요한 도구이다
패스~ |
5. WEB의 보안 기술
![]() |
웹 애플리케이션 개발에 있어 보안은 중요한 부분이다. 나는 다음과 같은 웹 보안 개념을 학습하고 있다:
|
6. React 기초
![]() |
프론트엔드 개발에서 대세인 React는 필수적으로 배우고 있다.
|
7. 첫 번째 React 프로젝트 진행
![]() |
실습은 중요하다. 나는 첫 번째 리액트 프로젝트로 외부 API를 호출하여 데이터를 가져와 사용자 인터페이스를 만드는 작업을 진행하도록 한다. 추가로 다음과 같은 스택들을 반영할 생각이다.
|
8. JavaScript 심화
![]() |
기본적인 JavaScript에 대한 이해를 넘어, ES6 문법을 심도 있게 학습해야 한다.
|
9. TypeScript
![]() |
프론트엔드 개발을 하다 보면 TypeScript의 필요성을 자주 느끼게 된다. 타입을 명시함으로써 코드의 안정성을 높일 수 있기 때문이다. 그래서 나는 다음과 같은 내용을 중점적으로 학습하려고 한다.
|
10. Next.js
![]() |
Next.js는 서버사이드 렌더링(SSR)을 지원하는 React 프레임워크다. 이를 통해 SEO에 유리한 웹 애플리케이션을 구축할 수 있다. 주요 학습 내용은:
|
11. 두 번째 React 프로젝트 진행
![]() |
두 번째 프로젝트에서는 React와 TypeScript를 활용하여 풀스택 개발을 진행
Next.js와 AWS를 활용하여 실제 서비스 환경에서의 개발을 경험 |
12. React Native 기초
![]() |
마지막으로 React Native를 통해 모바일 앱 개발을 학습 React와 매우 유사하지만, 네이티브 기능을 다루는 부분에서 차이가 있다.
|
13. 세 번째 React Native 프로젝트 진행
![]() |
React Native 프로젝트를 통해 모바일 앱 개발을 실습하도록 한다
|
앞으로 어떻게 할 건데?
프론트엔드 개발자로서 나아가야 할 방향이 이제는 조금씩 명확해지고 있다.
1. JIRA 티켓을 통한 일정 관리
JIRA를 통해 구체적으로 해야 할 공부와 프로젝트를 일정으로 관리할 계획이다
- 해야 할 작업을 티켓으로 나눠서 구체적으로 관리할 수 있고,
- 프로젝트 일정과 우선순위를 설정하여 체계적으로 학습을 진행할 수 있다.
예를 들어, 최적화 관련 기술을 익히거나 새로운 기능을 구현하는 프로젝트를 진행할 때, JIRA에 세부적인 할 일을 기록하고 진행 상황을 체크할 것이다. 이렇게 함으로써 보다 명확한 목표와 일정 관리를 할 수 있게 된다.
2. 블로그를 통한 기술 복습 및 정리
공부한 내용을 복습하고 기록하는 과정은 매우 중요하다. 앞으로는 내가 학습한 내용을 블로그에 정리하며 복습할 계획이다.
- 최적화 관련 기술: 렌더링 최적화, 코드 스플리팅, Lazy loading 등을 어떻게 구현할 수 있는지, 배운 내용을 정리하여 기록.
- 기술적인 내용: 프로젝트를 진행하면서 마주한 문제 해결 과정, 실무에서 필요한 다양한 기술적인 내용을 공유.
- 강의 내용 복습: 인프런이나 다른 플랫폼에서 수강한 강의 내용을 정리하고, 실습하면서 느낀 점을 기록.
3. 멘토링을 통한 마인드셋 관리
프론트엔드 개발자로 성장하면서 가져야 할 마음가짐이나 로드맵 등 전반적인 내용에 대해서는 인프런에서 멘토링을 받을 계획이다. 멘토링을 통해 다음과 같은 부분을 다룰 예정이다:
- 개발자로서의 마인드셋 -> 끊임없이 배우고 성장하는 자세, 문제 해결 능력을 키우는 방법.
- 로드맵 수정 및 보완 -> 현재 나의 로드맵이 적절한지, 추가로 필요한 부분이 무엇인지 피드백을 받을 예정.
- 커리어 발전 방향 -> 프론트엔드 개발자로서의 향후 커리어 방향에 대해 조언을 구할 것.
자~드가자~
이 길이 쉽지는 않겠지만, 나는 분명히 한 발 한 발 나아가며 성장할 것이다. 앞으로의 여정에서 어떤 도전을 맞이하더라도, 차분히 하나씩 극복해 나가며, 내가 그리는 이상적인 개발자의 모습을 만들어 갈 것이다. 이 블로그를 통해 내 성장 과정이 기록될 것이니, 지켜봐 주길 바란다.
프론트엔드 개발자로서의 여정은 이제 막 시작되었다.