Code Monkey home page Code Monkey logo

arcus-board-perf's Introduction

arcus-board-perf

웹 응용 애플리케이션에 ARCUS Cache를 적용했을 때의 성능 개선 효과를 확인하기 위한 웹 게시판입니다.

  • Branches
    • main : MySQL DB만을 사용해서 구현한 웹 게시판
    • cache_[name] : ARCUS Cache를 적용하여 구현한 웹 게시판

게시판 기능

게시판의 기능은 다음과 같습니다.

  • 게시판 조회 (게시글 목록 조회)
  • 게시글 조회, 생성, 수정, 삭제, 추천 증가, 페이징
  • 댓글 조회, 생성, 수정, 삭제, 페이징
  • 홈 - 리더보드
    • 인기 게시판 랭킹 리더보드 (각 게시판 별 게시글 및 댓글 CRUD 요청량 계산)
    • 조회수/추천수 많은 글 랭킹 리더보드
    • 최근 공지사항 리더보드

properties 설정

프로젝트 실행을 위해 properties 파일에 값을 설정해야 합니다.

application.properties

spring.datasource.url = jdbc:mysql://[IP:PORT]/[SCHEMA]?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&allowLoadLocalInfile=true
spring.datasource.username = USER_NAME
spring.datasource.password = PASSWORD

[IP:PORT] - ip : database 연결 주소, port : 포트 번호
[SCHEMA] - 사용할 database schema의 이름
USER_NAME - MySQL 접속 계정 이름
PASSWORD - MySQL 비밀번호

위의 부분에 해당하는 코드를 변경하여 값을 설정해줍니다.

arcus.properties

arcus.address = ADDRESS
arcus.serviceCode = SERVICE_CODE
arcus.poolSize = POOL_SIZE

ADDRESS - arcus admin address
SERVICE_CODE - arcus service code
POOL_SIZE - arcus client pool size

ARCUS 캐시 적용 시에만 설정하는 properties 파일입니다. 마찬가지로 위의 부분에 해당하는 코드를 변경하여 값을 설정해줍니다.

성능 테스트

초기 데이터 저장

먼저, DB에 성능 테스트를 위한 데이터를 저장합니다.

  1. data csv 파일을 다운로드 받아 응용 서버와 같은 위치에 저장합니다.
  2. resetTestData.sql 의 [csv file path] 부분에 저장한 csv 파일의 경로를 넣어 변경합니다.
LOAD DATA LOCAL INFILE '[csv file path]' INTO TABLE ...
  1. 테스트 시작 전, 웹 응용 서버를 구동하고 /test/reset url을 실행하여 DB에 초기 데이터를 저장합니다. 항상 동일한 데이터를 가지고 테스트를 진행해야 하기때문에, 이 과정은 매번 테스트 시 반복적으로 수행하여야 합니다.

성능 테스트

성능테스트의 Client 부하는 JMeter를 이용합니다. Client에서 JMeter Test Plan 파일을 다운로드 받아 실행합니다.

  • 홈 조회
  • 게시판 조회 (게시글 목록 조회)
  • 게시글 조회

위의 3가지 조회 요청에 대한 TPS, Response Time를 확인하여 성능을 측정합니다.

arcus-board-perf's People

Contributors

jhpark816 avatar kohseongyeon avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

kohseongyeon

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.