목록분류 전체보기 (341)

수학과의 좌충우돌 프로그래밍

[React] React 시작하기, create-react-app

react 를 시작하기에 앞서 준비 작업이 필요합니다. 우선 필요한 것들이 설치가 되었는지 확인을 해보겠습니다. 사전준비 nodeJS node.js 가 필요합니다. 로컬에 설치되어 있는지 확인하는 방법은 아래와 같습니다. > node -v v12.9.1 만약 아무 버전 정보가 뜨지 않으면 아래 링크로 가서 설치하시면 됩니다. https://nodejs.org/en/ npm npm 은 Node Packaged Manager의 줄임말로 Node로 만들어진 pakage 들을 관리해주는 툴입니다. 파이썬으로 생각하면 pip와 유사합니다. 마찬가지로 다음과 같이 버젼 확인이 가능합니다. > npm -v 6.13.6 npm 은 nodejs 를 설치 할 때 함께 설치되기 때문에 따로 설치할 필요 없습니다. npx n..

웹프로그래밍/React 2020. 1. 23. 12:30
[redis] redis 란 무엇인가

redis 란? redis 는 Remote Dictionary Server 의 약자로 키-값 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비관계형 데이터베이스 관리 시스템 입니다. 비관계형 데이터베이스 관리 시스템을 NoSQL 이라고 하죠. 관계형 데이터베이스 관리 시스템과 비관계형의 비교 분석은 다른 포스팅에서 다시 다루도록 하겠습니다. 현재 삼성전자, 라인, 네이버 등 여러 기업들에서도 redis 를 사용하고 있으며 그 만큼 검증된 오픈소스 솔루션이라고 볼 수 있습니다. redis 의 특징 key value redis 는 Map 데이터 저장소로서 key 값과 value 값으로 이루어져 있습니다. 따라서 key 값을 통해 value 값에 쉽게 접근하고 쉽게 저장이 가능합니다. 다양한 ..

데이터베이스/redis 2020. 1. 22. 21:51
[Redis] medis, redis 를 위한 GUI 서비스

redis 를 사용하다보니 불편함이 생겨서 GUI 서비스를 찾아보았습니다. 여러 GUI 프로그램이 존재했지만 대부분 유료여서 괜찮은 무료 프로그램을 찾아보았습니다. medis app store 에서 다운로드 받으려면 유료지만 github을 통해 받으면 무료로 받을 수 있습니다. https://github.com/luin/medis README.md 에 다운받는 방법이 나와있지만 그 방법대로 진행할 경우 안되서 간단히 정리하였습니다. 설치 방법은 Node Package Manager, npm 으로 진행되며 다음 순서로 진행됩니다. GitHub clone 받기 npm 을 통해 설치 install dependencies npm install Compile assets npm run-script build Ru..

데이터베이스/redis 2020. 1. 22. 17:26
[MySQL] MacOS 에서 MySQL 설치

제목 그대로 MacOS 에서 MySQL 을 설치하는 방법이니 다른 운영체제를 사용하시는 분들은 다른 글을 참고해주시면 감사하겠습니다. mysql 을 설치하는 두 가지 방법에 대해서 알아보도록 하겠습니다. 해당 포스팅에서는 shell 을 사용하는 경우가 많은데 shell 에 명령어를 입력하는 것을 > 을 사용하여 나타냈습니다. homebrew homebrew 를 이용해서 설치하는 방법입니다. homebrew 만을 사용할 때는 몰랐는데 아래서 다른 방법으로도 설치해보니 homebrew가 얼마나 편한지 세삼 실감이 납니다. homebrew 를 통해 설치하기 전에는 항상 최신으로 업데이트를 해줍니다. > brew update mysql을 설치합니다. > brew install mysql 설치가 완료되었는지는 버..

데이터베이스/MySQL 2020. 1. 20. 01:36
[smileGate] 2차 과제 (1) password 저장방법, hash function

어느 사이트에 회원가입 및 로그인 할 때 아이디와패스워드를 입력합니다. 서버에서는 해당 정보들을 DB 에 저장할텐데 패스워드는 어떻게 저장이 되고 있을까요? 만약패스워드를 평문 그대로 저장하고 있다면, 해당 사이트가 해킹 당할 경우 같은 패스워드를 사용하는 사이트는 모조리 패스워드를 바꿔야 할까요? 다행스럽게도 패스워드를 저장할 시 해시 함수를 통해 암호화를 거치게 됩니다. 어떻게 패스워드를 암호화하는지, 해시 함수는 무엇인지에 대해서 알아보도록 하겠습니다. 단방향 해시 함수 해시 함수는 수학적 연산을 통해 원본 메세지를 암호화된 메세지로 변환합니다. 그리고 변환된 메세지를 다이제스트라고 합니다. 이 때 단방향성이기 때문에 원본을 통해 암호화하기는 쉽지만 복호화는 불가능합니다. 복호화가 쉽게 가능하다면 ..

스마일게이트 2020. 1. 16. 16:39
[Django] Throttling

Throttle 이란 특정 조건 하에 최대 호출 회수를 결정하는 클래스 입니다. 여러 이유로 지정 기간 내에 호출 횟수를 제한하는 것이죠. Rate rate 는 지정 기간 내의 최대 호출 횟수를 말합니다. 표기하는 방법은 {숫자}/{간격} 다음과 같이 표기합니다. 여기서 숫자는 지정 간격 내의 최대 요청 제한 횟수를 말하고, 간격은 횟수를 초기화하는 시간을 말합니다. 이 때 간격은 문자의 맨 앞글자만을 참조합니다. 따라서 d 나 day 는 똑같이 동작합니다. 사용할 수 있는 간격 키워드로는 다음과 같습니다. s : 초 m : 분 h : 시 d : 일 # ex "10/s" # 초당 10회 "100000/day" # 하루당 10만회 Rates 제한 메커니즘 django 에서 제공하는 Throttle 들은 모..

웹프로그래밍/DRF 2020. 1. 8. 21:47