Leisure - Last Dance

백엔드 개발
[성능 테스트] Jmeter로 시나리오 테스트 작성하기
0. 들어가며...현재 구인 구직 서비스의 서버를 만들며, 다음과 같이 구현한 상태이다. 일 (job)과 회원 (member)는 매칭(matching)이란 교차 테이블을 두고, 서로 관계를 맺고 있기에, 연관이 있는 회원은 일과 하나의 상태를 가진다.위의 의뢰인은 일의 주인이다. 따라서 상태는 OWNER만 가진다. 반면 해결사는 자신의 현재 단계에 따라 다른 상태를 가진다. 신청만 했거나 의뢰인에게 선 의뢰를 받은 상태라면, ATTENDER나 REQUEST를 가지고, 의뢰인에게 해결 요청을 승낙 혹은 거절 받거나 혹은 해결사가 선의뢰를 승낙 혹은 거절한 상태이면, YES 혹은 NO라는 상태를 가진다.START는 일을 진짜 시작해야만 가지는 상태이며, SLEEP은 해결사가 일 해결에서 노쇼한 경우 의뢰인이..

백엔드 개발
[성능 테스트] 대량의 유저 동접을 위한 JWT 토큰 추출 및 수집기 구현
0. 들어가며...현재 진행하고 있는 구름 PROTECT에서 구현한 API에 대한 성능테스트를 하고 있다. 필자는 진정한 대량의 성능 테스트를 위해서는 매번 다른 JWT 토큰 값이 Header에 담겨야 한다고 생각했다. 이유는 다음과 같다.실제와 같은 환경을 최대한 구현할 수 있다. 실제 서비스에서도, 다른 사용자는 한 명도 사용하지 않는데, 한 사람만 요청을 5만 번 하는 경우는 극히 드물 것이다. 한 사람이 매번 같은 요청을 할 경우, DB 캐싱과 서버 캐싱으로 해당 내용이 메모리에 저장될 것이므로, 진정한 서버의 성능을 볼 수 없을 것이라 판단했다.따라서 여러 명이 서비스를 각자 사용하고 있는 것을 흉내내고자 HEADER의 Authorization에 매 번 다른 토큰 값을 넣었다.1. 토큰 생성 ..

네크워크
[네트워크] WEB-SOCKET 연결 과정에 대해 설명해주세요!
🧐 WEB-SOCKET 연결 과정에 대해 설명해주세요!KEY WORD: HTTP 1.1에서만 업그레이드 가능, STATE-LESS 에서 STATE-FULL 로, HEART-BEAT로 연결 지속!🙋🏻♂️ 면접 1분 대답 !WebSocket은 Http1.1에서만 업그레이드가 가능한 프로토콜로, 기존의 state-less한 http 요청 응답 패턴에서, heart-beat를 활용한 state-full 한 상태로 서버-클라이언트 연결을 변환합니다. 크게 다음의 3가지 과정으로 Web-Socket 연결이 이루어 집니다.클라이언트가 Header에 Upgrade: Websocket Attribute를 담아 연결을 요청합니다.서버가 Header에 Http/1.1 101 Switching Protocol을 보내,..

백엔드 개발
[TROUBLE SHOOTING] 2000이상의 부하지속 시 발생하는 Socket-Exception 에러 해결
0. 환경 설정Threads 수 3000에 ramp-up 수 1을 1분 지속으로 테스트를 설정하고 헬스 체크 API에 적용하니 밑과 같은 에러를 만났습니다.java.net.SocketException: Connection reset at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:328) at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:355) at java.base/sun.nio.ch.NioSocketImplSocketInputStream.re..

계획 & 회고
[PM] PARA를 적용한 노션 계획표 2달 후기와 개선 방안
✒ 설명(0) 들어가며...평소 노션을 활용하여 계획표를 작성하는데, 노션이 관계형 DB를 지원하는 이점을 살려, 다음과 같은 연관 관계로 계획표 기획하여 관리하였습니다.위의 계획법은 티아고 포르테의 The PARA Method에 착안하여, 작성한 노션 ERD 입니다. PARA 방식을 모르는 분들을 위해 설명하면, 모든 계획을 4가지 원칙에 따라 관리하는 것입니다.PARA 원칙첫째, 관심사 영역 분리 - 저희들의 삶에는 기간이 정해지지 않고 평생에 걸쳐 책임을 져야 하는 영역이 존재하고, 책임은 지지 않고, 지식이나 취미를 탐구해도 되는 영역이 존재합니다. 이것을 각각 책임의 영역, 관심의 영역 으로 분류 합니다. AREA의 영역둘째, 위와 같이 분리된 각 영역에 도움이 되는 아이디어, 래퍼런스, 주변인..
인기 글 리스트
문제 풀이
[백준] 11003 최소값 찾기 java 풀이 (그림으로 쉬운 설명 ^^)

