분류 전체보기 (187) 썸네일형 리스트형 프로젝트 코드 분석 Spring Web Game Project Code Review Controller package com.service.indianfrog.domain.game.controller; import com.service.indianfrog.domain.game.dto.GameBetting; import com.service.indianfrog.domain.game.dto.GameDto.StartRoundResponse; import com.service.indianfrog.domain.game.dto.GameInfo; import com.service.indianfrog.domain.game.dto.GameStatus; import com.service.indianfrog.domain.game.dto.Use.. Reflection API Reflection API 리플렉션은 힙 영역에 로드된(런타임) Class 타입의 객체를 통해, 원하는 클래스의 인스턴스를 생성할 수 있도록 지원하고, 인스턴스의 필드와 메서드를 접근 제어자와 상관 없이 사용할 수 있도록 지원하는 API이다. 로드된 클래스 : JVM의 클래스 로더에서 클래스 파일에 대한 로딩을 완료한 후, 해당 클래스의 정보를 담은 Class 타입의 객체를 생성하여 메모리의 힙 영역에 저장해 둔 것(new 키워드를 통해 만드는 객체와는 다른 것) 자바에는 동적으로 객체를 생성하는 기술이 없었으나 동적으로 인스턴스를 생성하는 Reflection으로 그 역할을 대신하게 된다. Reflection으로 객체의 형은 알고 있지만 형변환을 알 수 없는 상태에서 객체의 메서드를 호출할 수 있다. R.. POJO POJO(Plain Old Java Object) 위 이미지는 Spring 삼각형이라는 이미지로 Spring의 핵심 개념들을 모두 표현하고 있다. POJO는 IoC/DI, AOP, PSA를 통해서 달성할 수 있다는것을 의미한다. POJO란 Plain Old Java Object의 약자로, 직역하면 순수한 오래된 자바 객체이다(Java로 생성하는 순수한 객체를 뜻함). POJO는 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고, 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 의미한다. POJO에 애플리케이션의 핵심 로직과 기능을 담아 설계하고 개발하는 방법을 POJO 프로그래밍이라고 한다. POJO 프레임 워크 POJO 프레임워크는 POJO를 사용하는 장점과 EJB에서 제공하는 엔터.. Python으로 MySQL 더미데이터 생성 및 저장 Python 사용 목적 스프링 애플리케이션에서 QueryMethod 와 QueryDSL 의 성능을 비교 측정하기 위해 더미 데이터가 필요했고, 많은 양의 더미데이터를 쉽게 생성하고 DB에 저장하기 위해 Python을 사용하기로 했다. 준비 사항 Python : 필요한 라이브러리를 문제 없이 사용할 수 있는 버전 VSCode : Python 코드 작성용 프로그램 실행 순서 1. 필요 라이브러리 설치 pip install pandas sqlalchemy mysql-connector-python python 설치된 라이브러리 목록 확인 방법(CIL 에서) pip list 2. 스크립트 작성 아래 코드는 user 테이블에 10만 개의 더미 데이터를 생성하고, 이를 1000개 단위로 끊어서 삽입하는 코드이다. i.. WIL-11 Fact : 이번주 있었던 일, 내가 한 일 월 : JMeter 공부, 게임 시작 부분 로직 수정 화 : JMeter 테스트 플로우 설계, 서비스 로직 로그 추가 수 : JMeter 테스트 설정 목 : JMeter 리스너 설정, 모의 기술 면접 3회차 금 : Actuator, 동시성 제어 학습 토 : Prometheus, Actuator, Grafana 사용 모니터링 설정 Feeling : 나의 감정적인 반응, 느낌 JMeter를 통해 웹 소켓을 사용하는 통합 테스트 코드를 작성하는 것이 어려웠다. 5일동안 진행했던 것을 시간이 부족해서 포기해야 되는 것이 아쉬웠다. Finding : 그 상황으로부터 내가 배운 것, 얻은 것 부족한 부분에 대해 더 열심히 공부해서 다음에는 적용시킬 수 있도록 해야 겠다고.. Spring boot 모니터링 with Prometheus, Grafana 애플리케이션 모니터링 애플리케이션에서 발생하는 동작들에 대한 메트릭을 수집하여 애플리케이션 성능을 분석하는 분야로 모니터링을 통해 서비스 개발 과정에서는 동작을 확인할 수 있고, 서비스 오픈 직전에는 성능 테스트를 할 수 있고, 서비스 운영 과정에서는 문제를 해결할 수 있다. Actuator, Prometheus, Grafana를 사용해 스프링부트 애플리케이션의 메트릭을 수집하고 이를 시작화하는 환경을 구성할 수 있다. Metric 메트릭(metric)이란 측정 가능한 양이나 특성을 나타내는 척도 또는 지표를 말한다. 데이터 분석이나 평가, 성능 측정 등 다양한 분야에서 사용되며, 메트릭을 잘 수집하면 시스템의 현재 상태를 손쉽게 파악할 수 있다. 메트릭은 주어진 목표나 문제에 따라 다양한 형태로 정의될.. 낙관적 락 & 비관적 락 트랜잭션 격리 수준 트랜잭션은 ACID(원자성, 일관성, 격리성, 지속성)을 보장해야 한다. 트랜잭션은 원자성, 일관성, 지속성을 보장하지만 문제는 격리성으로 트랜잭션간 완전한 격리를 보장하기 위해서는 동시성 측면세어 많은 손해를 보게 된다. 테이블에 따라서 ANSI 표준에서는 트랜잭션 격리 수준을 4단계로 구분하여 병행성과 격리성을 설정할 수 있는데, 격리성과 병행성은 서로 역비례 관계이므로 무턱대고 격리 수준을 최대로 높이게 되면 성능이 악화될 수 있으므로 적절한 격리 수준 설정이 중요하다. 하지만 이런 트랜잭션 격리 수준으로도 해결하지 못하는 문제가 존재한다. 두 번의 갱신 분실 문제(Second lost updates problem) 위키백과의 후디라는 문서를 두 유저가 동시에 편집하는 상황을 가.. Spring Actuator Springboot Actuator 스프링부트 프레임워크에서 제공되는 라이브러리로서 스프링부트 애플리케이션의 모니터링이나 메트릭과 같은 기능을 HTTP와 JMX 엔드 포인트를 통해서 제공한다. 메트릭: 시스템, 프로세스, 제품 또는 서비스의 성능을 측정하는 데 사용되는 측정 항목이나 지표 Spring Actuator는 애플리케이션의 내부 확인이 가능하며, 어느 정도는 애플리케이션의 작동을 제어할 수 있게 해준다. 애플리케이션 환경의 구성 속성 로깅 레벨 사용 중인 메모리 지정된 엔드포인트가 받은 리퀘스트 횟수 애플리케이션의 건강 상태 정보 Spring Actuator API Spring Actuator를 사용하려면 의존성을 추가해야 한다. implementation("org.springframework... 이전 1 ··· 7 8 9 10 11 12 13 ··· 24 다음