HTTP, 소켓 구분
·
BackEnd
구분 HTTP (Short-lived) 소켓 (Long-lived) OS 주요 업무 연결 생성 및 해제 (노가다) 연결 상태 유지 및 감시 (관리)자원 소모 포트 번호, 메모리 (TIME_WAIT) CPU (컨텍스트 스위칭), 파일 서술자효율성 가끔씩 데이터 보낼 때 유리 실시간으로 자주 보낼 때 유리한계 상황 포트 부족 동시 관리 인원 과다 HTTP는 요청이 끝나면 자동으로 통신 연결이 해제된다.반면에 소켓은 Close 동작이 있기 전까지 통신 연결이 지속되며 클라이언트의 요청이 별도로 없더라도 통신이 가능하다. 즉 실시간 데이터를 주고 받기에 적합한 환경이며 bind를 통해 포트 번호를 지정한다. 클라이언트가 동일 환경에서 여러개의 프로그램을 실행하더라도 OS가 임시 포트를 발급하기..
기초 문법
·
BackEnd/node.js
.then(매개변수) 의 경우 Promise의 동작 중 성공하면 자동으로 매개변수 안으로 성공한 리턴값이 들어온다. for (item of times) : items안에 들어있는 item을 하나씩 꺼내며 반복한다.
상태 코드 (StatusCode)
·
BackEnd
코드메시지설명200OK요청 처리 성공301Moved Permanently요구한 데이터를 변경된 URL에서 찾음304Not Modified클라이언트의 캐시에 저장되어 있음400Bad Request요청 실패, 클라이언트의 요청에 문제가 있음403Forbidden접근 금지404Not Found페이지를 찾을 수 없음405Method not allowed요청한 메서드가 허용되어 있지 않음408Request timeout요청 시간이 지남500Internal Server Error서버 에러501Not Implemented필요한 기능이 서버에 구현되어 있지 않음502Bad gateway게이트웨이 상태가 좋지 않음503Service Unavailable서버가 사용 불가 상태임
auth.py, images.py 예시
·
BackEnd
from flask import Blueprint, request, jsonifyfrom werkzeug.security import generate_password_hash, check_password_hashfrom flask_jwt_extended import create_access_tokenfrom models import db, Userauth_bp = Blueprint('auth', __name__)# 회원가입@auth_bp.route('/register', methods=['POST'])def register(): data = request.get_json() username = data.get('username') email = data.get('email') ..
작업 순서 Python Flask (서버 기본 설정)
·
BackEnd
가장 먼저 해야할 일은 작업 공간을 만드는 일이다. 1. 가상환경을 생성한다. python -m venv venv// 해당 명령어가 안될 경우 py나 python3 으로 변경해 작업을 해보자. # 가상환경 활성화# Windows:venv\Scripts\activate# Mac/Linux:source venv/bin/activate 가상환경을 활성화 해서 아래의 이미지처럼 앞쪽에 가상환경 키워드가 뜨면 활성화에 성공한 것이다. 2. Flask 사용을 위한 기본 라이브러리 설치또한, .env 파일을 사용하기 위해 dotenv와 jwt 인증을 위한 라이브러리도 함께 설치한다.pip install flask flask-cors flask-sqlalchemy flask-jwt-extended pymysql pi..
api 라우팅 분리
·
BackEnd/node.js
app.get('/sampleQuestions', (req, res) => { res.sendFile(path.join(__dirname, 'sampleQuestions', 'sampleQuestions.html'));});app.get('/sampleQuestions/api/questions', async(req, res) => { try{ const data = await fs.readFile(path.join(__dirname, 'sampleQuestions', 'test.json')); const questions = JSON.parse(data); res.json(questions); } catch(error){ consol..
패키지 목록 정리
·
BackEnd/node.js
패키지 목록 figlet : 가볍게 사용해보기 좋음. 글씨체를 아스키아트로 만들어준다.express : 웹프레임워크를 만드는데 도움을 주는 패키지nodemon : 서버를 매번 껏다 켜지 않아도 되도록 새로고침 해준다. 참고로 nodemon은 전역으로 깔아줘야 명령어가 사용가능함. -g 옵션을 추가해서 인스톨. nodemon 파일이름.js 하면 서버가 켜지고 코드를 변경시 자동으로 서버를 재부팅 시켜줌. 자주 사용하는 검사용 패키지 prettier (코드 포맷터) : Prettier는 코드의 스타일을 담당eslint (코드 린터) : ESLint는 코드의 품질을 담당jest (테스트 프레임워크) : Jest는 작성한 코드가 실제로 잘 돌아가는지 테스트하는 도구
API / CORS
·
BackEnd/node.js
API 작업시 차단 당할 수 있음. 해결 방법패키지 cors를 추가하고 선언명령어 입력var cors = require('cors') // 선언부터 해주고app.use(cors()) // 명령어를 입력하면 문제가 해결된다.