왜 컴퓨터는 2진법을 사용할까요?컴퓨터는 2진법를 사용합니다. 즉 0 또는 1로 모든 것을 표현한다는 것이죠. 왜 사용하는 지 바로 답을 내리기 전에 인간은 왜 십진법을 사용하는 지 부터 생각해보는게 좋습니다. 수에 대해서 배우기 시작할 때 가장 이용하기 좋은 도구는 손가락 입니다. 손가락을 하나씩 접어가면서 숫자를 배우기도 하고, 정확하게 계산을 하기도 하죠. 우리가 십진법(0~9를 사용하는 것)에 익숙한 것은 우리의 손가락 개수가 합쳐서 10개 인 것과 관련이 있습니다. 예전부터 손가락을 사용하는게 익숙했었기 때문이죠. 분명 인간의 손가락 개수가 10개 아니고, 좀 더 많거나 좀 더 적었다면 그 숫자에 익숙해졌을 것이라고 생각합니다.그렇다면 컴퓨터의 손가락은 2개 일까요?컴퓨터에 손가락은 없겠지만, ..
expo three를 다루기 전에 우선 three.js를 배워봅시다.expo three를 다룰 수 있게되면 여러가지 게임(앱)을 만들어 볼 수 있을 것이라고 생각해서 궁극적으로는 expo three로 간단한 게임을 만드는 튜토리얼을 "언젠가는" 올리고 싶습니다. 저도 배우고 싶은 거라 여러 가지 자료들을 찾고, 배우고 있는 중에 우선은 단계적으로 three.js에 대한 튜토리얼을 진행해보도록 하겠습니다.함께 무엇을 만들어볼까요?우선은 회전하는 정사각형을 같이 만들어보도록 하겠습니다. 예제 보러가기 우선은 회전하는 사각형을 만들고 차차 이벤트들도 추가해보면서 three.js를 이해해보도록 하겠습니다.three.js란?위에 올린 이미지처럼 웹 브라우저에 3d 형태로 나타낼 수 있게 도와주는 것이 WebGL이..
사랑하면 알게되고, 알게되면 보이나니.나의 문화유산 답사기에서 보았던 글귀입니다. 무언가를 좋아하게 되면 좀 더 알게되고, 알게 되니까 그 전에는 보이지 않았던 것들이 보이게 된다라니. 얼마나 매력적인 말인가요? 전혀 프로그래밍과 관련이 없는 사람 중에 하나였지만 어느덧 배운 지 1년 9개월 정도 되었습니다. 조금씩 보일듯 말듯한 컴퓨터란 존재에 애가 타는 마음으로 글을 써야겠다고 생각했습니다. 좋아 하지만 아직 아는 것이 너무나 부족해서 조금씩 깊게 알게 되는 과정을 보여드리는 카테고리가 될 것 같습니다. 우리 앞에 있는 컴퓨터는 예전에는 전산원(계산하는 사람)을 가르켰다고 합니다. 히든 피겨스에 나오는 주인공들 처럼요. 이제는 인간의 속도로는 계산 및 기능을 따라잡을 수 없기 때문에 인간이 하던 일을..
Route에 path 속성에 아무것도 전달하지 않으면 어떻게 될까요?switch를 알아보기 우선은 Route에 path 속성 값을 전달하지 않으면 어떻게 되는지 부터 알아봅시다. 해당 예시에는 3개의 라우트가 있고, 맨 마지막 라우트에는 path 속성을 전달하지 않았습니다. 결과는 "localhost:3000/"에 접속하니 path 값이 "/"인 Home 컴포넌트와 path 값이 없는 NotFound 컴포넌트가 둘 다 보이는 군요. 즉 path를 전달하지 않으면 어떤 요청에도 항상 나타나게 됩니다. "localhost:3000/about"에 접속하면 우리가 설정한 세 개의 컴포넌트가 다 보이게 됩니다. 이럴 때 스위치를 사용하시면 됩니다.switch 사용해보기스위치는 라우터들을 묶은 다음, 가장 먼저 p..
match와 location을 알아보도록 하겠습니다.BrowserRouter와 우리의 App을 연결하면 어떻게 된다고 했었나요? 라우터가 history api에 접근할 수 있고, Route에 연결된 컴포넌트에 match와 location, history props를 전달합니다. 이번 포스팅에서는 match와 location에 대해서 알아보고 path와 querystring을 받아오도록 하겠습니다. 이전 예시에 위의 코드를 복사해서 붙여넣어주세요. 라우트가 하나이고, "/"에 연결되어 있기 때문에 앱을 실행하면 크게 Home이라는 글자가 적힌 것을 볼 수 있습니다. 페이지가 에러없이 작동되면 F12를 눌러 구글 개발자 모드를 실행하고 콘솔 창을 확인해주세요. 우선은 나온 값들을 하나하나씩 알아보도록 하겠습..
리액트 라우터를 배워봅시다.라우팅이란 무엇일까요? 간단히 설명하자면 우리의 요청(url)에 맞게 연결해주는 것이라고 생각해주시면 됩니다. 우리는 url을 통해서 어떤 요청을 할까요? 우선 url이 어떤 형태인 지를 보겠습니다. 구글에 리액트 라우터라고 검색했을 때 url의 형태입니다. 파란부분(https)는 프로토콜입니다. 그리고 주황색 부분(www.google.co.kr)은 호스트 네임이라고 합니다. 중요한 건 호스트 네임 뒷부분에 있는 것들입니다. 초록색 부분(search)는 path name이라고 하고 "?"뒤에 있는 부분은 쿼리스트링(querystring)이라고 합니다. 또 페이지 내에서 위치를 표시할 때는 # 형태로 url이 좀 더 추가되기도 하는데 이 부분은 hash라고 표현합니다. 이렇게 용..
먼저 다운로드 해야할 것들이 있습니다.저번 시간에 만든 버튼 앱에 리덕스를 적용시키려면 우선 다운 받아야할 것들이 있습니다. yarn add redux react-redux 해당 명령어를 콘솔에서 실행시켜주세요. redux와 react-redux를 다운받을 수 있습니다.해당 모듈들을 다운로드 했다면 이제 리덕스 폴더를 만들어보도록 하겠습니다. src/reducers/index.js 파일을 만들어주세요. 예제에서는 리듀서를 하나로 사용하지만 프로젝트가 커지면 여러개의 리듀서를 사용하고 하나로 통합하는 경우도 있습니다. 예제는 간단한 것이 좋으므로 reducers 폴더 안에 index에 모든 것을 다 정의해보도록 하겠습니다.액션 만들기먼저 정의해야할 것은 액션입니다. 액션은 어떤 행동을 할 지 정의해주는 것..
리액트의 데이터 흐름은 어떻게 진행되나요?리액트는 부모에서 자식으로 데이터가 흘러갑니다. 그래서 주황색(부모)에서 주황색(자식) 까지 데이터가 전달되려면 그 사이의 많은 컴포넌트들을 거쳐가게 됩니다. 이런 거쳐가는 과정이 많아질수록 코드가 늘어나고 복잡해집니다. 리액트 카테고리에서 이전에 다뤘던 콘텍스트가 중간을 거치지 않고 자식 컴포넌트에 바로 전달했듯이 리덕스도 똑같다고 생각하시면 됩니다.왜 리덕스를 알아야 할까요?리덕스를 다룰 수 있게 되면 어려운 프로그램을 쉽게 만들 수 있습니다. 여러 과정을 거치지 않고, 사용할 컴포넌트에 연결해서 사용하면 되기 때문입니다. 이처럼 좀 더 프로그램을 쉽게 작성하기 위한 것이 첫번째 이유고, 두번째 이유는 리덕스라는 것이 이제는 보편적인 개념이 되었기 때문입니다...
로컬 스토리지를 확인해보세요.개발자모드(크롬에서 F12)를 누르고 Application 탭을 눌러보세요. 좌측에 local storage가 있는 것을 확인할 수 있습니다. 눌러보면 key와 value로 이루어진 형태를 볼 수 있습니다. 다른 페이지를 실행 중에 로컬스토리지를 확인하셨다면 이미 많은 데이터들이 저장되어 있는 것을 확인할 수 있습니다.로컬스토리지란 무엇일까요?세션이나 쿠키 같이 데이터를 저장하는 장소 중의 하나입니다. 로컬스토리지는 일정한 기간이 지나면 삭제되는 세션과는 달리 데이터의 만료기간이 없이 계속 저장됩니다. 데이터의 값은 항상 문자로 저장하셔야 하고, 간편하게 불러올 수 있습니다. 간단한 예시를 통해서 사용법을 배워보도록 하겠습니다.getItem과 setItem데이터의 값을 불러올..
ref의 역할은 무엇일까요?특정 엘리먼트를 사용해야 할 때 우리는 그 엘리먼트에 아이디를 주고, 그 아이디를 통해서 해당 엘리먼트를 사용합니다. jsx를 통해서 엘리먼트에 아이디 값을 주면 어떻게 될까요? 리액트 컴포넌트의 경우 여러번 사용될 수 있습니다. 그래서 jsx를 통해서 전달된 아이디를 가진 엘리먼트들이 재사용된 만큼 나타나게 됩니다. 즉 동일 아이디를 가진 엘리먼트들이 생기게 되는 것이죠. 그래서 리액트 컴포넌트에서는 아이디값을 주지 않고, className으로 클래스 값만 주는 것입니다. 아이디는 없지만 특정 엘리먼트를 지정해야할 때 사용하는 것이 ref입니다. 리액트에서 엘리먼트나 컴포넌트의 id 역할을 하는 것이 ref(reference) 입니다. ref 사용해보기버튼을 누르고 난 뒤에 ..