| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 화자분할
- 분산락
- 정렬
- 카드 정렬하기
- 우선순위큐
- 가운데를 말해요
- cursor 기반 페이지네이션
- soft delete
- Java
- 화자식별
- K6
- 무중단 배포
- 최소힙
- 백준
- cp-abe
- 화자검증
- GPT4-V
- bastion host
- JPA
- 부하테스트
- 최대힙
- SpringBoot
- 테스트 커버리지
- 오프체인
- 백엔드
- SHA-3
- 컨트롤 URI
- 배스천 호스트
- 서버
- 논리삭제
- Today
- Total
목록전체 글 (25)
아직 미정입니다
게시글 중 전문가 칼럼이라는 게시글 타입이 있다. 홈 화면에서 해당 칼럼을 인기(좋아요)순으로 6개 조회하는 API가 있어 이 부분도 Redis Cache를 도입하여 리팩토링 하려 한다.Hibernate: /* select post from Post post inner join fetch post.board as board left join post.postlikes as likeCount where board.postType = ?1 and ( post.id = ?2 or post.id ?3 ) group by ..
이 전 게시글에서 테스트 시나리오를 조금 구체적으로 작성했는데, 아무래도 부하테스트 및 모니터링을 해보는게 처음이라 일단은 아래 실험 지표들의 결과들을 확인해보려 한다. 실험 지표1. 에러율 (http_req_failed)의미: 전체 요청 중 실패 비율목표: 1)해석: 이 값이 1%를 넘으면 해당 단계가 최대 용량2. 응답 시간 (http_req_duration)p(95): 95%의 요청이 이 시간 이내 완료p(99): 99%의 요청이 이 시간 이내 완료목표: p(95) 해석: p(95)가 2초를 넘으면 성능 저하로 판단3. 처리량 (http_reqs)의미: 초당 요청 수 (RPS)해석: 사용자 수 증가에 비례하여 증가하는지 확인4. 동시 사용자 수 (vus)의미: 현재 활성 가상 사용자 수해석: 각 ..
안녕하세요? 아무도 안 읽겠지만 2025년은 굉장히 많은 일들이 있었던 해 이기 때문에 회고록을 써보려 합니다.회고록을 가장한 그냥 일기 입니다ㅎㅎㅎㅎ 1월1월 초에 캡스톤 첫 회의를 진행했습니다. 처음에는 교내 경진대회 같이 나간 팀원들 2명이랑 팀을 꾸려서 3명이었다가, 다른 프로젝트 같이 했던 팀원+그 팀원의 지인까지 해서 5명이 됐습니다!교내 경진대회 지도해 주셨던 교수님께 컨택을 남겼는데, 매우 긍정적인 응답 후 미팅을 진행했습니다.그 이후로, 학부연구생이 되어.. 한 해를 보냈습니다. 1월에는 기획&개발 없이 주제 정하는데 시간을 많이 썼습니다.그리고 UMC 프로젝트를 진행했습니다! 사실 이게 순서가 먼저네요. 저는 어쩌다 보니.. 백엔드 팀장+배포를 맡게 되었습니다.. 저는 낯가림+극 I+팀..
개요백엔드 개발자를 희망하면서, 지금까지 부하테스트를 진행해 본 경험이 없었다. 프로젝트에서 주로 백엔드 + CI/CD + 인프라 구성을 맡았었기 때문에.. 1년 전에 진행했던 프로젝트를 리팩터링 하면서 부하테스트를 진행해 보려고 한다.새 프로젝트가 아닌, 이미 종료된 프로젝트로 진행하는 이유는1. 부하테스트 + 리팩토링이 목적이기 때문에 새 프로젝트를 구성하기 위한 ERD, API 명세서, 기능 등을 기획하기에 시간이 많이 들거라고 예상2. 해당 프로젝트에서 Redis 검색, 채팅 등의 기능을 구현했었기 때문에 성능적으로 리팩토링 할 부분이 많다고 생각했다.이러한 이유로 기존에 종료된 프로젝트를 GitHub Organization -> 개인 프로젝트로 이동 후 테스트를 진행해 보려고 한다.실험 환경Do..
문장 커버리지 (Statement Coverage)프로그램의 모든 문장이 최소 1회 이상 실행되었는지를 측정함. → 코드의 실행 여부를 가장 단순하게 확인하는 방법if문, 반복문 내부의 모든 문장이 한 번이라도 수행되었는가?분기 커버리지 (Branch Coverage)프로그램의 모든 분기(조건의 참/거짓 경로)가 최소 1회 이상 수행되었는지 측정함. → 제어 흐름의 모든 가능한 분기 경로를 테스트if (x > 0) 문에서 true/false 두 경로 모두 실행되었는가?조건 커버리지 (Condition Coverage)분기 내의 각 개별 조건식이 true/false를 모두 경험했는지를 확인함. → 복합 조건에서도 각 부분 조건을 독립적으로 검증if (A && B) → A, B 각각이 true/false를 ..
결합도는 약하게, 응집도는 강하게 설정해야 함결합도자스제외공내모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관관계 자료 Data 결합도: 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도스탬프 Stamp 결합도: 모듈 간의 인터페이스로 배열이나 레코드 등의 자료구조가 전달될 때의 결합도제어 Control 결합도: 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신뢰를 통신하거나 제어 요소 flag를 전달하는 결합도외부 external 결합도: 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도공유 common 결합도: 공유되는 공통 데이터 영역(전역변수)을 여러 모듈이 사용할 때의 결합도내용 content 결합도: 한 모듈이 다른 모듈의 내부 기..
자율주행 연구로 인하여 팀원들과 논문 스터디를 진행했다. 해당 논문은 GPT-4V가 자율주행 연구에 얼마나 효과적인지를 분석한 것으로, 이미지와 프롬프트를 함께 입력해 응답을 평가하는 방식으로 진행되었다. 2023년에 발표된 논문으로, 현재는 LLM의 성능이 훨씬 향상되었을 것으로 생각한다.개인적으로는 LLM이 가진 할루시네이션(환각) 문제와 응답 속도 한계로 인해, 실제 주행 제어처럼 안전과 직결되는 영역에 즉시 적용하기는 어렵다고 생각한다. 다만 학습 데이터 생성이나 모델 훈련 보조 등의 연구용으로는 충분히 활용 가치가 있다고 생각한다. 교수님께 들은 이야기로는 자율주행 차량에서는 응답 지연 문제로 외부 API 호출이 금지되어 있어, 이를 어떻게 시스템 내부에서 통합할 수 있을지에 대한 추가적인 고민..
매우 무식하게도 제가 지금까지 배포해왔던 방식은.. 그렇습니다.. 설명은 생략하겠습니다.. 나는 진짜 CI/CD 맡고 싶지 않았어 구분내용롤링 배포(Rolling Deployment)배포할 애플리케이션의 인스턴스를 순차적으로 업데이트하여 전체 시스템의 일부만 동시에 업데이트됩니다. 이를 통해 서비스 중단 없이 배포가 가능합니다.블루-그린 배포(Blue-Green Deployment)두 개의 동일한 환경(블루와 그린)을 준비하여 한 쪽(블루)이 현재 프로덕션 환경이고, 다른 쪽(그린)에 새로운 버전을 배포합니다. 그린 환경에서 테스트가 완료되면 트래픽을 블루에서 그린으로 전환합니다.카나 배포(Canary Deployment)새로운 버전을 소수의 사용자에게만 배포하여 문제 여부를 확인한 후, 점차 더 많은 ..