Spring 4 JUnit 테스트 샘플 코드 (Spring 4.3.16 기준, Spring boot 예제 아님)

By | 6월 14, 2021

pom.xml <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.16</version> </dependency> TestJUnit.java package twopro; // 테스트코드에서도 log4j를 사용하고 싶다면 패키지는 꼭 필요한 듯. import cmm.jwt.TokenProvider; import lombok.extern.slf4j.Slf4j; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; /** * JUnit 테스트 * * @author 이프로 * @version 2021.06… Read More »

크롬에서 특정 리소스(e.g. image, js …) 들만 http 403 에러가 나던 희한한 케이스

By | 6월 12, 2021

잘 쓰던 우리 크롬이 어느 날.. 쿠팡 상품상세 페이지 로딩도 실패하고, 네이버 블로그 이미지도 안보이고, 네이버 로그인 하니 계속 영수증 내용 입력하라고 나오고… 알 수 없는 행동들을 했다. 웨일이나 오페라 같은 것들은 다 정상적으로 보이는데 유독 크롬만! 한참을 이유를 알 수 없어 헤메다가, 일부 정적 자원들에 대한 요청이 http 403으로 실패하는 것을 발견했고, fiddler로 request… Read More »

java 정규식(regex)을 사용하여 2회 이상 반복되는 정규식 패턴의 문자열을 각각 치환(replace)하는 예제

By | 5월 11, 2021

하려고 하는 작업 특정 문자열에서 메타문자 {WRAP}{/WRAP}로 감싸진 숫자를 찾아서 마스킹 처리를 하고 {WRAP}{/WRAP} 메타문자는 삭제하고 싶다. String dtl = "블라블라 {WRAP}123456{/WRAP} 어쩌구 저쩌구 {WRAP}987654{/WRAP} 마무으리 등등등…"; Matcher matcher = Pattern.compile("\\{WRAP\\}(\\d*)\\{/WRAP\\}"); // grouping을 하나 한 것에 주목 StringBuffer sb = new StringBuffer(); while(matcher.find()){ // 계속해서 결과를 찾아간다. //문자열 맨 앞에서부터 sb에 붙여나가면서 치환 처리까지 수행한다.… Read More »

javascript의 백그라운드 실행(멀티스레드)을 가능하게 해 주는 web worker 샘플 코드

By | 5월 6, 2021

메인 페이지의 js /** * Web Worker 인스턴스 생성 및 호출 */ if (!! window.Worker) { var worker = new Worker('../resources/js/workerSample.js'); // 현재 페이지의 브라우저 URL에 대한 '상대경로'로 작성해야만 한다. // console.log('## worker:['+ JSON.stringify(worker) +']'); // worker가 준 메시지에 대한 이벤트 핸들러 worker.onmessage = function(e) { onWorkerResponse(e.data); worker.terminate(); // 최초 1회만 실행 후 제거 }… Read More »

java.lang.reflect.GenericSignatureFormatError: Signature Parse error: Expected Field Type Signature 에러 사례

By | 5월 6, 2021

왜인지 모르겠으나…(협업 환경에서 잘못된 오버라이드?) IDE의 JDK 언어 레벨이 5로 되어 있어서, 람다식 등의 시그니처를 인식하지 못한 것으로 추측된다. 다시 IDE의 JDK 버전을 8로 맞추어 줬더니 정상동작 했다. 아오.. 갈 길이 바쁜데 이런 거 발목 좀 안 잡았으면 좋겠네. -_-/

java 8 의 컬렉션(Map, Set, List…)을 편리하게 순회하는 샘플코드 (forEach, replaceAll, filter, map…)

By | 3월 25, 2021

/* * 기본적인 루프 * – map.forEach() */ map.forEach((k, v) -> System.out.println("key: " + k + ", value: " + v)); map.forEach((k,v) -> { System.out.println("key: " + k + ", value: " + v) }); map.entrySet().forEach((e) -> System.out.println("key: " + e.getKey() + ", value: " + e.getValue())); map.keySet().forEach((k) -> System.out.println("key: " + k)); map.values().forEach((v) ->… Read More »

[javascript] querystring의 특정 pair의 값을 수정하여 또 다른 querystring 으로 만들기

By | 3월 17, 2021

// 함수 정의 /** * 파라미터로 받은 querystring의 특정 파라미터 값을 변경한 querystring을 리턴한다. * * – querystring은 주소부분을 제외한 ? 이후의 부분이라 가정한다. */ function modifyQueryString(src, modObj){ // querystring을 object 화 var obj = JSON.parse('{"' + decodeURI(src).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g,'":"') + '"}'); for(key1 in obj){ for(key2 in modObj){ if(key1 != key2){ continue; } obj[key1] =… Read More »