-
🌈 2020 FrontEnd 개발자가 되기 위한 10가지 방법IT이것저것 2020. 7. 26. 20:53
이 글은 2020년 07월 15일에 있었던 7월 우아한세미나(주니어개발자로 성장하는 우아한 방법들)를 듣고 요약한 것입니다.
https://www.youtube.com/watch?v=Qtg5xe6B_vA📌 세상은...
- 웹 프론트엔드 기술이 활용되는 서비스 범위가 매우 넓어지고 웹의 기술 역시 다양하고 복잡하게 발전하고 있다.
- 또한, 서비스와 제품의 기술적 요구사항도 다양해지는 중이다.
- 이런 세상에서 우리가 어떻게 대응할 것인가를 10가지로 알아본다.
✌ 1. 현장 이해하고 대응하기
- 첫 번째 주제인 현장을 이해하고 대응하는 것이 사실상 결론이고 가장 중요한 것이다.
🎈 현장의 세가지 특징
- 함께 일하기
- 분석, 개발, 테스트, 배포, 피드백, 개선
- 제품과 서비스의 지속적인 운영
- product를 만들고 서비스를 만들어도 끊임없이 유지하는 것이 현장의 대표적인 특징.
🎈 여기서 발생하는 문제들
- 커뮤니케이션의 어려움
- 일의 순서 정리
- 다양한 제약사항
- 품질과 일정(둘은 공존하기 어려움..)
- 형상관리(여러 명이 개발 코드를 협업해서 만들 때의 어려움)
- 테스팅의 어려움(품질과 관련되어 있고 현장에서의 어려움)
❗ 요즘 채용 공고를 보면 기업에서 원하는 기술과 지식이 많고 복잡하다.
🎈 이러한 상황에서의 우리의 대응법
-
🔸 연습은 실전처럼하는 것이 좋다.
기초 프로그래밍 연습 -> 미니 프로젝트 -> 좀더 큰 프로젝트 -> 같이 할 수 있는 프로젝트
이렇게 프로젝트를 하면서 모르는 부분을 그때 그때 찾아보자.
인턴경험, 알바 경험 등등
현장이 원하는 인재는 경력같은 주니어..
- 🔸 문제 해결 능력 향상
- 다양한 방법으로 문제를 해결해보고 스스로 회고해보기.(어떻게 해결했고, 어떻게 했는지에 대한)
- 디버깅 잘 이해하기. (오류 메시지에 대한 대응과 인지)
- 다른사람의 방법도 배우기 (페어 프로그래밍)
✌ 2. 프로젝트를 통해서 JS 익히기
-
JavaScript를 익히는 것이 가장 중요하다❗
-
책과 프로젝트의 거리감을 줄이고 두 개를 병행하되, 중심은 프로젝트로 하는 것이 좋다.
-
프로젝트를 하면서 언어 책을 함께 공부하는 것도 좋은 방법이다.
예를 들어 이런게 prototype이구나
closure를 활용해서 이렇게 구현할 수 있구나.
let, const의 차이가 이런거 구나. -
📌 면접에서 이론을 많이 묻는 이유는 기초지식을 충분히 알고 대응하는 개발자인지를 확인하기 위해서이다.
✌ 3. 향상된 UX를 목표로 개발하기
-
FE 개발자는 사용자와 접점이 된다.
-
FE 개발자의 많은 시간은 완벽한 코드보다, 사용성 향상작업이다.(성능, 매끄러움 등)
-
사용자가 쓰기에 불편함이 없는 인터랙션 개발를 해야한다.
애니메이션
좀더 빠르고 좀더 직관적인 UX 고민, 개선 -
CSS3, DOM, Event, Animation 제어, 비동기에 대한 이해
-
디바운스 쓰로틀링
✌ 4. 함께 자라기
-
현업은 함께 익히고 함께 고민하고 함께 만들어 간다.
-
프로젝트를 할 수준이 아니더라도 함께 학습하고, 간단한 프로젝트를 함께 만들어보고 그에 대한 피드백을 받는 것이 중요하다.
-
함께 맞춰보는 것은 피곤하지만 맞춰보는 것이 중요하다.
업무를 분석하고 github issue/project로 일감 만들어서 관리하기
PR 보내기
코드리뷰 하기
git branch 전략세워보기 -
주변에 같이 할 사람이 없으면 커뮤니티를 활용해서 사람들과 함께 해본다.
-
협업도구 슬랙과 트렐로
✌ 5. 기초는 튼튼하게
✨ 기초에서 좀더 중요한 것들은?
1️⃣ 자료구조와 알고리즘
-
채용단게를 뚫기 위해서는 반드시 필요 ❗
-
문제를 좀더 다양한 방법으로 풀 수 있는 능력이 생기고, 효율성을 고려하면서 구현할 수 있는 능력이 생김.
-
꾸준히 연습을 하고 지속가능한 방법을 찾는 것이 중요하다.
-
연습은 실전처럼
◾ 시간 재기
◾ 쉬운 문제 많이 풀어보기
◾ 같은 문제 다시 풀어보기
◾ 다른 사람 코드 보기
2️⃣ 네트워크
-
처음부터 다 보는 것보다도 HTTP 중심으로 보는 것이 중요하다.(TCP, IP를 포함해서)
-
크롬의 개발자도구의 Network 탭에 있는 항목들을 모두 다 아는 것이 좋다.
-
HTTP 관련 책(추천 책은 HTTP 완벽 가이드/ 간단하게 볼려면 그림으로보는 HTTP&Network Basic) 읽기
HTTP는 고전 책을 봐도 좋다.
-
개발하면서 알게 되는 용어를 찾아서 공부해보기.
-
네트워크 웹 보안(XSS,CSRF,OWASP)
3️⃣ 백엔드 접해보기
-
우리가 어떤 일을 어떻게 접할지 모른다.
SSR(server-side rendering)을 위한 서버를 운영해야 한다면?
-
Node.js 중심으로 웹 애플리케이션 서버와 연동해보기
내가 로그인을 만들면 HTTP요청을 보내고 Request를 보내면 서버에서 어떻게 받는지, Response는 어떻게 하는지 등에 대한 이해
-
Database, OS, 클라우드(AWS, 그래도 우선순위가 낮다.) 등의 지식도 중요하다.
📌 종합적으로 프론트앤드 개발자보다는 좋은 프로그래머로 성장하는 것이 핵심이기 때문에 기초는 꾸준히 해야한다.
✌ 6. HTML, CSS에서 FE 엔지니어로!
-
Component 기반(SPA) 개발이 표준이 된 세상
-
그렇기 때문에 HTML, CSS, JS를 따로 개발하기보다 함께 개발해야 하는 시대
-
하지만, React, Vue 를 할 줄 안다고 FE 개발자가 되기 어렵다.
-
가장 중요하고 가장 먼저 해야되는 것은 바닐라 자바스크립트가 중요하다!!!!
-
꾸미는 것을 좋아하지 않는 분들은 FE 개발자가 되는 것은 좋지 않다고 생각한다.
-
프로그래밍 사고 늘리기가 최우선이다. ❗❗❗
◾ JS책만 보지 말고, 무언가 만들어보기
◾ 조건, 반복, 함수를 활용한 호출관계, 모듈을 만드는 방법 등
◾ 알고리즘 문제, 쉬운 문제를 많이 그리고 꾸준히 푸는 연습이 필요하다.
◾ 자바스크립트 프로그래밍 연습
✌ 7. 프론트..원래 이럼?
-
📌 프론트앤드 로드맵을 보면 배워야할 것들이 너무 많다.
-
전부 다 잘하기에는 힘들기 때문에 양보다는 질이 중요하다. 그렇기 때문에 무언가를 깊이 있게 다룰 수 있는 것이 중요하다.
예를 들어 공부하다 모르는 부분을 만나서 그 문제에 대해서 어느정도로 깊게 파고 들었나
-
내가 하고 있는 분야를 깊게 파고 있는가?
◾ 피드백받고 개선하기.
◾ 리팩토링을 시도하고 실험했는가
◾ 좀더 사용성을 올리기 위해서 다양한 방법을 찾아보고 시도했는가?
◾ 내가 얻어낸 코드를 공유하고, 노하우를 알리거나, 오픈소스화했는가?
✌ 8. React, Vue, Angular 익히기
-
React, Vue, Angular같은 프레임워크는 추상화 되어있고 편리한데 internal logic(내부 논리)을 알기 어렵다.
-
모두 다 할 필요는 없다.
-
바닐라로 훈련이 충분히 된 상태에서 접근하는 것이 좋다.
-
이미 프레임워크를 다루었다면 바닐라로 프레임워크 흉내내보기
-
하나만 깊이 있게 하는 것이 중요하다.
-
특정 프레임워크 비의존적인 부분에 대한 학습이 중요하다.
◾ 각 프레임워크의 동작 방식
◾ 렌더링 원리
◾ 상태 관리
◾ 모듈 관리
◾ 성능에 유리한 코딩방식
✌ 9. 내가 선택한 길이 맞을까?
- 열심히 그리고 즐겁게 개발하고 있다면 틀린 길은 없다.
- 나를 믿고 전진하기
- 이것저것 왔다갔다 안하기
- 피드백을 받을 수 있는 방법을 찾아보기
- 다양한 멘토와 코드리뷰(커뮤니티를 활용할 수도..)
✌ 10. 나를 알아봅시다.
- 이력서 써보기
- 면접 기회 얻어보기 (부족한 것을 피드백 받기)
- 면접 기회가 없으면 면접 스터디 같은거라도..
📌 좋은 회사를 알아볼 수 있는 tip
- 그회사의 채용공고가 중요
- 이전 공고와 그전 공고보자
- 그 회사의 문화
- 면접 분위기 (갑을 관계/면접자의 질문의 질)
📌 개발자 지망생을 위한 주관적 추천도서 목록
'IT이것저것' 카테고리의 다른 글
체크인 리얼밸리 - 한기용 멘토링 오프라인 토크 이벤트 정리 및 회고 (0) 2022.12.28 2020 NAVER DEVELOPER OPEN CLASS 후기(정리) (0) 2020.08.29