Backend 70

[AWS] EC2와 RDS로 서버 배포하기 (Express, MySQL)

1. EC2, RDS 생성하기 RDS 생성 후 MySQL workbench 연결하기 - 보안 그룹 생성 시, 모든 권한 허용 2. EC2 SSH 키를 이용해, 서버 접속 [AWS] EC2 생성하기 (ssh 이용해 터미널에서 접속하기) 1. 용어정리 VPC (Virtual Private Cloud) VPC를 적용해서, VPC 별로 네트워크를 구성할 수 있다. VPC를 여러개 적용해놓으면 각각의 완전히 독립된 네트워크처럼 동작하게 된다. 서브넷 : VPC의 IP 주소 범위 bohyeonstudy.tistory.com 3. Git clone 진행 AWS - EC2 express 배포 EC2 생성 및 서버 접속 보안 그룹 설정을 해줍니다. ssh - 22 http - 80 https - 443 사용자 지정 tc..

[점프투장고] 2장 장고의 기본 요소 익히기 (URL과 뷰, 모델)

2-01 URL과 뷰 앱(App) 우리는 앞에서 mysite 프로젝트를 생성했다. 하지만 프로젝트 단독으로는 아무런 일도 할 수 없다. 프로젝트에 기능을 추가하기 위해서는 앱을 생성해야 한다. 이제 게시판 기능을 담당할 pybo 앱을 생성해 보자. 다음처럼 명령 프롬프트에서 django-admin의 startapp 명령을 이용하여 pybo 앱을 생성하자. (mysite) C:\projects\mysite>django-admin startapp pybo (mysite) C:\projects\mysite> 명령을 실행하면 아무런 메시지 없이 종료된다. 하지만 pybo 앱 관련한 파일과 디렉터리가 생성되었음을 파이참에서 확인할 수 있다. pybo 디렉터리가 생성되고 그 하위에 여러 파일들이 생성되었다. 이것들..

Backend/Django 2021.08.27

[점프투장고] 1장 Django 개발준비

*점프 투 장고 교재 내용 참고 1-03 개발환경 준비하기 파이썬 가상 환경 사용해 보기 윈도우에서 명령 프롬프트를 실행하고 다음 명령어를 입력해 C:/venvs라는 디렉터리를 만들자. 루트 디렉터리를 반드시 C:/venvs로 해야 하는 것은 아니지만 실습 편의를 위해 이대로 지정하자. C:\Users\pahkey> cd \ C:\> mkdir venvs C:\> cd venvs 파이썬 가상 환경을 만드는 다음 명령어를 입력해 실행하자. C:\venvs> python -m venv mysite 명령에서 python -m venv는 파이썬 모듈 중 venv라는 모듈을 사용한다는 의미다. 그 뒤의 mysite는 여러분이 생성할 가상 환경의 이름이다. 가상 환경의 이름을 반드시 mysite로 지을 필요는 없다..

Backend/Django 2021.08.27

[AWS] EC2 생성하기 (ssh 이용해 터미널에서 접속하기)

1. 용어정리 VPC (Virtual Private Cloud) VPC를 적용해서, VPC 별로 네트워크를 구성할 수 있다. VPC를 여러개 적용해놓으면 각각의 완전히 독립된 네트워크처럼 동작하게 된다. 서브넷 : VPC의 IP 주소 범위 Elastic IP (탄력적 IP) vpc 안에 EC2 인스턴스가 들어가는데 이 인스턴스의 IP는 유동적인 IP주소가 할당된다. 그래서 우리는 이 인스턴스들에 접근하기 위해 고정된 IP가 필요한데 그게 탄력적 IP이다. EC2 새로운 서버 컴퓨터 생성. 새로운 리눅스 서버를 만들 때 EC2 인스턴스를 생성한다 2. EC2 생성하기 1. AWS console 로그인 2. EC2 새 인스턴스 생성 (1) key 생성시, 키 위치와 이름명 기억하기 3. key 속성 값 변경..

[생활코딩] OAuth

1. OAuth 2.0 수업 소개 사용자가 가입된 서비스의 API에 접근하기 위해서는 사용자로부터 권한을 위임 받아야 합니다. 이 때 사용자의 패스워드 없이도 권한을 위임받을 수 있는 방법이 필요하다. 이를 위해서 고안된 기술이 OAuth이다. 2. OAuth 역할 OAuth에 등장하는 3자에 대한 역할과 용어 알아보기 App 사용자 : Resource Owner Client : 화면 Resource Server ( Authorizie server) : 자원, 인증 정보를 갖고있는 서버 3. OAuth 등록 OAuth를 이용해서 Resource Server에 접속하기 위해서는 우선, Resource Server에 등록하는 과정이 필요하다. 4. OAuth Resource Owner의 승인

기본 SQL 문 정리

1. SELECT 데이터를 불러오는 쿼리문 (1) SELECT name FROM user; 모든컬럼 불러올 시, * 이용 (2) SELECT name FROM WHERE 조건; 조건 : [컬럼명 = 값] , [email = 980926a@gmail.com] (3) SELECT name FROM user WHERE 조건 ORDER BY 컬럼명 ASC or DESC; (4) SELECT name FROM user WHERE 조건 ORDER BY 컬럼명 ASC or DESC LIMIT 개수; 2. INSERT 데이터 삽입 (1) INSERT INTO user (name, phone) VALUES ( 'bohyeon' , 0102344); VALUE가 문자열이면, ' ' 이용하기 (2) INSERT INTO u..

패스워드 암호화와 저장 - Salt

1. Salt 단방향 암호화인 해시함수로 비밀번호 암호화를 진행할 때, 해킹가능한 확률이 높아지므로, 해시함수를 돌리기 전에 원문에 임의의 문자열을 덧붙이는 것을 말한다. 단어 뜻 그래도 원문에 임의의 문자열을 붙인다는 의미의 소금친다(salting) 이라는 것이다. 같은 비밀번호를 사용하더라도 salt가 다르면 password를 알아내기 힘들다. 2. salt 사용하기 node.js에는 많은 기본제공 모듈이 있다. 그중에서 암호화, 복호화 기능을 제공한 crypto 모듈을 이용해서, 랜덤 스트링을 얻을 수 있는 방법이 있다. 암호화할때 사용할 알고리즘은 sha512, base64, hex 등이 있다. 2-1 회원가입 api (1) salt 값 만들기 const buf = await crypto.rand..

MySQL - Express 연결 에러 정리

1. npm start 한 뒤에, 연결에러 code: 'ER_NOT_SUPPORTED_AUTH_MODE', errno: 1251, sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client', -> mysql 터미널에서 root 계정 권한 설정변경하기 ALTER USER '[MYSQL 아이디]'@'[MYSQL 주소]' IDENTIFIED WITH mysql_native_password BY '[MYSQL 비밀번호]'; 2. 터미널에서 mysql이 실행되지 않는 경우

Pool.js 이해하기

1. Connection 이란 클라이언트(애플리케이션) 측에서 데이터베이스에 접속해서 질의를 수행한 후, 결과를 받고 접속을 종료하는 일련의 과정을 의미한다. mysql.createConnection() -> connection.connect() -> connection.query() -> connection.end() 2. Connection Pool이란 사용자의 요청에 따라 Connection을 생성하다 보면 많은 수의 연결이 발생했을 때 서버에 과부하가 걸리게 된다. 이러한 상황을 방지하기 위해, 미리 일정 수의 Connection을 만들어 Pool에 담아뒀다가 사용자의 요청이 발생하면, 연결을 해주고 연결 종료 시, Pool에 다시 반환하여 보관하는 것이 Connection Pool이다. 이러한 ..