[링크] 25 lesser-known Java libraries you should try in 2020
https://towardsdatascience.com/25-lesser-known-java-libraries-you-should-try-ff8abd354a94
https://towardsdatascience.com/25-lesser-known-java-libraries-you-should-try-ff8abd354a94
https://zetawiki.com/wiki/CSS_float_%EC%9E%90%EC%8B%9D%EB%93%A4_%ED%8F%AC%ED%95%A8%ED%95%98%EA%B8%B0
@Transient private String blabla;
* commons StringUtils.containsAny([타겟 문자열], [비교대상1], [비교대상2]..); * containsAll() 같은 건 없지만, 그거 비슷하게 구현한 메서드 public static boolean hasAndKey(String value, String… keys) { for (String key : keys) { if (value.contains(key) == false) { return false; } } return true; }
package com.app.util; import java.util.Locale; import java.util.Properties; import javax.servlet.http.HttpServletRequest; import org.springframework.context.MessageSource; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PropertiesLoaderUtils; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.util.StringUtil; import lombok.extern.slf4j.Slf4j; /** * 웹 관련 유틸 클래스 * * @author STEVE */ @Slf4j public class WebUtil { /** * 현재 request url 에서 [http(s)프로토콜 부터 도메인까지]를 substring 한 문자열을… Read More »
* error_log() 라는 함수를 사용한다. e.g.) error_log(“블라블라”, 3, “/home/bruce/custom.log”); 두 번째 인수 3은 세 번째 인수의 경로에 해당하는 로그파일에 기록하겠다는 선언이다. 로그가 기록되지 않는다면 로그파일을 777 권한으로 생성해 보자.
https://this-programmer.com/entry/JavaScript%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%88%AB%EC%9E%90%EB%A5%BC-%EB%A7%8C-%EC%96%B5-%EC%A1%B0-%EA%B2%BD-%EB%93%B1-%EB%A7%8C-%EB%8B%A8%EC%9C%84-%ED%95%9C%EA%B8%80%EB%A1%9C-%EC%B0%8D%EA%B8%B0-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%97%B0%EC%82%B0%EC%9D%98-%ED%95%9C%EA%B3%84%EA%B0%92
org.springframework.test.util.ReflectionTestUtils.setField(obj, “fieldName01”, fieldValue01);
List<String> newList = list.stream().map(StringUtil::trim).collect(Collectors.toList()); * 참고 링크 Java 스트림 Stream (1) 총정리
/* * 기본적인 루프 * – 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 »
http://blog.stevenlevithan.com/archives/date-time-format * 용례) ‘201910101458125’ => new Date().format(‘yyyymmddHHMMssl’);
https://github.com/coreui/coreui-icons
* table 태그에 아래의 스타일 추가 table-layout:fixed * td 태그에 아래의 스타일 추가 word-wrap:break-word
bootstrap 4.1 기준으로, .modal-dialog 클래스가 있는 엘리먼트에 modal-dialog-centered 클래스를 추가해 주면 된다.
웹 폰트 사용과 최적화의 최근 동향
java -XX:+PrintFlagsFinal -version | grep -iE ‘HeapSize|MetaSpaceSize|ThreadStackSize’ * 참고 링크 https://www.mkyong.com/java/find-out-your-java-heap-memory-size/
String rootPath = request.getServletContext().getRealPath(“/”);
메인 페이지의 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 »
최초 textarea 에 jQuery로 값을 셋팅할 때, $textarea.text(‘AAA’); 의 형태로 값이 잘 셋팅되었기 때문에, 값을 불러올 때도 $textarea.text(); 함수를 사용했는데, 아무리 해도 사용자가 편집한 값을 얻어오지 못하고, 초기에 셋팅한 값만 얻어오는 것이었다. 그래서 삽질을 좀 하다가… <input /> 처림 .val() 함수를 사용하여 사용자가 편집한 최종 결과 문자열을 얻을 수 있었다.
private Map<String, OwnerVO> getSortedMapByOwnerTotChgVol(Map<String, OwnerVO> ownerMap) { List<Map.Entry<String, OwnerVO>> sortList = new LinkedList<>(ownerMap.entrySet()); Collections.sort(sortList, new Comparator<Map.Entry<String, OwnerVO>>() { @Override public int compare(Entry<String, OwnerVO> o1, Entry<String, OwnerVO> o2) { return ((o1.getValue().getTotChgVol() – o2.getValue().getTotChgVol()) < 0 ? 1 : -1); } }); Map<String, OwnerVO> sortedMap = new LinkedHashMap<>(); Iterator<Map.Entry<String, OwnerVO>> iter = sortList.iterator(); while(iter.hasNext()) { Map.Entry<String, OwnerVO>… Read More »