본문 바로가기

전체 글

(220)
20210605 React03 : CRA, ESLint, Prettier, Husky, Lint-staged, CRA코드 이해하기, React Developer Tools, React-Router-Dom, SPA 라우팅 과정, Router 구현하기 React 03 Create React App 본격적으로 App 만들기 Create React App -> 줄여서 CRA 라고 부름 create-react-app.dev : React app을 만드는 CLI 툴 소개 편하게 프로젝트를 생성할 수 있게 도와주고, 그외 여러가지 기능들을 제공함 CRA - 명령어 npx 명령어 : npm 5.2.0 이상부터 함께 설치된 커맨드라인 명령어 앱생성 명령어로 만들어진 프로젝트는 노드 (npm) 기반의 프로젝트임 npx create-react-app 프로젝트이름 : 프로젝트 생성 npm start : dev server 실행 (변경사항 바로 반영 됨) npm run build : build(compile) 해서 production을 만듦 (변경사항 반영안됨, 다시 빌..
20210604 React02 : Event Handling, Component Lifecycle, Lifecycle 변경된 사항 (16.3버전 이후), getDerivedStateFromProps, getSnapshotBeforeUpdate, ComponentDidCatch React 02 Event Handling HTML DOM 에 클릭하면 이벤트가 발생하고, 그에 맞는 변경이 일어남 JSX에 이벤트를 설정할 수 있음 camelCase로만 사용가능 예) onClick, onMouseEnter 이벤트에 연결된 자바스크립트 코드는 함수임 이벤트 = {함수}와 같이 씀 실제 DOM요소들에만 사용 가능함 리액트 컴포넌트에 사용하면, 그냥 props로 전달함 Function Component 이벤트 연결 JSX에 바로 이벤트 적고, 해당 이벤트에 함수를 붙여줌 함수 컴포넌트에서는 state, 라이프 사이클을 사용하지 않기 때문에, 상태값을 활용할 수는 없다. function Component() { return ( { console.log("clicked"); }} > 클릭 );..
20210604 React01 : React 개념, Virtual DOM, CSR vs SSR, 리액트 라이브러리, Component(Class, Function), React.createElement, JSX, Props 와 State, Render함수 React 01 React Concepts Component src, class, name, props 밖에서 넣어주는 데이터 html, CSS, JS을 합쳐서 내가 만든 일종의 태그 재사용을 할 수 있는 개인이 커스텀한 완전한 묶음 Component Based Development 화면을 구성하는 부분인 component들이 새로운 component를 구성하면서 개발하는 방식 Component Tree Component Tree를 Dom Tree로 변환 되어 동작함 Dom Tree의 경우 브라우저에 내장되어 있는 표현의 목록임 Component Tree의 경우에는 개인이 내장되어 있는 태그의 조합, 스타일, 동작을 입혀서 재사용 가능 Virtual DOM DOM 을 직접 제어하는 경우 바뀐 부분만 정확..
20210603 Vue01 : 맛보기, CDN 방식, CLI, 프로젝트 시작, vetur, webpack-template 만들기 보호되어 있는 글입니다.
20210603 Bundler02 : webpack-Babel, NPX, degit, Netlify 배포 Bundler02 Babel npm i -D @babel/core @babel/preset-env @babel/plugin-transform-runtime @babel/preset-env : js의 기능을 한번에 지원하는 패키지 (배열 형태로 넣음) plugins : (2차원 배열로 넣어야 함, 배열안에 배열이 들어 있는 형태) @babel/plugin-transform-runtime : 비동기 처리를 위한 패키지 .babelrc.js 파일 module.exports = { presets: ["@babel/preset-env"], plugins: [["@babel/plugin-transform-runtime"]], }; webpack.config 파일에 rules에 js 파일에 대한 로더를 붙여 줘야 함..
20210602 Bundler01 : 번들러 개념, Parcel (프로젝트 초기 설정, 정적 파일 연결, CLI, PostCSS, Autoprefixer, Babel), Webpack(프로젝트 초기 설정, 구성 옵션 파일 작성(config), html기준 플러그인, 정적파일연결하.. Bundler01 여러가지 개발할 때 필요한 라이브러리, 프레임 워크 등의 결과를 브라우저가 인식할 수 있도록 변환해 줌 번들러 자체가 변환해주는 것은 아니고, 해당 라이브러리, 프레임워크등이 가진 변환 패키지들을 번들러가 관리해서 변환을 도와주고 웹에서 동작까지 시킴 Parcel vs Webpack Parcel 구성 없는 단순한 자동 번들링 소/중형 프로젝트에 적합 Webpack 매우 꼼꼼한 구성 중/대형 프로젝트에 적합 Parcel 프로젝트 생성 npm init -> 프로젝트 시작 npm i -D parcel-bundler -> 번들러 개발 의존성으로 설치 package.json 파일 script 수정 "dev": "parcel index.html" "build": "parcel build index..
20210601 Bootstrap01 : CDN 연결, Buttons & Buttons group, Dropdown, List Group, Form, Modal, Tootips, NPM연결, 테마 색상 커스텀, 성능최적화(트리 쉐이킹, Optimize, 단일 번들) Bootstrap01 Bootstrap official site 여러가지 CSS, JS로 이미 만들어 져있는 UI(Components)를 가져다 사용 가능케 해주는 UI Framework 5버전 : SCSS , 트리쉐이킹을 지원함 트리 쉐이킹 (Tree Shaking) : 단일 번들을 최적화 할때 사용되는 필요하지 않은 코드를 제거하는 기술 연결하기 CDN CSS, JS 연결하기 Bootstrap : Quick Start JS CDN의 경우 Bootstrap에서는 Popper js에 의존하고 있어서, 묶여져 있는 Bundle이 있고 분리되어 있는 Seperate가 있음 Bundle : Bootstrap + Popper Seperate : Bootstrap , Popper (Popper를 따로 사용하는 경..
20210531 StarbucksClone05 : 배포(Netlify), 로그인 페이지, 모듈화 관리, Git(기본 명령어, reset, clone, branch 올리기), GitHub(pullRequest, 충돌, 로컬병합) Starbucks Clone05 Netlify 배포 Netlify Official Site What is Netlify? by Heropy Blog 지속적인 배포(Continuous Deployment) github의 원격저장소를 연결해주면 Netlify가 원격저장소의 내용을 가지고 가서 사이트를 자동으로 만들어 줌 (Github에서 project가 수정되면 알아서 Netlify가 인자하여 사이트에 수정사항을 반영 함, 즉 지속적인 관리 까지 가능함) Netlify는 신뢰할수 있는 사이트라서 github 저장소 모두 연결해도 상관 없음 로그인 페이지 만들기 (JS, CSS 모듈 이원화) SignIn HTML 기본 작업 (head) signin 폴더에 index.html 만들고 원래 index.html을 ..
0210530 StarbucksClone04 : 반복 애니메이션(Gsap), 고정이미지 배경(background-attachment), 3D 애니메이션(rotateY, backface-visibility), 스크롤 위치 계산(ScrollMagic), 푸터, 특정 위치에 스크롤 위치 시키기(Gsap-scro.. Starbucks Clone04 유튜브 영상 배경 - 반복 애니메이션 유튜브 영상 배경위에 일정 하게 반복되는 애니메이션을 구현하고자 함 Gsap : easing Gsap : to 함수 사용법 (옵션 포함) HTML, CSS 반복되게 할 이미지를 inner에 추가함 CSS는 알맞은 위치에 배치 함 JS 반복 애니메이션 랜덤한 숫자를 생성하는 함수 각 애니메이션에 특정 옵션값을 랜덤하게 줌으로써 볼때마다 다르게 움직이게 하려고 함 function random(min, max) { return parseFloat((Math.random() * (max - min) + min).toFixed(2)); } floatingObject라는 함수느 선택자, 지연시간, y축 이동 거리를 인자로 받아서 gsap의 to ..
20210528 StarbucksClone03 : Notice 수직 슬라이드(Swiper.js), 반응형 요소 중간 배치, Promotion 수평 이미지 슬라이드(Pagination, Navigation Botton), 슬라이드 Toggle, Rewards 영역, 요소 비율 맞추기, 유튜브 영상 넣.. Starbucks Clone03 Notice (공지) : 수직 슬라이드 슬라이드가 되는 공지사항을 구현하는 것이다. HTML 새로운 영역을 만드는 것이기 때문에 section 태그를 사용한다. notice section의 경우 좌우로 나뉘어서 영역을 차지하고 있고, 6:4 비율을 가지고 있다. 배경 색깔만 지정하는 bg-left class, bg-right class 요소가 있고 본격적인 내용은 앞에서 정의한 inner class 요소를 사용하여 중앙 정렬을 유지한다. inner class 요소 안에서도 좌우를 나누어 inner__left 와 inner__right가 존재함 inner__left 의 경우 공지사항 글자 부분 swiper-container라는 공지가 슬라이드 되는 부분 notice-line..
20210527 StarbucksClone02 : 메인메뉴(드롭다운 메뉴, 체계적인 html 구조), BEM(클래스 명 관리), 전역 배지(Badge), Lodash, Gsap 활용, Section영역 순차적 애니메이션, 버튼별 CSS 지정 Starbucks Clone02 메인 메뉴 (드롭다운 메뉴) 드롭다운 메뉴 : 메뉴에 커서를 올리면 하위 메뉴가 보이는 메뉴 핵심 포인트는 드롭다운 하위 메뉴들을 평소에 display: none 으로 하고, 메인 메뉴의 item이 hover되는 때 display: block처리를 해서 보이게 하는 것이다. 또한, 스크롤 시에도 계속 따라 보이게 하기 위해서 position: fixed;를 사용함 html 구조 COFFEE 음료 콜드 브루 브루드 커피 에스프레소 프라푸치노 블렌디드 음료 스타벅스 피지오 티(티바나) 기타 제조 음료 스타벅스 주스(병음료) COFFEE item__name 부분은 메인 메뉴에서 원래 보이는 부분 item__contents 부분은 메인 메뉴 hover시 보이는 부분 inner 부..
20210527 StarbucksClone01 : 오픈 그래프, fonts, Icons, 헤더 만들기( absolute를 활용한 정렬), 서브 메뉴(구분선, a태그 임시 href, JS로 요소 강제 focus 시키기, classList, setAttribute, 이벤트 함수로 CSS 제어) Starbucks Clone01 기본 환경 만들기 사용할 images 따오기 (favicon 포함) HTML 파일 만들기 html lang 속성 ko title 변경 favicon 연결 하기 link 태그의 rel icon css reset 연결하기 css 연결하기 CSS 파일 만들기 오픈 그래프 (The Open Graph protocol) 웹페이지가 소셜 미디어 등으로 공유 될때 우선적으로 활용되는 정보를 지정(공유시 북마크 미리보기 같은 느낌) 검색엔진에게 제공하는 정보 (SEO) 오픈 그래프 작성하기 html meta 태그의 property 속성 값으로 "og:속성값 과 content 속성 값을 쌍으로 지정하여 작성함 og:type : 페이지의 유형 (website, video.movie) og:..
20210526 CSS05 : 배치(position, stack order, z-index) 정렬(flex), 전환(transition), 변환(transform), perspective CSS05 배치 position 속성 요소의 위치 지정 기준 기본값 : static (기준 없음) 가능한 값 relative (요소 자신이 있었던 위치를 기준) 주의) 배치전 자리는 시각적으로 비어 있음 (자리를 차지함) absolute (위치 상 부모 요소를 기준) 이전에 있던 자리를 차지 하지 않음 부모를 특정하게 지정하고 싶으면 position: relative를 통해 기준을 정해줘야 함 absolute를 사용한 요소 기준으로 position: relative를 사용한 조상요소를 처음으로 만날때 그 조상요소가 기준이 됨 (모두 찾지 못하면 최종적으론 뷰포트 기준이 됨) fixed (뷰포트를 기준으로 고정되어 있음) sticky (스크롤 영역 기준) 같이 사용하는 속성 (위치 값을 위한 속성) top..
20210525 CSS04 : box-sizing, overflow, display, opacity, font관련 속성, 문자 관련 속성, background 관련 속성 CSS04 크기 계산(box-sizing) padding과 border의 값은 요소의 크기를 키우기 때문에 수정시 계산하기 어려운 문제가 발생함 box-sizing 요소의 크기 계산 기준을 지정 기본값 : content-box (요소의 내용으로 크기 계산) 지정할 수 있는 값 : border-box (요소의 내용 + padding + border로 크기 계산) 넘침 제어(overflow) 요소의 크기 이상으로 내용이 넘쳤을때(자식이 부모의 크기를 넘치는 경우), 보여짐을 제어하는 단축 속성 넘치는 주체가 아닌 부모 요소에 사용 기본값 : visible (넘친 내용을 삐져나오게 그대로 보여줌) 지정 가능한 값 hidden : 넘친 내용을 잘라냄 auto : 넘친 내용이 있는 경우에만 잘라내고 스크롤바 생성..
20210525 CSS03 : CSS 속성, (width, height) 관련 속성, 표현단위, margin, padding, border 관련 속성, 색상 표현 CSS03 CSS 속성(Properties) HTML 속성 : Attributes CSS 속성 : Properties JS 속성 : Properties 박스 모델 width , height 요소의 가로/세로 너비 기본 값 (property가 선언되지 않은 경우) auto : 브라우저가 너비를 계산 인라인 요소(auto 값) 콘텐츠 크기 만큼 width, height가 맞춰짐 (예. span 태그, 인라인 요소에서 특정 너비 값은 무시됨) 블록 요소(auto 값) width는 부모 요소의 크기 만큼 자동으로 맞춰짐 height는 내부의 콘텐츠 크기만큼 자동으로 맞춰짐 (예. div 태그) 지정 할 수 있는 값 px, em, vw 등 단위로 지정 max-width, max-height 요소가 커질 수 있는 ..
20210525 CSS02 : 가상 요소 선택자, 속성 선택자, 스타일 상속, 선택자 우선순위, CSS 속성 CSS02 가상 요소 선택자 가상요소 선택자의 경우 내용을 삽입하기 때문에 무조건 가상요소를 사용할 때는 CSS content 속성을 최소한 '' 빈값으로 해야할 정도로 무조건 사용해야 한다. 이름 기호 설명 Before abc::before 선택자 abc요소의 내부 앞에 내용(content)을 삽입 (추가 되는 요소는 인라인 요소임) After abc::after 선택자 abc요소의 내부 뒤에 내용(content)을 삽입 (추가 되는 요소는 인라인 요소임) Tom&Jerry .box { width: 100px; height: 100px; background-color: orange; } .box::after, .box::before { content: ""; display: block; ..