concept
-
파이썬에서 가상환경을 쓰는 이유concept/python 2020. 7. 28. 22:21
가상환경을 쓰는 이유 파이썬을 처음으로 시작하며 느낀 점은 처음 설정이 굉장히 복잡하다는 것이다. node.js를 쓸 때는 그냥 npm install만 하면 됐었는데 파이썬에서는 뭐 venv, source 이런걸 써서 가상환경을 만든 후에 작업을 해야한다. 그러다보니 가상환경이라는 것을 왜 설정하는지 궁금해졌다. 먼저 가상환경(virtual environment)이란 독립된 공간을 만들어주는 기능 이다. 가상 환경에서 pip로 패키지를 설치하면 가상 환경 폴더(디렉터리)의 Lib/site-packages 안에 패키지를 저장한다 (npm의 package.json과 같은 기능) 즉, 프로젝트 A와 B 각각 가상 환경을 만들어서 프로젝트 A에는 패키지 버전 A를 설치하고, 프로젝트 B에는 패키지 버전 B을 설..
-
에러를 raise해서 처리하는 방법concept/python 2020. 7. 28. 22:13
아무리 코드를 잘 짜도 API 자체에서 오류가 발생하게 되면 어쩔 수 없이 사용자 입장에서는 에러를 겪을 수 밖에 없다. 이런 문제를 해결하기 위해서는! Fallback을 활용할 수 있다. 여기서 Fallback이란? 어떤 기능이 약해지거나 제대로 동작하지 않을 때, 이에 대처하는 기능 또는 동작을 말한다. API를 호출할 때, 첫번째 API에서 호출이 실패하면 두번째 API로, 두번째 API에서 호출이 실패하면 세번째 API를 호출하게 만든다면 API 3개가 모두 먹통이 아닌 이상, 사용자 입장에서는 아무런 문제가 없이 서비스를 사용할 수 있는 것이다. 이를 위해서는 에러를 raise하는 것이 필요하다! 에러 raise를 통해서 발생가능한 에러를 미리 예측하고 에러가 발생했을 때 어떻게 해결해야할지 정..
-
python-django 간단하게 배우기concept/python 2020. 7. 16. 00:20
출처 : 생활코딩, youtube OneQ 장고란? 파이썬 기반으로 작성된 웹 프레임워크 즉, 파이썬 프로그래밍 언어를 기반으로 한 동적인 웹을 작성하는데에 있어 장고라는 기본 개념 구조 요소를 이용하여 개발하게 되는 것 장고의 특징 * 웹 개발에 있어서 번거로운 요소들을 새로 개발할 필요 없이 내장된 기능만을 이용해 빠른 개발을 할 수 있다는 장점이 있다. * MVT 패턴을 따릅니다. - M(Model), V(View), T(Template) 웹사이트를 만들며 간단하게 db에 접근하고 쓰는 것들을 django가 알아서 해준다! 그럼 간단하게 장고를 이용해 Create와 Read가 가능한 웹사이트를 만들어보자. 먼저 장고를 설치하고 django-admin 으로 프로젝트 생성, DB table 생성을 위한..
-
이 문제들을 다 풀면 session 이해 완료!concept/server 2020. 7. 12. 03:23
출처: 코드스테이츠 다음 중 세션에 대한 설명으로 옳은 것을 모두 고르면? A 서버와 클라이언트의 연결이 활성화된 상태 자체를 의미한다. B 클라이언트의 브라우저에 세션 객체가 저장되어 관리된다. C 클라이언트에 개별적으로 발급되는 세션 id는 헤더의 'set-session' 속성에 담겨야 한다. D 세션이 활성화가 되면, 서버는 클라이언트를 구분하기 위해 각 클라이언트에 세션 id를 발급한다. E 쿠키와 완전히 별개의 개념으로, 쿠키의 단점을 보완하기 위해 등장한 기술이다. 더보기 답 A 서버와 클라이언트의 연결이 활성화된 상태 자체를 의미한다. D 세션이 활성화가 되면, 서버는 클라이언트를 구분하기 위해 각 클라이언트에 세션 id를 발급한다. 오답풀이) B 세션 정보가 클라이언트, 서버 둘 다 저장이..
-
ComponentDidMount 와 render의 차이?concept/React, Redux, RN 2020. 7. 12. 02:07
출처 : zerocho / velopert 각각의 뜻을 먼저 살펴보자면 render 컴포넌트 렌더링을 담당합니다. componentDidMount 컴포넌트가 만들어지고 첫 렌더링을 다 마친 후 실행되는 메소드입니다. 이 안에서 다른 JavaScript 프레임워크를 연동하거나, setTimeout, setInterval 및 AJAX 처리 등을 넣습니다. render은 컴포넌트를 DOM에 부착하는 역할을 한다. 그리고 mount가 완료되고 나면 componentDidMount가 호출된다. 즉, state, context, defaultProps 저장 componentWillMount render componentDidMount 이 순서대로 실행이 된다. 그림으로 보면 이렇다.
-
콜백 때려잡기concept/javascript 2020. 6. 26. 23:14
이해한 것 같다가도 헷갈리는 콜백 다시 정리하기 콜백을 사용한 예시 var users = ['Minho', 'Oana', 'Ben']; function addUser(username, callback) { setTimeout(()=> { users.push(username); callback(); }, 5000); } function getUsers() { setTimeout(()=> { console.log(users); }, 5000); } // First add user to database then execute getUsers after user has been added. addUser("Ryan", getUsers); // addUser("Ryan", getUsers()); // 이 때 중요..
-
프로미스 기초concept/javascript 2020. 6. 26. 03:53
let users = ['oana', 'mino', 'ben', 'wil'] function myPromise(sec){ return new Promise((resolve, reject) => { setTimeout(() => { if(users){ resolve(users) } else { reject(users) } }, sec * 1000) }) } new Promise로 새로운 promise 객체를 생성하고 if 조건문에 성립할 때는 resolve를 통해 users를 내보내준다. 그래서 myPromise 함수를 실행하고 뒤에 .then을 붙이게 되면 그 parameter로 resolve() 안에 있는 users가 나오게 되는 것이다. 이게 바로 메소드 체이닝! 메소드 체이닝이란? 메서드가 객체를 ..