Programming

    [Java][Spring]BeanUtils.copyProperties() 정리 및 주의점

    [Java][Spring]BeanUtils.copyProperties() 정리 및 주의점

    ❔ 언제 사용? ➖ Class 간 복사가 필요할 때 -. 웹개발을 하다보면 VO와 Entity 간 동일한 멤버변수를 복사하는 경우가 많이 발생한다. -. Front단에서 입력받거나, Back에서 처리된 VO를 DB에 저장하기 위해 Entity로 옮기는(=복사하는) 경우 등 -. 그러한 경우에 각 멤버변수(=property)를 하나씩 get() -> set() 한다면, 굉장히 번거롭고 후에 유지보수하기도 불편하다. ❔ 번거롭다? 유지보수가 어렵다? 이유는? -. 멤버변수가 많으면 많을수록 복사하기 위해 굉장히 많은 Line의 get->set 코드가 필요할 것이며, -. 후에 변수명이 바뀌거나 변수가 추가된다면 ,해당 복사 코드에 찾아가서 수정해야 한다. ❗ 그래서 BeanUtils.copyPropertie..

    [Mybatis]<sql>,<include>,<property> 태그 사용

    [Mybatis]<sql>,<include>,<property> 태그 사용

    ➖. : 반복적으로 쓰이는 sql문의 재사용성을 높여준다. WHERE 1=1처럼 반복 사용하는 SQL을 동적으로 활용할 때 쓰일 수 있다. 아래 예시에서는 태그 안에 ORACL WITH절을 사용하였다. WITH DEPT( SELECT DEPT_CODE, DEPT_NAME, DEPT_LEVEL FROM DEPARTMENT ) ➖. : , 등에 구문을 넣을 때 사용한다. 의 refid 값은 태그의 id값과 같게 해야 include할 수 있다. SELECT UI.USER_ID, UI.USER_NAME, UI.USER_DEPARTMENT, DEPT.DEPT_NAME, DEPT.DEPT_LEVLEL FROM USER_INFORMATION UI INNER JOIN DEPT ON UI.USER_DEPARTMENT =..

    [js][splide]이미지슬라이드 라이브러리

    [js][splide]이미지슬라이드 라이브러리

    여러 이미지를 간편하게 슬라이드 뷰로 볼 수 있는 라이브러리가 필요했다. 여러 개 검색해본 결과, 가벼운 로딩과 다양한 유저 경험을 제공할 수 있는 라이브러리가 적합하여 splide를 선택하게 되었다. splide는 이미지를 여러 view로 볼 수 있도록 한다. 한 화면에 여러 개의 이미지라든가, Grid형식의 슬라이드, 동영상 첨부, 자동 슬라이드 넘기기 등 제공한다. 위 사진은 splide 사이트에 있는 이미지이며, 프로젝트에는 위와 같이 썸네일과 슬라이드가 동시에 보이도록 적용했다. 아래는 적용한 간단한 예시 코드로 HTML 부분과 Javascrip 부분이다. main슬라이드와 thumbnail슬라이드 두부분으로 구성하여 sync하여 구성하였다. splide 자세한 설명과 내용은 아래 사이트를 참고..

    [js][Tippy]Tippy(Tooltip 라이브러리) 사용

    [js][Tippy]Tippy(Tooltip 라이브러리) 사용

    프로젝트에서 툴팁을 태그 속성의 title 사용하기 때문에 시인성을 위해 개선이 필요했다. 간단하고 많이 사용하는 툴팁 라이브러리인 Tippy를 적용하여 해결하였다. Tippy 소개 및 적용 예시를 남겨둔다. 기본적인 소개 및 사용법 그리고 Demo까지 너무나도 깔끔하고 완벽하다. https://atomiks.github.io/tippyjs/ Tippy.js - Tooltip, Popover, Dropdown, and Menu Library The complete tooltip, popover, dropdown, and menu solution for the web atomiks.github.io Tippy는 기본적으로 popper라이브러리를 이용하여 툴팁, 드롭다운 등을 제공한다. 원하는 대로 CSS가..

    [eclipse][spring]개발 작업에 영향을 끼치는 옵션

    [eclipse][spring]개발 작업에 영향을 끼치는 옵션

    Java를 이용한 웹개발할 때, 다양한 IDE가 있지만 국내에서는 보통 eclipse, sts, IntelliJ를 많이 사용할 거 같다. ❗아래 내용은 eclipse, sts를 사용할 경우에 해당할 때 "원하지 않거나 필요없는 기능이 백그라운드에서 자동으로 진행되어 작업속도에 영향을 끼치는 경우"가 존재하여 작성하게 되었습니다. 1. remote system explorer operation -. 코드 수정 중 또는 자동으로 빌드될 때, 수많은 remote system explorer operation이 Progress 창에 생길 때가 있다. -. remote system explorer operation은 SSH, FTP, Telnet 등을 제공하여 eclipse에서도 편하게 원격저장소에 접속하여 작업..

    [Javascript]Null, Undefined, 빈문자열 처리

    javascript에서 값을 할당하거나 파싱하는 등의 작업을 하면서 의도되지 않은 값이 생기는 경우가 있다. 그 중 많은 비율을 차지하고 있는 것이 "빈 값"이다. "빈 값"으로 판단되는 경우에 대한 처리를 하기 위해, 아래는 대표적인 케이스 몇 개를 뽑아 null과 비교해봤다. var v_null = null; var str_null = 'null'; var v_undefined = undefined; var str_undefined = 'undefiend'; var str_empty = ''; console.log('값 그대로 비교'); console.log('null == null : ', null == v_null); console.log('null == "null" : ', null == str..

    [JAVA][JUnit]자주 사용하는 Annotation

    1. @Test -. 아래는 JUnit User Guide에 나오는 test case -. 메소드가 테스트 메소드임을 나타낸다. import static org.junit.jupiter.api.Assertions.assertEquals; import example.util.Calculator; import org.junit.jupiter.api.Test; class MyFirstJUnitJupiterTests { private final Calculator calculator = new Calculator(); @Test void addition() { assertEquals(2, calculator.add(1, 1)); } } 2. @DisplayName -. test 메소드의 출력을 원하는 대로 설정..

    [JAVA]JUnit5

    1. JUnit 이란? -. Java 및 JVM을 위한 프로그래머 친화적인 테스트 프레임워크 -. 오픈소스 단위테스트 도구 2. JUnit의 등장 -. 이전 개발 테스트는 main method에 production Code와 TestCode가 혼재하여 작성하였다. -. 이러한 개발 테스트의 문제는 ⓐ클래스 규모가 커져 복잡도 증가 ⓑ운영소스에 테스트코드 존재 ⓒSystem.out이나 소요시간을 수동으로 출력 및 결과 확인 ⓓ불분명한 테스트 의도 및 이력 관리 등이 있다. -. 위 문제들을 해결하기 위한 도구로 JUnit 탄생 3. JUnit5 -. 모던 자바의 최신기술(람다,스트림 등)에 맞춰 구성 -. JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage..