대부분의 개발자들은 console.log 를 사용해서 특정 값을 확인하고 디버깅 합니다. 그런데, console 에는 console.log 말고도 여러 메소드가 있다는걸 알고 계시나요? 아래 예를 보겠습니다. 각 로그들은 서로 다른 방식으로 표현되기 때문에 쉽게 구분할 수 있습니다. (스타일은 브라우저 마다 다릅니다.) 또한, 보다 구조적이고 가독성을 높일 수 있게 그룹으로 묶을 수 있습니다. 그룹은 중첩으로 표기할 수 있습니다. 그룹을 축소된 상태로 표시하려면 console.groupCollapsed() 를 사용하세요. 성능 측정 코드 지점간 시간을 측정하면 특정 작업의 성능을 쉽게 확인할 수 있습니다. 보통 이런 방법을 사용하시나요? 좀 더 우아하게 표현 해볼까요? 코드는 더 짧고, 측정은 더 정확하..
특정 폴더에 있는 png 이미지들을 webp로 변환시켜주는 툴을 만들어 보겠습니다. 간단하게 Node js 로 제작합니다. 우선 프로젝트 폴더를 만들어 주고 $ npm init 으로 프로젝트를 생성합니다. 그 후, 이미지 변환에 필요한 패키지들을 설치해 줍니다. (Global로 설치하셔도 무방합니다.) $ npm install imagemin imagemin-webp --save imagemin : 이미지 미니파이 해주는 툴imagemin-webp : imagemin의 webp 플러그인 설치가 완료 되었으면, /webp.js 파일을 만들어 줍니다. 퀄리티가 75% 이므로 손실이 있습니다. 만약 무손실 옵션을 사용하고 싶다면 로 작성해줍니다. 작성이 완료 되었으면 sources 폴더에 png 이미지 파일들..
GNB를 제외한 모든 페이지 개발은 완료 되었습니다.월/화/수 링크를 클릭하면 요일에 맞게 리스트를 그려주는 작업을 해보도록 하겠습니다. 우선 Gnb 컴포넌트의 a태그를 Link로 바꾸고, 경로를 메인 페이지, query string으로 요일을 명시합니다.props로 day를 받아 해당 요일이면 on 클래스를 추가해주는 작업도 합니다. /src/component/Gnb.js 이제 Gnb를 클릭하면 Main 컴포넌트에 props.location.search 로 day 값을 얻을 수 있습니다. day의 기본값은 월요일, day 값이 있다면 해당 요일로 set해주는 작업을 해줍니다. /src/container/Main.js 이어서, componentDidUpdate를 통해 day값이 바뀌면 새로운 리스트를 그..
에피소드를 누르면 해당 뷰어로 이동합니다. 지금까지 해왔던 방식과 동일하므로 어렵지 않습니다. 우선 이미지를 더미 데이터에 넣기 위해 이전 편에서 사용했던 episode_list.json 파일에 이미지 리스트를 추가합니다. /public/dummy/episode_list.json (전체 코드) 이후 전편과 동일하게 axios로 api를 불러와서 제목과, 이미지를 화면에 그려주면 끝납니다. props.match.params.episodeId 로 현재 에피소드의 ID와 일치하는 이미지들을 루프를 돌면서 그려줍니다. /src/container/Viewer.js 이번 강의의 모든 코드는 Github : tutorial_05 에서 확인하실 수 있습니다. 다음편 : React 강좌 tutorial 6 - GNB 처..
이번에는 웹툰 상세페이지를 만들어 보겠습니다.메인 페이지에서 감상하고 싶은 웹툰을 누르면 상세페이지로 이동합니다. 우선 Link 를 /webtoon/웹툰ID 로 수정해줍니다. 그러면 1장에서 만들었던 WebtoonHome 으로 이동합니다.그리고 웹툰ID는 props.match.params.webtoonId로 접근할 수 있습니다. (이는 1장 router 부분을 참고) 이 페이지에서는 웹툰의 상세정보와 해당 웹툰의 에피소드 리스트를 표현합니다.3장에서와 마찬가지로 더미 데이터를 우선 만들고 시작하겠습니다. /public/dummy/webtoon_detail.json (웹툰 상세 정보)/public/dummy/episode_list.json (에피소드 리스트) WebtoonHome 에서 axios로 방금 만..
이번장에서는 메인 페이지를 만들어 보겠습니다. 메인 페이지는 요일별 웹툰 리스트를 표시해줍니다. 해야할 일을 정의해보면,1. 요일별 웹툰 리스트 JSON 데이터 만들기 (더미 데이터)2. Main 컴포넌트에서 axios로 데이터 가져오기3. 요일별 웹툰 리스트 컴포넌트 만들기 우선 간단한 JSON파일을 만듭니다. (실제 프로젝트라면 REST API를 호출하겠지만, 이 강좌에 백엔드 영역은 포함되지 않습니다. 그냥 임시로 JSON 파일을 만들어서 활용하겠습니다.) 메인 화면에서 노출 될 웹툰 리스트이며, 각 웹툰은 요일을 가지고 있습니다. 이 파일을 axios를 이용해 불러올 것이기 때문에 src/폴더가 아닌 public/폴더의 dummy/폴더를 만들어서 넣어 두었습니다. /public/dummy/webt..
이번장에서는 헤더와 푸터, GNB등 공통으로 사용되는 컴포넌트를 만들어 보겠습니다.별 역할이 필요없는 애들이기 때문에 함수형 컴포넌트로 만들어 줍니다. /src/component/ Header 와 Footer를 간단하게 만들어 주시고,Gnb는 사실 요일탭인데 그냥 간단하게 3개만 만들었습니다. 메인 페이지(Main)와 웹툰 상세페이지(WebtoonHome)에 헤더, 푸터, GNB를 넣어줍니다. /src/component/Main.js 이런 화면이 나왔네요. 이번 강의의 모든 코드는 Github : tutorial_02 에서 확인하실 수 있습니다. 다음편 : React 강좌 tutorial 3 - 메인 페이지 (웹툰서비스 만들기)
HTML, CSS, JS 에 대한 강좌는 아닙니다.React의 대한 기본 개념을 알고 있는 상태에서 실제 서비스를 어떻게 구현하는지 알아보는 예제입니다. 모든 코드는 https://github.com/yunyong/react-tutorial-webtoon 에서 확인하실 수 있습니다.tutorial_01 ~ 06까지 브랜치로 나뉘어져 있으니, 각 강좌에 맞는 코드를 쉽게 찾으실 수 있습니다.CSS 관련 코딩은 포스트에서 제외되었습니다. Github 코드를 참고 해주시기 바랍니다. 우선, create-react-app으로 새로운 프로젝트를 생성합니다. $ create-react-app react-tutorial-webtoon 완료되었으면 $ cd react-tutorial-webtoon $ npm start..
Redux를 배우는 것은 쉽지 않다. 가파른 러닝 커브를 지닌 복잡한 툴이다. 하지만 이런 러닝커브를 극복하고 Redux를 사용했을때 과연 어떤 점이 편해지는 걸까? 단순히 React의 상태state를 관리해주는 도구일 뿐인걸까, 아니면 그 이상의 무언가가 있는걸까? Redux의 진짜 강점을 알아보자. Redux로 무엇을 할 수 있을까?(현재) React는 상태 관리(state management) 측면에서 부족하다. Redux는 그것을 보완해주기 위해 탄생한 도구이다. 우선, 상태 관리가 무엇을 의미하는지 짚고 넘어가자. 상태state가 무슨 의미인지 이해하기 어렵다면, 단순히 데이터data라고 생각하면 쉽다. 이 상태는 수시로 변경되며, 이 내용을 바탕으로 UI에 표현될 내용을 결정한다. 일반적으로 ..
참고 : Learning Javascript 자바스크립트에서는 일반적인 방법 외에도, 함수를 어디서 어떻게 호출했느냐와 관계없이 this가 무엇인지 지정할 수 있다. callcall 메서드는 모든 함수에서 사용할 수 있으며, this를 특정 값으로 지정할 수 있다. 함수를 호출하면서 call을 사용하고 this로 사용할 객체를 넘기면 해당 함수가 주어진 객체의 메서드인 것처럼 사용할 수 있다. call의 첫 번째 매개변수는 this로 사용할 값이고, 매개변수가 더 있으면 그 매개변수는 호출하는 함수로 전달된다. applyapply는 함수 매개변수를 처리하는 방법을 제외하면 call과 완전히 같다. call은 일반적인 함수와 마찬가지로 매개변수를 직접 받지만, apply는 매개변수를 배열로 받는다. app..
- Total
- Today
- Yesterday