Django

    [AWS] 3-Tier-Architecture 구축 #5 - RDS로 MySQL DB 생성

    [AWS] 3-Tier-Architecture 구축 #5 - RDS로 MySQL DB 생성

    아래 포스팅에서 이어지는 글입니다. https://jjung0326.tistory.com/85 [AWS] 3-Tier-Architecture 구축 #4 - Bastion Host와 WEB 계층 아래 포스팅에서 이어지는 글입니다. [AWS] 3-Tier-Architecture 구축 #3 - NAT Gateway 대신 NAT Instance를 사용해 비용 절약하기 아래 포스팅에서 이어지는 글입니다. [AWS] 3-Tier-Architecture 구축 #2 - VPC 아래 포 jjung0326.tistory.com RDS 란? AWS RDS는 서버에 직접 데이터베이스를 설치하고 관리하는 대신 AWS에서 관리해주는 관계형 데이터베이스이다. 인스턴스가 위치할 AZ(Availability Zone), Autosca..

    [Django] 상용 환경에서 staticfiles를 찾지 못하는 에러 해결

    [Django] 상용 환경에서 staticfiles를 찾지 못하는 에러 해결

    https://jjung0326.tistory.com/101 [django] WEB 서버 '400 Bad Request Error' 해결 AWS에서 3 tier architecture을 구성하고 WEB서버에 접속하면 'Bad Request 400 에러'가 떨어지는 문제를 해결해보았다. 구성한 서버는 다음과 같다. WEB - Nginx IP: 3.39.165.45 WAS - Gunicorn IP: 3.37.209.223 1. 에러 확 jjung0326.tistory.com WEB서버에서 400에러가 뜨는 문제는 해결했는데... 화면이 깨져 나오는걸 보니 staticfiles 경로를 찾고있지 못하고 있는 것 같다. 아마 설정파일 어딘가에서 꼬여있는 것 같다. 뭐가 문젠지 찾아보자. 1. Django sett..

    [Django] WEB 서버 '400 Bad Request Error' 해결

    [Django] WEB 서버 '400 Bad Request Error' 해결

    AWS에서 3 tier architecture을 구성하고 WEB서버에 접속하면 'Bad Request 400 에러'가 떨어지는 문제를 해결해보았다. 구성한 서버는 다음과 같다. WEB - Nginx IP: 3.39.165.45 WAS - Gunicorn IP: 3.37.209.223 1. 에러 확인 vi /var/log/nginx/error.log 명령어로 어디서 에러가 나고있는지 확인할 수 있다. 에러내용을 보면 ~/register_form/.static_root 폴더와 ~/register_form/.static_root/css 폴더가 forbidden 되어있다. 그리고 was 서버로 connection이 refused 되어 연결이 계속 failed되는 상태이다. 2. 포트 확인 WEB서버와 WAS서버..

    [Python Framework] 파이썬 프레임워크와 웹서버 연동 - CGI, WSGI, ASGI 차이

    [Python Framework] 파이썬 프레임워크와 웹서버 연동 - CGI, WSGI, ASGI 차이

    Django 프로젝트를 AWS에 3-Tier로 구축하는데, 어떤 미들웨어를 어떻게 써야할지 잘 모르겠어서 관련 공부를 해보았다. 일반적으로 웹서버는 Python으로 작성되지 않기 때문에 Python을 쓰는 Django 웹 프레임워크를 사용하는 경우 웹서버와 소통을 가능하게 해줄 중간개체가 필요하다. 이 중간 매개체역할을 해주는 것들이 CGI, WSGI, ASGI이다. 1. CGI (Common Gateway Interface) CGI는 Common Gateway Interface의 약자로 웹서버에서 사용자 요청이 들어왔을 때 이를 프로세스로 생성하여 실행해주는 역할을 한다. 요청에 따라 프로세스를 fork*하거나 spawn*하기 때문에 메모리가 많이 차지될 수 있어 성능저하가 발생할 수 있다. 실제 처리..

    [AWS] 3-Tier-Architecture 구축 #1 - 설계

    [AWS] 3-Tier-Architecture 구축 #1 - 설계

    Django로 만든 프로젝트를 AWS에서 3 Tier Architecture로 구현하는 실습을 해보려고 한다. 먼저 3 Tier Architecture에 대해 알아보자. 3 Tier Architecture란? 애플리케이션을 Web Server, Application Server, Database Server의 3계층 구조로 나누어 운영하는 형태를 의미한다. 계층 설명 - Web Server (프레젠테이션 계층) 사용자가 애플리케이션과 상호작용하는 인터페이스. 일반적으로 HTML, CSS, JS로 작성된 프론트엔드단을 띄우게 된다. - Appliation Server (애플리케이션 계층, AP 계층, WAS 서버) 사용자로부터 요청되는 기능들을 가공하고 처리해주는 계층이다. DB와 상호작용하기도 한다. -..

    [Django] 테스트 코드 작성해보기

    [Django] 테스트 코드 작성해보기

    Django 튜토리얼의 챕터 5가 테스트 작성에 대한 내용이다. '테스트 코드'에 대해 들어는 봤지만 실제로 작성해보기는 처음이기 때문에 왜 필요한지, 어떻게 작성하는지 기록해두고자 한다. https://docs.djangoproject.com/ko/4.2/intro/tutorial05/ Django The web framework for perfectionists with deadlines. docs.djangoproject.com 테스트 코드란? 말 그대로 내가 개발한 것에 대한 테스트를 수행하는 코드이다. 내가 개발한 코드가 원하는 대로 동작을 하더라도, 비정상 상황에 대해 정상인것 처럼 작동한다면 문제가 있는 코드이다. 특히 코드를 수정할 때 기존 코드와 꼬여 예상치 못한 동작을 하게 될 수 있는..

    <FORM> 태그 submit시 confirm 확인하기

    게시판의 글 삭제 시 삭제 버튼을 누르면 confirm창이 뜨면서 재확인하는 작업을 구현하고 싶었다. 삭제 위와 같이 코드를 작성하고 버튼을 클릭하면 confirm에서 뭘 선택했는지 (확인/취소)와 상관없이 무조건 submit이 넘어가는 문제가 발생했다. 잘은 모르겠지만 내가 생각했을 때 1. 버튼 클릭과 동시에 submit이 바로 제출되거나 2. script에서 false를 return 할 때 submit에 대한 false가 일어나지 않음 때문일 것 같다. (혹시 아시는분은 댓글로 알려주시면 감사하겠습니다 :) ) 여튼 열심히 찾아본 결과 태그 내에서 onsubmit을 사용해 해결할 수 있었다. 삭제 처음의 script문은 그냥 지우고 onsubmit을 활용하면 confirm문의 결과에 따라 submi..