BackEnd

티켓팅 서비스는 특정 시간에 대량의 트래픽이 몰리는 특성을 가지고 있어, 성능 테스트가 필수적이라 생각했다.  locust는 어떤 동작(Task)으로 서버에 부하를 가할 것인지 python 코드로 커스텀하는 것이 가능하고 재사용성이 높다는 장점이 있기 때문에 채택하게 되었다. locust를 통해 기능 테스트와 부하 테스트를 동시에 진행하였으며, 각 요청들의 평균 응답시간과 초당 요청 횟수(RPS)를 쉽게 살펴볼 수 있었습니다. 대규모 트래픽 테스트의 현실적 한계대규모 트레픽이라 함은, 초당 1,000개의 HTTP요청이 들어오는 경우를 의미한다곤 하지만 현실적으로 테스트를 해보기에는 불가능하다 생각하여, 작게나마 테스트를 진행해보고 문제를 해결해보자 라는 생각으로 접근하였습니다.  그런데 최대 500명으로..
1. 기본 개념@property를 사용하면, 메서드가 속성처럼 작동한다. 즉 값을 읽거나 쓸 때, 추가적인 로직을 실행할 수 있다.이를 사용하면 메서드 호출을 속성처럼 사용할 수 있으며, 캡슐화를 유지하면서도 더 직관적인 코드를 작성할 수 있다. 1-1. 사용하는 이유캡슐화 - 클래스 내부의 변수는 숨기고, 외부에서 간접적으로 접근하도록 허용.데이터 유효성 검증 - 값을 설정하거나 가져올 때, 검증 로직 추가 가능.인터페이스 유지 - 메서드를 속성처럼 보이게하여 직관적으로 사용가능코드의 유지 보수성 - 나중에 속성 접근에 로직을 추가하여도 기존의 인터페이스를 깨지 않음. 1-2. 구성 요소Getter: 속성 값을 가지고 오는 메서드 (@property로 데코레이트)Setter: 속성 값을 설정하는 메서드..
1. 도커 이미지 빌드 및 실행 방법1-1. 도커 이미지 빌드 Docker Compose를 사용하여 이미지를 빌드한다.docker-compose build이 명령어는 Dockerfile을 기반으로 이미지를 빌드하며, docker-compose.yml과 docker-compose.override.yml 파일의 설정이 적용됩니다.  1-2. 컨테이너 실행실행docker-compose up이미지 빌드 후 컨테이너를 실행합니다.-d 옵션을 추가하면 컨테이너가 백그라운드에서 실행 됩니다.실행 확인docker-compose ps컨테이너 상태를 확인하기 위해 ps 명령어를 사용합니다.중지docker-compose down특정 서비스만 실행docker-compose up 특정 서비스만 실행하기 위해서 위 명령어를 사용..
"detail": "CSRF Failed: CSRF token missing or incorrect." "detail": "CSRF Failed: CSRF token missing or incorrect."  Postman으로 API 요청 테스트를 하면서 위에 에러를 마주했다. 에러의 원인은 생각보다 간단했다. CSRFToken!!처음 Django를 시작했을 때 CSRF에 대해서 애를 먹었고, 프론트와 연동하면서 CSRF가 프레임워크마다 다른 이름으로 불린다는 것을 알게 되고 어느 정도 마스터를 했다 생각했는데, 갑자기 CSRF 에러를 마주하니깐 순간 머리가 하얘졌다. 분명 제대로 설정하였고 문제가 되는 부분이 없다고 생각했는데, 과거에는 swagger를 사용하다가 postman으로 테스트를 하니 잘 안..
프로젝트에서 대량의 ListView를 구현해야 할 일이 생겼다. 과거에는 페이지네이션을 사용해 문제를 해결했다. 페이지네이션은 클라이언트가 한 번에 전체 데이터를 요청하는 대신, 필요한 만큼만 나눠서 가져오는 방식이다. 이를 통해 한 번에 처리해야 하는 데이터 양을 줄여서 성능을 개선할 수 있었다. 그러나 최근에 django-debug-toolbar를 알게 되면서 내가 작성한 코드가 성능 면에서 부족하다는 것을 깨달았다. 특히 API 호출과 SQL 쿼리 실행 과정에서 쿼리 수가 많아지는 문제를 발견했다. 이를 해결하기 위해 쿼리 수를 줄이는 방법에 대해 찾아보았다. Django ORM에서 쿼리 개수를 줄이면 성능을 크게 향상할 수 있다는 것을 알게 되었고, ORM 최적화 기법을 사용하면 데이터베이스에 대..
Jong_seoung
'BackEnd' 카테고리의 글 목록