본문 바로가기

전체 글

(107)
[DB] Exposed 사용해보기 Exposed란?Kotlin용 ORM 프레임워크이자 JDBC 드라이버를 사용하는 경량 SQL 라이브러리. Kotlin DSL을 활용하여 SQL을 보다 직관적으로 작성할 수 있으며, DAO 방식도 지원하여 객체지향적인 데이터 접근이 가능합니다.지원 데이터베이스MariaDBMySQLOraclePostgresMicrosoft SQLSQLITEH2 (versions 2.x; 1.x version은 deprecated 예정)(Also, PostgreSQL using the pgjdbc-ng JDBC driver)Exposed 모듈exposed-core - 기본 모듈로, DSL API와 매핑 기능을 포함exposed-crypt - 암호화된 데이터를 데이터베이스에 저장할 수 있도록 추가 컬럼 타입을 제공하며, 클라이..
[Web] 성능테스트에 대하여(with K6) 최근에 K6를 사용한 부하테스트를 진행한 경험이 있었습니다. 진행하면서 알게된 사실들을 정리해보려 합니다. 주요 용어Response Time - 응답시간사용자의 요청(Request)이 발생하고 시스템이 응답(Response) 할때 까지의 시간 Request Interval - 요청주기(Think time)사용자가 시스템에 방문 후 요청을 발생 시키는 주기 Throughput - 처리량 시스템이 주어진 시간 동안 처리할 수 있는 작업의 양을 측정하는 중요한 성능 지표단위는 tps, pps, rps, hit/sec 등등이 있다. Saturation Point - 임계점시스템이 처리할 수 있는 최대 성능에 도달했을 때를 나타내는 지점부하 테스트에서 임계점을 파악하는 것은 시스템의 한계를 이해하고 최적의 성능 ..
[Web] gRPC 사용해보기 개요gRPC는 위에서의 설명과 같이 모든 환경에서 실행할 수 있는 고성능 RPC(원격 프로시저 호출) 프레임워크입니다. 구글에서 개발해서 g를 접두사로 붙였습니다. 원격 프로시저 호출이라는 의미는 다른 서버의 함수(프로시저)를 내 서버에서 실행할 수 있다는 의미이고 gRPC는 이를 지원하는 프레임워크입니다.장점HTTP/2와 Protobuf 등을 사용하여 빠르고 효율적인 통신. 특히 대용량 데이터 전송 시 이점이 있음서버와 클라이언트의 양방향 스트리밍을 지원하여 실시간 데이터 처리에 용이거의 모든 환경에서 사용 가능단점디버깅이 어려움(Protobuf는 바이너리 방식)기본적인 브라우저 환경에서는 사용이 어려움. 추가적인 라이브러리 필요.예시(Server)이 글에서는 자주 사용하는 Web 서버의 상황을 예를 ..