전체 글

디렉토리 구조 변경 현재 프로젝트는 react를 create 하면 생성되는 구조이다. 이를 그대로 사용해도 괜찮지만 디렉토리 구조를 변경하여 나중에 추가될 기능이나 모듈에 대해 관리하기 쉽게 만들어 주는 것이 좋다. Redux를 위한 _actions, _reducer Components/Views Page가 들어가는 디렉토리이다. 즉, 화면에 대한 파일이 들어간다. Components/Views/Sections css파일이나 component들이 들어가는 디렉토리이다. App.js routing 관련 작업을 처리한다. Config.js 환경 변수를 저장한다. hoc(Higher Order Component) 권한을 검사하여 접근할 수 있는 component를 가지는 component이다. utils 여러..
apply 메서드 apply 메서드는 사용자가 작성한 함수를 한 번에 데이터프레임의 각 행과 열에 적용하여 실행할 수 있게 해주는 메서드이다. 즉, 함수를 브로드캐스팅해야 하는 경우에 apply 메서드를 사용한다. 함수를 하나 만들어 보자. def my_sq(x): return x ** 2 def my_exp(x, n): return x ** n print(my_sq(4)) print() print(my_exp(2, 4)) 이제 apply 메서드를 사용해보자. import pandas as pd df = pd.DataFrame({'a': [10, 20, 30], 'b':[20, 30, 40]}) print(df) print(df['a'] ** 2) 하나하나 적용할 수 있지만 아까 정의해 놓은 함수를 ap..
React facebook에서 개발한 라이브러리이다. Component를 기반으로 만들어져 module과 비슷하게 재사용성이 매우 좋다. 또한 Virtual DOM을 사용한다. Virtual DOM과 Real DOM의 차이는 다음과 같다. Virtual DOM Real DOM 로컬에서 Virtual DOM을 생성한 뒤 렌더를 요청하기 전 단계에서 변경 사항을 적용하여 요청하는 방식으로 동작한다. 따라서 어떠한 Component가 변경이 된다면 해당 Component만을 업데이트하면 된다. html 문서를 읽어와 DOM Tree를 생성한 뒤 Rander Tree를 생성한다. 그 후 렌더링을 하는 구조이다. 따라서 어떠한 Component가 변경이 된다면 전체 페이지에 대한 Tree들을 다시 작성하여 렌더링..
문자열 다루기 문자열은 작은따옴표나 큰따옴표로 감싸서 만든다. 문자열은 인덱스를 갖고 있고 이를 통해 접근이 가능하다. word = 'grail' sent = 'a scratch' print(word[0]) print() print(sent[0]) 인덱스 슬라이싱을 사용하면 여러 개의 문자를 한 번에 추출할 수 있다. print(word[0:3]) 음수를 적용하면 -1이 마지막 문자이다. print(sent[0:-8]) 왼쪽과 오른쪽 중 하나만 지정하게 되면 마지막 위치까지 모두 추출한다. print(word[:3]) 문자열 메서드 문자열에 대한 작업을 하는 메서드가 여러 개 있다. 모두 소문자로 변환하거나 대문자로 변환하는 등 자주 사용되는 메서드를 봐보자. join 메서드 join 메서드는 문자열을 ..
자료형 다루기 자료형 변환은 데이터 분석 과정에서 반드시 알아야 하는 요소 중 하나이다. 예를 들어 카테고리는 문자열로 변환해야 데이터 분석을 수월하게 할 수 있다. 또 다은 예는 전화번호는 보통 숫자로 저장한다. 하지만 전화번호로 평균을 구하거나 더하는 등의 계산은 거의 하지 않는다. 오히려 문자열처럼 다루는 경우가 더 많다. 데이터를 준비하자. import pandas as pd import seaborn as sns tips = sns.load_dataset("tips") 자료형을 변환하려면 astype 메서드를 사용하면 된다. 다음은 astype 메서드를 사용해 sex 열의 데이터를 문자열로 변환하여 sex_str이라는 새로운 열에 저장한 것이다. tips['sex_str'] = tips['sex..
로그아웃 회원가입과 로그인 기능은 이미 만들었다. 이제 로그아웃 기능을 만들어 보자. 로그인된 유저가 로그아웃을 원한다면 유저의 아이디를 찾아 token을 지워주면 된다. token을 지운다면 clinet가 갖고 있던 token과 일치하는 유저를 찾을 수 없기 때문에 token만 지워도 로그아웃이 된다. 로그아웃 라우터를 우선 만들자. app.get('/api/users/logout', auth, (req, res) => { User.findOneAndUpdate({_id: req.user._id}, {token: ""}, (err, user) => { if(err) return res.json({success: false, err}) return res.status(200).send({ success:..
열과 피벗 데이터프레임의 열은 파이썬의 변수와 비슷한 역할을 한다. 예를 들어 ebola 데이터프레임 열은 사망한 날짜(Date), 발병 국가(Case_Guinea) 등의 데이터를 저장하고 있다. 하지만 이번에 다루는 데이터프레임의 열은 열 자체가 어떤 값을 의미한다. 그러다 보니 데이터프레임의 열이 옆으로 길게 늘어선 형태가 된다. 바로 이것을 '넓은 데이터'라고 한다. 이를 깔끔하게 정리하려면 melt 메서드를 사용해야 한다. melt 메서드의 인자를 정리한 표이다. 퓨 리서치 센터(Pew Research Center)에서 조사한 '미국의 소득과 종교'라는 데이터이다. import pandas as pd pew = pd.read_csv('../data/pew.csv') print(pew.head())..
hvv_an
이미난