프로젝트 구조 > 포인트 > 폴더 아키텍쳐 > 환경변수 > IP관리 > 스웨거 > 상태코드 클라스 > 변칙적 키값의 리프레시 토큰 > 메일 인증 > 소셜 로그인 > 테스트 코드 > 엘라스틱 서치 > 이미지 서버 > 파일 이름 저장 로직 > 메모
app.py - 메인 어플리케이션 파일config.py - 사용자의 기밀 사항이나 민감한 키값들을 저장해 놓는 환경변수gitignore - git에서 무시할 파일 이름 저장model - 데이터베이스와 직접적으로 통신service - model을 포함하는 상위 단계이고
db,test_db로 크게 두 개로 환경변수를 나눔테스트 환경이나 개발 환경에서 create_app에 test_config의 환경변수를 인자로 넣으면 넣어준 인자로 환경변수를 적용하여 app을 생성create_app생성시에 test_config라는 환경변수를 명시하여
DDoS 공격의 의미DDoS(Distributed Denial of Service)는 웹사이트 또는 네트워크 리소스 운영이 불가능하도록 악성 트래픽을 대량으로 보내는 공격개발 단계에서 프론트와의 통신을 위해 포트포워딩으로 외부접속을 허용하고 있는 상황에 로그를 통해 모
swagger개발자가 REST API 서비스를 설계, 빌드, 문서화할 수 있도록 하는 프로젝트 이다.코드단에서 스웨거 패키지를 이용하여 코드 작성과 동시에 api문서를 정리 할 수 있어 시간적으로 단축서버가동과 동시에 요청을 보낼 수 있는 문서도 같이 만들어 지기 때문
각각의 route에서 상태코드를 내보낼 때,스웨거의 상태코드를 명시할 때 하드코딩으로 한다면 추후 상태코드와 설명을 변경할 때 시간이 소모된다.1.클래스 생성errors애 모든 라우터에서 공통적으로 쓸 에러코드와 메세지가 담긴 클래스 변수를 저장init\_은 클래스 생
스웨거를 적용할 때 id=fields.Integer( default=1, description="int_id", required=False ) api_model=api.
로그인시 서버에서 발급한 access_token은 만료시간이 되면 사용이 불가하기 때문에 클라이언트 입장에서는 다시 로그인 요청을 해야한다.한 유저가 여러번 로그인 했을 때 받은 리프레시 토큰이 모두 유효하게 작동한다면 보안에 문제가 생긴다.jwt_token은 secr
회원가입시 이메일을 받고 있지만 추후 민감한 정보로 변경시 본인인증 수단으로 이메일을 인증해야 하기에 존재하지 않는 이메일로 회원가입을 한다면 인증이 불가smtplib패키지를 통해 랜덤한 인증코드를 생성하여 메일로 발급하고 사용자가 직접 메일로 확인 후 발급받은 인증코
서비스 자체에 회원가입을 하는 절차가 불편하다.이미 인증된 이메일로 가입 된 카카오나 네이버 등의 오픈 api를 이용하여 회원의 정보를 받아와 간편하게 회원가입을 하는 소셜로그인 서비스를 제공한다.1.클라이언트는 프론트엔드를 통해 서비스의 키값과 함께 소셜 기업의 로그
배포나 개발 시 app을 구동할 때 예외케이스 때문에 서비스가 동작이 되자 않거나 에러가 뜨는 경우가 생김pytest를 이용한 테스크코드를 작성함으로서 개발 단계 및 배포 전 가능한 한 많은 케이스를 짜두고 안정적인 서비스를 개발pytest 설치테스트 폴더구조\*mod
ImageUs프로젝트의 서비스는 개인의 이미지 클라우드를 제공하는 것이기 때문에 이미지를 저장하는 및 다운하는 서버가 따로 필요한데 AWS의 s3나 네이버의 사진클라우드를 이용 할 수 있지만 자칫 관리를 잘못하면 비용이 들 수 있다.일반적인 백엔드 서버와 이미지 서버를
ImageUs서비스와 같이 사진을 다루거나 큰 파일을 다루는 서버들은 메모리 관리가 매우 중요하다.aws의 ec2나 개인의 데스크탑에서 서버를 운영할 때 보통은 우분투를 쓰는데 기존의 top,free,vmstat 등의 명령어를 통해 메모리를 모니터링 할 수 있지만 특정
gunicorn을 통해 app을 운영할 때 로깅이 제대로 안 된 상태에서 에러가 난다면 어느 코드에서 에러가 났는지 원인을 알기가 힘들다.gunicorn의 로깅을 보여주는 인자인 --log-level,--capture-output,--error-logfile인자 옵션과
프로젝트를 모두 개발한 상태에서 배포를 하려면 먼저 EC2나 개인의 컴퓨터에 가상머신을 까는 방법등 여러가지가 있다.하지만 깃허브에 올라온 파일을 다운받고 코드를 구동시키기 위한 프로그램들이 필요하다.ImageUs에서는 elasticsearch,mysql,nginx,p
이미지서버와 백서버 2개를 가동하는데 처음의 url설계때 포트로 나누어지기 때문에 바로 리소스 표현\*ex)http://localhost:5000/ping=>backserverhttp://localhost:5001/ping=>imageserver도메인
일반적인 http요청은 데이터가 암호화되지 않아 보안상으로 위험하다.일반적인 브라우저들은 https를 권장하여 http요청으로 보낼 경우 위험표시가 뜨게 되어 미관상으로도 안좋은 인식이 생긴다docker환경에서 certbot이라는 컨테이너를 이용하여 무료로 ssl인증서