프론트엔드 개발 공부리스트
프론트엔드 개발을 제대로 배워보자
공부해야하는것들
- 기본 컴퓨터공학 지식
- 기본지식
- http, 동작원리
- HTTP 헤더 (Expires, Cache-Control, If-Modified-Since)
- 통신, 네트워크 관련 지식 (서적을 읽어보자?)
- cors
- OSI7 계층
- 자료구조 (자바로)
- 알고리즘
- 배포전략(모듈화)
- 개발 방법론(에자일)
- SOCKET.io / TCPIP (채팅관련?)
- 외부에서 강제 크롤링을 잘 해줄 수 있도록 하려면 어떻게 하는게 좋을까?
- 웹과 관련된 초초초기본지식
- 동기, 비동기
- stateless connection
- RestfulWebAPI 동작원리 및 작성 규칙
- 브라우저 자체의 동작원리 (기저층?)
- DOM, virtual DOM
- 쿠키
- 캐시, 프리 페칭pre-fetching 및 지연 로드 기법
- 세션
- MVC
- API
- UUID
- AJAX 통신 메서드
- 서버와 통신하고 데이터를 가져오는 방법
- 리소스 최적화하는 방법
- DNS Resolution, CDNContent Delivery Networks 사용, 여러 호스트 이름을 통한 리소스 요청 성능 향상
- 퍼포먼스를 올리는 방법
- 스티브 사우더스의 규칙(고성능 웹사이트)
- protocol
- ip
- URL, URI
- 기타?
- 이벤트 버블링
- 체인지 디텍터
- 개발지식
- 자바스크립트의 컴퓨터과학
- JSONP
- 클로저
- 익명함수, 사용법
- 호이스팅
- git 플로우
- this 바인딩
- 이벤트 바인딩
- 싱글 스레드 특성
- 가비지 컬렉터 알고리듬
- 타임아웃
- 스코핑
- 패턴
- 메모리 관리
- memory leak
- 자바스크립트 관련 기본 지식
- var, let, const 차이
- prototype 동작원리
- prototype 을 이용한 상속 구현
- 할머니에게 프로토타입을 설명한다면?
- falsy 값
-
‘&&’ ‘ ’ 연산자 - typeof 연산자로 검증되는 타입들
- Promise 설명
- 크롬 개발자 도구중 워터폴에 대해
- 리액트와 앵귤러의 차이점은?
- 제너레이터에 대해 아는가?
- nodejs 개발 환경에 익숙한가?
- PageSpeed, YSlow, 크롬 개발자 도구 Audit, 크롬 개발자 도구 Timeline에서 보여주는 문제를 해결하는 법
- hashbang(ajax)
- middleware
- SEO on SPA page
- 작업을 서버에서 해야할 때와 클라이언트에서 해야할 때 구분
- 이미지 포맷과 장점. 언제 무엇을 어떻게 써야 하는가에 대한 지식. 이미지 최적화 기법과 사용 계획 (스프라이트, 게으른 로딩 기법, 캐시 비움, 인터레이스드 PNG)
- MVC 자바스크립트 라이브러리 관련
- Angular JS
- Vue JS
- React JS
- Ember JS?
- 그래픽 라이브러리
- D3
- SnapSVG
- DOM 라이브러리
- jQuery
- Zepto
- 태스크 관리자
- Grunt
- Yeoman
- Gulp
- Webpack
- 패키지 관리자
- Bower
- ComponentJS
- NPM
- Yarn
- 테스팅
- Protractor
- Selenium
- 패키지 관리 라이브러리, 게으른 코딩 등
- RequireJS
- CommonJS
- 자바스크립트의 컴퓨터과학
배우고 싶은 언어/기술
- Python
- Java
- React / React Native
- Firebase
- mySQL
- GIT
알아보고 싶은 기술
- AWS
- nginx
- SSH
- oAuth
회사 테크스택
- MySQL
- Python + Flask + SQLalchemy
- Node.js + Express
- jQuery
출판사 추천
- Insite