java16 [JAVA] ReflectionUtil [util] - ReflectionUtil.java package com.kt.tbb.iptv.coupon.framework.util; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.ArrayList; import java.uti.. 2020. 11. 30. [JAVA] AES256, SHA256 - ์ํธํ ๋ณตํธํ base64 ๋ฉ์ด๋ธ ์ถ๊ฐ Apache Commons์์ ์ ๋๊ฐ๋ฅผ ํ๋ฉด ์ ์ฒด ๋ค import์ธ๊ฐ? commons-codec commons-codec 1.13 org.apache.commons commons-lang3 org.apache.commons commons-math3 SHA256 - ์ํธํ SHA256์ ์ํธํ๋ง ๊ฐ๋ฅํ๋ฉฐ ๋ณตํธํํ ์ ์๋ค. (์ํธํ ํค๊ฐ ์๊ธฐ ๋๋ฌธ) 256bit์ hash ๊ฐ์ด๋ค. public static String encryptSHA256(String value) throws NoSuchAlgorithmException{ StringBuffer encryptData = new StringBuffer(); MessageDigest sha = MessageDigest.getIns.. 2020. 11. 30. [JAVA] FilterChain, doFilter - API ํธ์ถ ๊ธฐ๋ก DB์ ์ ์ฅํ๊ธฐ FilterChain์ doFilter์ฌ์ฉ Bean ๋ฑ๋ก - BeanConfig.java @Bean public ApiLoggingFilter getApiLogginFilter() { ApiLoggingFilter apiLoggingFilter = new ApiLoggingFilter(); return apiLoggingFilter; } FilterChain.doFilter() - ApiLoggingFilter.java package com.kt.tbb.iptv.coupon.framework.servlet; import com.kt.tbb.iptv.coupon.business.interlock.e2e.E2eService; import com.kt.tbb.iptv.coupon.business.operati.. 2020. 11. 19. [JAVA] ๋๊ฐ Object์ ๊ฐ ๋น๊ตํ๊ธฐ Object vs Object , Map vs Map // ๋๊ฐ์ object๋น๊ต -> map์ผ๋ก ์ ํํ map ๋น๊ต public static Map compareObject(Object obj1, Object obj2) { if(ObjectUtils.isEmpty(obj1) || ObjectUtils.isEmpty(obj2) || obj1.getClass() != obj2.getClass()) { return null; } return CommonUtils.compareMap(MapToModel.converObjectToMap(obj1), MapToModel.converObjectToMap(obj2)); } // ๋๊ฐ์ map ๋น๊ต public static Map compareMap(Map map1, .. 2020. 11. 19. [JAVA] Map to Object, Object to Map Object๋ฅผ Map์ผ๋ก ๋ณํ, Map์ Object๋ก ๋ณํํ๋ Util ์ฌ์ฉ ๊ฐ์ฒด PropertyDescriptor Method Object method invoke (setMethod) private static void invokeMethodSiently(Object obj, Method m, Object val) { try { m.invoke(obj, val); } catch (Exception ex) { LOGGER.error(ex.getMessage(), ex); } } Object method invoke (getMethod) private static Object invokeGetMethod(Object o, Method m) { Object obj = new Object(); try { .. 2020. 11. 19. [JAVA] @Transactional ์บ์ฑ ๋ฌธ์ .. @Transactional ์ฌ์ฉํ๋๋ฐ.. ๋ถ๋ชจ๋ฉ์๋์์ PromCpnType origin = promCpnTypeMapper.readPromCpnType(param);PromCpnType param = new PromCpnType(); param.setCpnTypeId(promCpnType.getCpnTypeId()); param.setIssDstrSeq(promCpnType.getIssDstrSeq()); PromCpnType origin = promCpnTypeMapper.readPromCpnType(param); ์์ ๋ฉ์๋์์ PromCpnType param = new PromCpnType(); param.setCpnTypeId(promCpnType.getCpnTypeId()); param.set.. 2020. 11. 18. [JAVA] Excel Download - ์ฝ๊ธฐ, ์์ , ๋ค์ด๋ก๋ (Servlet, POI) 2020.11.13 ์๋ฒ์ ์ ๋ก๋๋์ด ์๋ ํ์ผ์ ์ฝ์ ํ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ(์์ )ํ๊ณ ๋ค์ด๋ก๋ํ๋ ๊ธฐ๋ฅ ๊ตฌํ - ์ ๋ก๋๋์ด ์๋ ํ์ผ (์์) - DB์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ์ ์ถ๊ฐ ์ฌ์ฉ - HttpServletRequest, HttpServletResponse - FileInputStream - XSSFWorkbook - ServletOutputStream 1. Controller API๋ฅผ ํธ์ถํ๋ฉด ์์ ๋ค์ด๋ก๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Service๋ฅผ ํธ์ถํ๋ค. @GetMapping(value = "/v1/cpnType/{cpnTypeId}/promotion/iss/{issDstrSeq}/target/excel/down") public void excelDownloadIssTarget(HttpServletRequ.. 2020. 11. 13. ์ด์ 1 2 ๋ค์