프론트엔드 개발자의 역량은 HTML/CSS/JS 관련 지식에서 끝나지 않는다.
프론트엔드는 엔지니어링에서 상대적으로 새로운 분야로 프론트엔드 개발은 인터페이스와 사용자 경험과 같은 사용자가 포함된 부분에 더 집중함
프론트엔드 개발은 웹 개발의 개념을 포함하는 더 넓은 의미의 개발이다. HTML/CSS/JS는 전체 웹 개발 기술에서 굉장히 작은 레이어이자 기초에 해당하는 스킬이고 실제로 개발에 활용가능한 지식을 갖추려면 웹 기술 전반에 대한 이해가 필요함
클라이언트는 HTTP를 통해 서버와 통신하고 데이터를 받아옴 ⇒ 프론트엔드 개발자 또한 네트워크와 데이터베이스에 이르는 웹 전반에 대한 이해가 필요하다는 의미
이외에 클라이언트 사이드 지식에 해당하는 브라우저에 대한 이해 그리고 유저 관점의 UX에 이르기까지 프론트엔드 개발자가 갖춰야할 역량은 다양함
1. 주니어 프론트엔드 개발자라면 알아야 하는 지식
- HTTP 요청에 대한 이해.
- HTTP 요청/응답 주기의 수명 주기
- 다양한 HTTP 동사(Method)와 헤더, 콘텐츠 유형, 응답 코드
- 서버와 상호작용(AJAX)
- 유닛 테스트에 대한 이해
2. 프론트엔드 개발자가 알아야하는 백엔드 관련 지식
- HTTP를 포함한 네트워크 레이어에 대한 이해
- RESTful API라 부르는 API 설계구조에 대한 이해
- 정확히는 RESTful API가 어떤 규칙으로 이루어져 있는지, 어떻게 구현할 수 있는 지에 대한 이해가 필요함
- 프론트엔드에서 Mock API를 만드려면 데이터베이스가 어떻게 구성되어 있는 지 알아야함
- 데이터베이스의 구조, 형태는 굉장히 다양하다. 데이터베이스를 어떻게 설계하고 구조를 잡아야 이를 효율적으로 사용할 수 있는 지에 대한 이해가 필요
- RDBMS (관계형 데이터베이스)
- NoSQL
- 또한 Mock API를 만들기 위해선 JSON이라는 포맷에 대한 이해도 필요
위는 백엔드 개발자라면 누구나 알고있는 지식이며 프론트엔드 개발자에게도 요구되는 지식이다. 그와 더불어,
- 최근 GraphQL에 대한 수요도 늘어나고 있음
- 전통적으로는 SQL이라는 데이터베이스에서 데이터를 조회하는 쿼리가 쓰이고 있지만 SQL은 쿼리의 형태만으론 추출하려는 데이터를 파악하기 어렵다는 단점이 있다. 그래서 최근 클라이언트 사이드에서는 보다 직관적인 GraphQL 사용이 늘어나고 있는 추세임.
위 지식들을 프론트엔드 개발자가 이해하고 있다면 서비스를 개발하는 상황에서 프론트엔드 관점의 데이터 모델링과 같은 주제에 대해 백엔드 개발자와 원활한 소통을 할 수 있다. 이를 통해 프론트엔드 개발자는 단순히 응답으로 받은 데이터를 렌더링하는 역할을 넘어 보다 주도적으로 일할 수 있게 된다.
3. 프론트엔드 개발자가 알아야 하는 클라이언트 관련 지식