spring boot 사이드 프로젝트 : 테스트 시나리오를 세우고 jmeter를 통해 부하 테스트 해보기

프로젝트를 배포, 운영해보면서 내 프로젝트에 어디서 병목 현상이 발생하는지, 트래픽은 어느 정도까지 감당할 수 있는지 확인이 필요한 경우를 공부한 과정입니다. 테스트하는 프로젝트는 sns 사이드 프로젝트로, 간단히 포스팅을 쓰고, 댓글 및 좋아요가 가능한 기본적인 커뮤니티입니다. 테스트는 다음과 같이 시나리오를 설정하고, 진행했습니다. 테스트 시나리오 구성 근거 실제로 클라우드에 배포하는 건 돈 때문에ㅜㅜ 제 컴퓨터 스펙의 서버를 기준으로 잡고 일단 테스트 기준을 세웠습니다. 1. 서버 스펙 제 컴퓨터 스펙은 다음과 같습니다. cpu : AMD Ryzen 5 3500X 6-Core Processor 3.59 GHz (6코어 입니다.)메모리 : 16GBdisk : sdd 500GB 2. ..

개인 프로젝트 2025.02.20 0

[ 프로그래머스 lv 2 ] 2개 이하로 다른 비트 (c++)

문제 풀이 처음에 생각한 풀이방법은 xor 비트 연산을 이용하는 것이었다. 문제 예시로 7과 8 사이의 다른 비트 개수를 셀 때 xor를 사용하면 4개라는 사실을 쉽게 알 수 있었기에 그런 생각이 들었다. 문제는 xor을 이용해서 numbers[i]보다 큰 수들을 차례로 찾아가니 시간 초과가 발생했다. 문제에서 numbers의 최대 원소 크기는 10의 15승으로, 반복문을 30번 정도로 설정해도 한 번 xor 비트 연산 시 꽤 많이 비교하는 작업이 발생했다. 이 때문에 numbers의 길이 100000 x 반복문 대략 50번 (bit를 1씩 왼쪽 쉬프트 연산하며 1 개수를 셈) x 내부에서 비트 연산 횟수 (xor 연산하는데 걸리는 시간) 을 계산하면 1억을 넘어가게 되었다... 그래서 다른 방법을 찾아..

프로그래머스 2023.11.28 0

외부에서 spring boot 서버에 접속 해보기(접속 안 될 때 이슈, sk 브로드밴드 포트포워딩)

프로젝트를 진행하던 중, 프론트 팀원으로부터 한 번 열린 서버를 통해 테스트해보려 한다는 이야기를 듣고 외부에서 접속을 위한 준비를 했다. 포트포워딩을 하는 과정과, 그 과정에서 발생한 이슈들을 이야기 하려한다. 내 로컬 컴퓨터에서 실행되는 애플리케이션 서버에 접속하기 위해서는 당연히 내 컴퓨터의 주소를 알아야 할 것이고, 주소를 알고 pc로 찾아왔다면 그 다음에는 spring이 실행 중인 애플리케이션 포트 위치를 알아야 할 것이다. 먼저 아이피 확인을 위해 cmd창을 켜 ipconfig/all을 입력했다. ipv4 부분을 내 컴퓨터가 할당받은 내부 ip로, 이를 이용해 포트포워딩을 진행하려 한다. 우리집 공유기는 sk 브로드밴드를 사용하고 있다. 포트포워딩을 위해 기본 게이트 웨이 ip를 이용해 브라우..

spring boot 2023.08.11 0

spring boot : entity <-> dto 변환 방법에 대한 고민( MapStruct 에 대해)

개요프로젝트를 진행하며 여러 layer사이에 데이터를 전달할 때, dto, entity 간 변경이 자주 일어나는 상황에 변환하는 코드를 일일이 적어넣는 것이 불편했습니다.   예시로 보면, member  한 명을 생성하는 post api는 다음처럼 작성되어 있었습니다.  @Controller@RequiredArgsConstructorclass MemberController { private final MemberService memberService; @PostMapping() public Member createMember(@RequestBody MemberDto memberDto){ //dto 사용 Member member = memberService.createM..

spring boot 2024.10.09 0

spring boot 사이드 프로젝트 : 채팅기능을 위한 stomp 적용

프로젝트의 요구사항 중 같은 프로젝트에 소속되어있는 인원들끼리 이용할 수 있는 채팅방을 구현해야하는 요구사항이 있었다. 이를 구현해보기 위해 공부한 내용을 정리한다.  rest api 를 사용한 프로젝트에서 채팅은 http를 이용해서 구현할 수 있을까? 가능은 해도 매우 비효율적일 것이다. 이는 http의 특성을 보면 알 수 있다. 1.  클라이언트 - 서버 구조 : 서버에서는 클라이언트의 요청이 와야 응답을 한다. 그 전까지 서버는 대기한다. 2. stateless  :  http를 이용해 클라이언트에서 서버로 한 번 요청과 응답을 주고 받았어도, 서버에서는 http 요청했던 클라이언트의 상태를 저장하지 않는다. 3. connectionless : 한 번 요청 후 응답을 받으면 클라이언트와 서버 간 연..

개인 프로젝트 2024.02.20 0