1. 문제 설명 📌문제 링크슬라이딩 윈도우에서 더 나아가서, 윈도우 구간안에 최소값을 매번 출력하는 문제이다.2. 접근 방식 🗃️KEY WORD: Sliding Window, Data Structure (Deque)파이썬에서는 추가시간이 주어줘서 우선순위 큐를 이용해도 풀리지만, Java에서는 풀리지 않는다. 왜 우선순위 큐로는 안되는지에 대해 4번 항목에서 설명하겠다.(1) 전체 접근 방식ArrayDeque로 슬라이딩 윈도우를 구현한다.(해당 deque는 현재 구간인 값들만 가지고 있으며, 오름차순으로 값의 순서를 유지한다. (front = 최소값))슬라이딩 윈도우를 오른쪽으로 한 칸씩 움직인다.구간에 신규로 추가될 값을 A라고 쳤을 때, A와 deque의 rear(꼬리)를 비교한다rear > A:..
2024.12.21
문제 풀이
[프로그래머스] Lv2 퍼즐게임챌린지 java 이해하기 쉬운 풀이!

1. 문제 설명 📌문제 링크1번 퍼즐사용자의 레벨이 1이라 했을 때, 첫 번째 퍼즐은 사용자의 레벨 >= 퍼즐의 난이도 조건에 부합함으로 시간을 3분 드려서 퍼즐을 완료한다.2번 퍼즐사용자의 레벨 퍼즐의 난이도 이다.이 경우 문제의 요구조건처럼 직전 퍼즐을 (퍼즐의 난이도 - 사용자의 레벨) 만큼 다시 풀어야 한다. 그래서 2번 퍼즐을 푸는데는 1*3+4 = 7분의 시간이 든다.3번 퍼즐이것도 마찬가지로 사용자의 레벨 퍼즐의 난이도 임으로 (퍼즐의 난이도 - 사용자의 레벨)*4 + 2 = 10분 이 든다.따라서, 사용자의 레벨이 1이면 모든 문제를 푸는데 총 20분이 소요된다.문제에서는 limit 이라는 제한시간이 주어진다.제한 시간 안에 퍼즐을 다 풀 수 있는 최소 레벨이 몇인지 구하여라2. 접근 방..
2024.10.14
문제 풀이
항해 99 코테 스터디 5기 8일차 + [프로그래머스] Lv3 양과 늑대 java 풀이

1. 문제 설명📌(1) 링크🔗 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr (2) 주목 포인트 🕵1️⃣ 늑대 >= 양 이면 모았던 양의 개수가 0이 된다!2️⃣ 현재 특정한 서브 트리를 방문 중이라 가정할 때, 해당 트리에서 최대 이익을 이미 냈다고 확신한다면, 조상 노드를 거슬러 올라가 다른 서브 트리를 파고 드는 것이 가능하다.2. 생각의 흐름: 코드가 나오기까지 🗃️(1) IDEA 도출💡KEY WORD: BACK-TRACKING, DFS해설에서 설명한 2️⃣번째 포인트 때문에, 이번 문제는 BACK-TRACKING에 가깝게 변형된 DFS를 사용해야 한다. 깊이 우선 탐색을 하는 성질은..
10주 전
백엔드 개발
[성능 테스트] Jmeter로 시나리오 테스트 작성하기

0. 들어가며...현재 구인 구직 서비스의 서버를 만들며, 다음과 같이 구현한 상태이다. 일 (job)과 회원 (member)는 매칭(matching)이란 교차 테이블을 두고, 서로 관계를 맺고 있기에, 연관이 있는 회원은 일과 하나의 상태를 가진다.위의 의뢰인은 일의 주인이다. 따라서 상태는 OWNER만 가진다. 반면 해결사는 자신의 현재 단계에 따라 다른 상태를 가진다. 신청만 했거나 의뢰인에게 선 의뢰를 받은 상태라면, ATTENDER나 REQUEST를 가지고, 의뢰인에게 해결 요청을 승낙 혹은 거절 받거나 혹은 해결사가 선의뢰를 승낙 혹은 거절한 상태이면, YES 혹은 NO라는 상태를 가진다.START는 일을 진짜 시작해야만 가지는 상태이며, SLEEP은 해결사가 일 해결에서 노쇼한 경우 의뢰인이..
1주 전
계획 & 회고
[PM] PARA를 적용한 노션 계획표 2달 후기와 개선 방안

✒ 설명(0) 들어가며...평소 노션을 활용하여 계획표를 작성하는데, 노션이 관계형 DB를 지원하는 이점을 살려, 다음과 같은 연관 관계로 계획표 기획하여 관리하였습니다.위의 계획법은 티아고 포르테의 The PARA Method에 착안하여, 작성한 노션 ERD 입니다. PARA 방식을 모르는 분들을 위해 설명하면, 모든 계획을 4가지 원칙에 따라 관리하는 것입니다.PARA 원칙첫째, 관심사 영역 분리 - 저희들의 삶에는 기간이 정해지지 않고 평생에 걸쳐 책임을 져야 하는 영역이 존재하고, 책임은 지지 않고, 지식이나 취미를 탐구해도 되는 영역이 존재합니다. 이것을 각각 책임의 영역, 관심의 영역 으로 분류 합니다. AREA의 영역둘째, 위와 같이 분리된 각 영역에 도움이 되는 아이디어, 래퍼런스, 주변인..
1주 전
2025
06
11
D-day
생일까지
68일!
#Review