Skip to content

프론트엔드 학습 로드맵 ​

문서의 구조를 만들고, 화면을 구성하고, 사용자 입력에 반응하기까지. 웹 표준과 브라우저의 동작을 바탕으로 프론트엔드의 기본기를 순서대로 익힙니다.

학습 목표

할 일 관리 웹 앱을 HTML, CSS, JavaScript로 만듭니다. 정적인 화면에서 시작해 입력과 필터링, 데이터 저장, API 연동을 더하고, 다양한 사용자가 이용할 수 있는 화면으로 완성해 보세요.

전체 학습 순서 ​

단계주제목표
01웹과 브라우저페이지가 전달되고 화면에 표시되는 과정 이해하기
02HTML과 문서 구조의미 있는 마크업과 입력 폼 작성하기
03CSS와 반응형 레이아웃다양한 화면 크기에 대응하는 UI 만들기
04JavaScript 기초데이터와 로직을 다루는 언어 기본기 익히기
05DOM과 이벤트사용자 입력에 반응하고 화면 갱신하기
06비동기 처리와 데이터API를 연결하고 로딩·실패 상태 처리하기
07접근성과 사용성키보드와 보조 기술로도 이용 가능한 화면 만들기
08브라우저 심화와 성능실행·렌더링 흐름을 이해하고 병목 개선하기
09개발 도구와 TypeScript코드를 검사하고 유지보수하기 쉬운 구조 만들기
10테스트와 배포주요 사용자 흐름을 검증하고 웹에 공개하기

01. 웹과 브라우저 ​

  • URL, DNS, HTTP 요청과 응답, HTTPS
  • HTML, CSS, JavaScript가 전달되는 흐름
  • DOM, CSSOM과 브라우저 렌더링의 기본 과정
  • 개발자 도구의 Elements, Console, Network 탭
  • Git으로 변경 사항 기록하기

완료 기준: 페이지를 열었을 때 필요한 파일이 어떻게 로드되는지 설명하고, 개발자 도구에서 요청과 오류를 확인할 수 있습니다.

02. HTML과 문서 구조 ​

  • 제목, 문단, 목록, 링크와 이미지
  • header, nav, main, section 등 의미에 맞는 요소 선택
  • button과 a의 역할 구분
  • form, label, input과 기본 입력 검증
  • 이미지 대체 텍스트와 문서 메타데이터

완료 기준: 제목 구조가 명확한 할 일 목록과 입력 폼을 작성하고, 각 입력 요소에 레이블을 연결할 수 있습니다.

03. CSS와 반응형 레이아웃 ​

  • 선택자, 상속, 명시도와 캐스케이드
  • 박스 모델, display, position과 쌓임 맥락
  • Flexbox와 Grid
  • 상대 단위, 미디어 쿼리와 유연한 레이아웃
  • 사용자 정의 속성, 상태 스타일과 간단한 전환 효과

완료 기준: 모바일과 데스크톱에서 가로 넘침 없이 동작하는 화면을 만들고, 포커스와 비활성 상태를 구분할 수 있습니다.

04. JavaScript 기초 ​

  • 값과 타입, 변수, 조건문, 반복문, 함수
  • 배열과 객체, 데이터 변환과 불변성의 기본 개념
  • 스코프, 클로저와 this
  • 모듈의 import와 export
  • 오류 처리와 디버거 사용

완료 기준: 할 일의 추가·수정·삭제·필터링 로직을 화면 코드와 분리해 함수로 작성할 수 있습니다.

05. DOM과 이벤트 ​

  • 요소 선택, 생성, 수정과 삭제
  • 이벤트 전파와 이벤트 위임
  • 폼 제출과 기본 동작 제어
  • 데이터 상태를 기준으로 화면 갱신하기
  • 사용자 입력을 안전하게 텍스트로 표시하기

완료 기준: 입력 폼으로 할 일을 추가하고, 완료 상태 변경·삭제·필터링 결과가 화면에 반영되도록 구현할 수 있습니다.

06. 비동기 처리와 데이터 ​

  • Promise와 async/await
  • fetch, JSON과 HTTP 오류 처리
  • 로딩, 빈 결과, 성공과 실패 상태
  • 요청 취소와 응답 순서로 인한 화면 오류
  • localStorage의 활용과 한계
  • 동일 출처 정책, CORS와 쿠키의 기본 개념

완료 기준: API에서 목록을 불러오고, 네트워크 실패 시 안내와 재시도 수단을 제공할 수 있습니다. 서버가 없다면 로컬 저장부터 구현합니다.

07. 접근성과 사용성 ​

  • 시맨틱 HTML과 접근 가능한 이름
  • 키보드 탐색, 포커스 순서와 포커스 복원
  • 색상 대비와 색상에만 의존하지 않는 상태 표시
  • 폼 오류 안내와 동적 변경 알림
  • 화면 확대와 동작 줄이기 설정 대응
  • 기본 HTML로 표현하기 어려운 경우의 ARIA 사용

완료 기준: 마우스 없이 핵심 기능을 사용할 수 있고, 스크린 리더로 입력 레이블과 처리 결과를 확인할 수 있습니다.

08. 브라우저 심화와 성능 ​

  • 호출 스택, 이벤트 루프, 태스크와 마이크로태스크
  • 레이아웃, 페인트, 합성과 화면 갱신 비용
  • 이미지 크기·형식과 지연 로딩
  • 캐시와 리소스 로딩 전략
  • 개발자 도구로 긴 작업과 불필요한 레이아웃 측정
  • 리스너·타이머 정리와 메모리 누수의 기본 개념

완료 기준: 느린 화면의 원인을 측정하고, 개선 전후의 로딩 또는 상호작용 성능을 비교할 수 있습니다.

09. 개발 도구와 TypeScript ​

  • 패키지 관리와 개발·프로덕션 빌드 구분
  • 코드 포맷, 정적 분석과 실행 스크립트
  • 파일과 모듈의 책임 분리
  • TypeScript 기본 타입, 유니온, 타입 좁히기와 제네릭
  • 컴파일 시 타입 검사와 런타임 데이터 검증의 차이

완료 기준: 데이터 모델과 함수의 입출력에 타입을 정의하고, 빌드와 코드 검사 명령을 실행할 수 있습니다.

10. 테스트와 배포 ​

  • 데이터 처리 함수의 단위 테스트
  • 입력·추가·수정·삭제 등 사용자 흐름 테스트
  • 키보드 조작과 모바일 화면 확인
  • 정적 파일 배포, 경로 설정과 HTTPS
  • 배포 전 자동 검사와 배포 후 오류 확인
  • 실행 방법과 기능을 설명하는 README 작성

완료 기준: 주요 기능의 성공·실패 흐름을 검증하고, 배포된 주소에서 새로고침과 모바일 접근까지 확인할 수 있습니다.

기본기를 익힌 다음 ​

프로젝트에 필요한 주제를 골라 확장합니다.

  • 웹 API: 파일 처리, 드래그 앤 드롭, Intersection Observer
  • 오프라인 경험: Service Worker와 캐시 갱신 전략
  • 복잡한 처리: Web Worker와 메인 스레드 작업 분리
  • 국제화: 언어별 문구, 날짜·숫자 형식과 시간대
  • 웹 컴포넌트: Custom Elements와 Shadow DOM

각 단계에서 동작하는 결과물을 남기고, 왜 그렇게 동작하는지 설명할 수 있는지 확인해 보세요.

Last updated: