목록웹개발 (23)
세상에 나쁜 코드는 없다
개요함께 만들어나가는 지식의 별자리, Stelligence 는 구름톤 트레이닝 파이널 프로젝트에서 수행한 사용자 참여형 그래프 기반 지식 공유 애플리케이션입니다. 저는 백엔드 팀장으로 이 프로젝트에 참여했습니다.사이트 주소 http://www.stelligence.sitewww.stelligence.sitegithub GitHub - Eagle-Strike-7/stelligence-backend: 지식을 별처럼 연결해 탐색하는 사용자 참여형 지식 공유 플랫지식을 별처럼 연결해 탐색하는 사용자 참여형 지식 공유 플랫폼, stelligence 백엔드 - Eagle-Strike-7/stelligence-backendgithub.com프로젝트 소개저희 프로젝트의 목표는 정보 검색의 새로운 패러다임과 함께 사용자..
알림을 잘 보내보자요구사항문제점saveAll 호출 시 왜 엔티티 개수만큼의 쿼리가 발생하나?벌크성 삽입의 도입결함률을 줄이기 위한 방법 도입연관관계 매핑, 꼭 해야할까요?Notification - Member FK 연결을 하지 않는다면알림을 잘 보내보자요구사항현재 진행중인 프로젝트의 기능 중에는 특정 안건에 대해 투표를 받는 기능이 있습니다. 투표가 종료되는 순간 그 결과를 담은 알림을 모든 투표자들에게 보내야하며, 알림 정보는 DB에 저장되어야 합니다. 알림 테이블이 필요로 하는 정보는 아래와 같습니다.문제점일반적으로 JPA를 사용하여 DB에 정보를 저장하는 방법은 엔티티 객체를 만들고 영속화 메서드를 호출하는 것입니다.Notification noti = new Notification(); em.per..
개요주요 기능아키텍처도커 컨테이너를 통한 컴파일과 실행컴파일실행터미널 기능을 제공하려면ECSEFS컨테이너의 실행 출력구현 포인트프로젝트프로젝트 생성프로젝트와 컨테이너프로젝트 입장 로직컨테이너의 종료터미널터미널 처럼 동작하는 프론트엔드 컴포넌트ECS Exec명령어의 가공출력값 전달파일 및 디렉터리 관리EFS사용자의 파일 조작사용자 간 디렉터리 동기화데모 영상마무리개요구름톤 트레이닝에서 12월 약 한달 간 수행했던 프로젝트인 "ChatGPT와 함께하는 Web IDE" 프로젝트를 소개합니다.저는 백엔드 4명, 프론트엔드 3명으로 구성된 팀에서 백엔드 개발자이자 팀장으로서 프로젝트를 리드했습니다. https://github.com/The-Great-Sign/IDE-Project-backend주요 기능기본적으로는..
🔗대규모 데이터를 처리하는 게시판 시리즈 (1) - 웹애플리케이션 개발 및 더미데이터 생성 (2) - JMeter와 테스트플랜 생성, 최초 성능 테스트 (3) - Index(1) (4) - Index(2) (4) - DB Connection (5) - InnoDB Buffer Pool (6) - Replication, Partitioning성능 개선 지점 : Connection PoolResource PoolingDBCP와 성능 trade-offConnection Pool의 개수는 어떻게 설정해야하는가?새로운 테스트 방법성능 테스트의 종류어떻게 테스트할 것인가테스트 수행Connection Pool 개수 설정하는 법테스트 결과Connection Pool 개수 결정성능 개선 지점 : Connection Po..
🔗대규모 데이터를 처리하는 게시판 시리즈 (1) - 웹애플리케이션 개발 및 더미데이터 생성 (2) - JMeter와 테스트플랜 생성, 최초 성능 테스트 (3) - Index(1) (4) - Index(2) (4) - DB Connection (5) - InnoDB Buffer Pool (6) - Replication, Partitioning인덱싱Title Index 설정결과Full-Text SearchFull-Text Index 생성Repository 수정결과Backward Index Scan 문제 해결근본적인 원인은 OFFSET커서 기반 페이징애플리케이션 레벨에서 수행되는 쿼리를 바꿔보자구현결과인덱싱이전 글에서 애플리케이션에서 발생하는 쿼리들을 분석한 결과, 크게 2가지의 문제점이 있었습니다.Backw..
🔗대규모 데이터를 처리하는 게시판 시리즈 (1) - 웹애플리케이션 개발 및 더미데이터 생성 (2) - JMeter와 테스트플랜 생성, 최초 성능 테스트 (3) - Index(1) (4) - Index(2) (4) - DB Connection (5) - InnoDB Buffer Pool (6) - Replication, Partitioning성능 개선 지점 : DB와 쿼리암달의 법칙IndexOptimizer와 힌트슬로우 쿼리 확인RDS 설정쿼리 속도 확인쿼리 분석게시판 페이지 조회시 발생하는 쿼리Article count 쿼리개별 글 조회 쿼리게시판 글 검색 시 발생하는 쿼리Article Search의 페이징을 위한 쿼리성능 개선 지점 : DB와 쿼리암달의 법칙암달의 법칙을 통해 시스템에서 우선적으로 개선해..