본문 바로가기

분류 전체보기

(177)
[230817] Header에서 Authorization 추출이 안되는 안되는 문제 Header에 담겨있는 토큰이 추출 안 되는 문제 💬 Front에서 Header에 담겨 있는 토큰 값을 추출할 수 없다고 했습니다. 요청에 대한 응답에는 담겨 있었지만, React에서 추출하려고 하면 문제가 되는 것이었습니다. ✔ 원인 💬 Front에서 Cookies, Authorization headers, TLS Client Certificates 같은 자격증명을 위해 사용하는 withCredential 옵션을 True 사용해서 요청을 보내고 있었습니다. 이 옵션이 활성화되어 있는 경우 Access-Control-Allow-Origin에는 와일드 카드(*)을 사용하지 못합니다. ✔ 해결 💬 해결 방법은 두 가지라고 MDN에서 설명을 해주고 있었습니다. 첫 번째는 Front에서 withCredentia..
[230816] Jmeter 아이디어 업데이트 성능 테스트 수정 테스트 💬 성능 테스트 기준이 되는 트래픽과 지표를 가지고 수정 기능을 Jmeter를 통해서 테스트 해보기로 했습니다. ✔ multipart/form-data 적용 💬 수정 기능에는 이미지 파일도 같이 전송이 되어야 했기 때문에 multipart/form-data을 사용했습니다. ➡ HTTP Request에서 Use multipart/form-data 체크 ➡ Parameters에 Json으로 전달할 데이터 입력 ➡ File Upload에 전송할 파일 정보 입력 1. Use multipart/fomr-data 체크 & Json 데이터 입력 2. 전송 파일 정보 입력 ✔ 아이디어 ID와 권한 있는 JWT 토큰 적용 💬 아이디어 ID와 권한 있는 JWT 토큰 데이터는 삭제 테스트를 할 때 만들어진 CS..
[230815] Jmeter 아이디어 삭제 기능 테스트 삭제 테스트 💬 성능 테스트 기준이 되는 트래픽과 지표를 가지고 삭제 기능을 Jmeter를 통해서 테스트 해보기로 했습니다. ✔ 랜덤 아이디 부여 💢 삭제 테스트의 경우 하나의 아이디어를 지우면 다음 요청부터 아이디어가 존재하지 않는 문제가 발생합니다. ✅ Jmeter에서 제공하는 Random Variable을 사용했습니다. 정해진 범위 안에서 랜덤 한 값을 제공해 주기 때문에 요건에 충족했습니다. ✔ 유저 부여 💢 랜덤 하게 정해진 아이디어를 사용할 경우, 하나의 유저만 사용하면 아이디어의 권한이 없는 요청을 하는 문제가 발생합니다. 💬 유저 정보는 JWT 토큰에 담겨있기 때문에 각 아이디어 삭제 권한이 있는 JWT 토큰을 제공하면 됩니다. ✅ 아이디어 권한이 있는 유저 정보와 JWT 토큰을 만드는 부..
[230814] 성능 테스트 어떻게 진행할것인가? 성능 테스트 진행 방식 💬 성능 테스트를 할 수 있는 방법이 여러 가지 있지만, 프로젝트에 적용할 수 있는 것은 성능, 부하 테스트라고 판단했다. ✔ 성능테스트 💬 성능 테스트는 소프트웨어의 애플리케이션의 속도, 응답 시간, 안정성, 확장성 및 리소스 사용량을 테스트하는 데 사용됩니다. 주목적은 애플리케이션의 성능상 문제가 되는 곳을 확인하고 향상하는 것입니다. ✔ 성능테스트 기준 - 트래픽 💬 일반적인 트래픽과 한 순간에 몰리는 트래픽을 구분하기로 했습니다. 일반적인 트래픽은 전체적인 API가 서비스 운영에 있어 성능적인 문제가 없는지 확인하기 위해서입니다.. 한 순간에 몰리는 트래픽은 프로젝트의 주 콘텐츠인 경매이기에 성능을 확인하고 그러한 상황을 대비하기 위해 테스트를 하는 것입니다. 1. 일반적인..
[230813] Jmeter 설치 및 사용해보기 Jmeter 💬 성능 테스를 하기 이전에 Jmeter를 설치를 하고 익숙해지는 시간을 가져보기로 했다. ✔ Jmeter 설치하기 brew install jmeter ✔ Jmeter 실행하기 open /opt/homebrew/bin/Jmeter ✔ Jmeter Plugin Manager 설치하기 1. plugin-manager.jar 설치 ➡ https://jmeter-plugins.org/install/Install/ 2. 설치 파일 bin 폴더 열고 넣기 ➡ open /opt/homebrew/bin ✔ Jmeter Plugin 설치 💬 유용하다는 Plugin 몇 가지 설치 ➡ 3 Basic Graphs ➡ Composite Timeline Graph ➡ jpgc - Standard Set ✔ Jmete..
[ 230813 ] 35주차 회고 일주일 간 진행한 내용 1. 알림 기능 개발 2. 더미 데이터 생성 3. 성능 테스트 툴 선정 알림 기능 개발 [진행] 알림 기능을 위해 실시간 통신에 대해 알아보았다. Polling, SSE(Sever Sent Events), WebSocket에 대해서 알아보고 비교를 했다. 각각의 장단점과 내가 구현할 기능의 특징을 고려하여 SSE을 선택하게 되었다. SSE를 사용해 기능을 구현을 하고 테스트를 했다. 이후에 SSE를 사용하는 기능이 실시간 입찰 조회가 있어서 코드를 합치는 과정에서 문제가 있다는 것을 알았다. 그래서 실시간 입찰 조회 맡은 팀원과 이야기하여 SSE 클래스를 하나 만들어 사용하기로 하며, 문제를 해결할 수 있는 코드를 작성했다. [생각] 공통된 부분의 코드는 사전 협의를 해서 작성을..
[230812] 성능 테스트 툴 선정 성능 테스트 툴 선정 💬 성능 테스트 툴을 정하기 위해 우리에게 필요한 기준을 정했다. ➡ GUI가 제공이 되는가? 이유 : 테스트하는 것이 직관적이고 이해하기 쉽기 때문이다. ➡ 우리가 사용한 프로토콜(HTTP, WebSocket)을 지원하는가? ➡ 간단하게 설정을 할 수 있으며, 러닝 커브는 낮은가? 이유 : 주어진 시간이 많지 않은 상황에서 성능 향상에 많은 시간을 투자하기 위해 빠른 성능 테스트가 필요하다고 판단했다. ➡ 참고할 수 있는 레퍼런스가 많은가? 이유 : 트러블이나 설정 등에 대한 참고할만한 문서가 많다면 문제 발생 시 빠르게 해결할 수 있다. ➡ 비용이 들지 않는가? 이유 : 서버 비용으로 많은 돈이 지출될 것이기 때문에 성능 테스트 도구에 투자할 여유가 없다고 판단했다. ➡ 애플리케..
[230811] Java Faker로 더미 데이터 생성 데이터 생성 방법 고민 💬 MVP 기능을 모두 구현한 이후에 성능 테스트를 진행하기로 했다. 성능 테스트를 위해서 먼저 데이터를 모으기로 했다. 💢 아이디어 경매 데이터를 모으는 것은 어려웠다. 찾아보니 부동산, 법원 경매 등을 데이터 밖에 없었다. 💬 실제 서비스를 하기 위해서 만들어진 프로젝트가 아니라는 점이 다른 관점에서 접근하도록 만들었다. 연관이 없더라도 DB 스키마에 맞추어서 대량의 데이터를 넣어 성능을 테스트 해 볼 수 있겠다고 판단했다. 💢 더미 데이터를 만들어주는 사이트가 있어 사용하려고 했다. 하지만 유료가 아니면 만들 수 있는 건수는 1,000건 밖에 되지 않았다. 그 이상의 데이터가 필요한데 말이다. ✅ 찾아보니 Java로 더미 데이터를 만들 수 있는 Java Faker가 있다는 것..