본문 바로가기

전체 글

(238)
Logback filter (slf4j) logback filter type LevelFilter 정확한 레벨 일치를 기반으로 이벤트를 필터링 한다. 이벤트 레벨이 구성된 레벨이 같으면 onMatch onMismatch 특성의 구성에 따라 필터가 이벤트를 승인하거나 거부 하게 할 수 있다. INFO ACCEPT DENY %-4relative [%thread] %-5level %logger{30} - %msg%n onMatch onMismatch 를 통해 로그에 남길것인지 선택 ACCEPT (승인), DENY(거절) 할 수 있다. ThresholdFilter 지정된 입계 값 아래 이벤트를 필터링 한다. 임계값보다 낮은 레벨의 경우 이벤트는 거부된다. INFO %-4relative [%thread] %-5level %logger{30} - %msg..
Jmeter performance configuration 1. 다운로드 → https://jmeter.apache.org/ → Sample File Spring webflux-kafka default tps .jmx AdServer tps Test.jmx 2. 플러그 인 설치 → https://jmeter-plugins.org/install/Install/ (Download **plugins-manager.jar** and put it into lib/ext directory, then restart JMeter.) 설치 위치 : ${JMETER_HOME}/lib/ext 플러그인 파일을 체크 하고 설치 한다. 3. Jmeter 테스트 환경 설정 Number of Thread(users) : 동시접속자수를 지정 Ramp-Up Period (in seconds) ..
Intellij 2019.2 build tool gradle default 인텔리J 2019.2 를 새롭게 설치하니 Gradle 도구를 이용시 기본적으로 테스트/빌드/실행시 gradle을 사용하도록 설정되어 있다. 이렇게 기본으로 gradle 사용시 빌드 런, 테스트 시에 gradle을 사용하는 이유는 테스트와 배포시에 인텔리J에선느 정상적으로 동작 되었으나, 실 배포시에 배포되지 않는 현상을 없애기 위하여, 실 배포와 같은 환경을 구성해 주기 위함 이라고 한다. Build, Execution,Deployment > Build Tools > gradle Build and run using : gradle → IntelliJ IDEA 로 변경 Run test usion : gradle → IntelliJ IDEA로 변경
java excle 대용량 다운로드 poi 자바 excel dowonload 시에 많은양의 데이터를 다운로드 하다보면 OOM 에 봉착할수 있다. 이를 해결하기 위해서는 POI 스트리빙방식으로 코드를 작성한다. 생성자로 부터 직접 건수를 지정하여, 지정된 건수가 되면 temp 파일에 flush 하는 방법이 있으며, 수동으로 temp file에 flush 하는 방법이 존재한다. Workbook 특징 HSSF : EXCEL 2007 이전 버전(.xls)에서 사용하는 방식 XSSF : EXCEL 2007 이후 버전(2007포함 .xlsx)에서 사용하는 방식 SXSSF : XSSF의 Streaming Version으로 메모리를 적게 사용하여 대용량 엑셀 다운로드에 주로 사용되는 방식 SXSSF 방식->생성자 방식에서의 기본 flush 크기는 100 이며,..
java null safe stream 생성 방법 java stream 에서 안전한 stream 을 생성 하여 사용 하는 방법에 대해 알아보자 . 해당 내용을 이해하기 위해서는 우선적으로 java8의 method refreences, Lamabda Expressions, Optional 등 Stream 에대한 기본인 방법에 익숙해야 한다. 기본적으로 Stream 만들기 Stream 객체로 Stream 생성 Stream charStream = Stream.of("A","B","C"); Collection 객체로 Stream 생성 Collection collection = Arrays.asList("A","B","C"); collection.stream(); 우리는 대게 Stream 을 사용할때 다음과 같이 사용한다. 이때 Null 을 가르키는 경우 Nul..
QueryDsl Projection.bean Object로 조회 결과 받기 DTO(Entity)를 처음 인자로 넣어 주고 Object와 mapping 되는 columl의 인자 값을 셋팅 한다. create a Bean populating projection for the given type and expressions Example UserDTO dto = query.select( Projections.bean(UserDTO.class, user.firstName, user.lastName)); @Embeddable / @EmbeddedId 로 멀티PK가 잡힌 경우엔 Projection.bean 사용시, alias 기능을 이용하여 Mapping 시켜 준다. QAdGroupEntity qAdGroupEntity = QAdGroupEntity.adGroupEntity; List a..
selenuim 과 requests 비교 selenuim 과 requests 의 비교 분석 selenium selenium 이란? selenium은 주로 웹테스트를 하는데 이용하는 프레임 워크로 알려져 있다. Webdriver모듈을 이용하여 운영체제에 설치된 크롬및 파이어폭스 등의 브라우저를 제어한다. 장점 requests 와 다르게 사용자가 동작하는 것처럼 시나리오를 통해 동작이 가능하며, 비동기적으로 불러오는 DOM 및 마우스클릭 및 Over 로 생기는 HTML , 비동기 통신으로 가자오고 javascript에 의해 동적으로 생성되는 DOM 을 랜더링 하여 모두 보여주며 접근이 가능하다. 이에 강력한 웹매크로를 만들어 낼수 있다. 단점 requests에 비해 시간이 오래걸리는 단점이 있으며, 멀티로 생성시 브라우저간의 세션공유가 되지 않는다..
selenium 웹크롤링 1. selenium 을 활용한 웹크롤링 방법 예제 def login(userId, user_password): """ 페이지 로그인 :param userId: :param user_password: :return: """ oauth_login_url = 'https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com' # 페이지 접속 _driver.get(oauth_login_url) # Element Find userIdElem = _driver.find_element_by_id("id") userPasswordElem = _driver.find_element_by_id("pw") # Value Setting userIdE..