목록분류 전체보기 (32)
Developer N
api로 가져온 List에서 각 Object의 특정 필드값만 따로 추출할 필요가 있었다. for문을 사용하여 각 객체에서 get을 통해 필드 값을 추출하는 방법도 있었지만, 자바8에서 새로 추가된 기능인 strem()을 활용하여 코드를 간결하게 작성해보았다. 간단한 예제로 정리를 해보자면 @Getter public class PersonDto { private String name; private Integer age; } 위와 같은 객체로 이루어진 List personList에서 stream()을 이용하여 name 값만 추출하여 List으로 만들어보자. List nameList = personList.stream().map(PersonDto::getName).collect(Collectors.toLis..
db에서 받아온 문자열 값을 특정 길이만큼 잘라서 줄바꿈을 해야하는 경우가 생겼다. 예를 들면 문자열 "가나다라마바사아자차카타파하"을 고정길이 4로 설정하여 자를 경우 아래처럼 4개의 요소로 분할된다. 가나다라/마바사아/자차카타/파하 이처럼 Java에서 특정 길이만큼 문자열을 분할하는 방법을 알아보자. 1. String 클래스의 substring 메서드 String title = "가나다라마바사아자차카타파하"; int maxLen = 4; int arraySize = (int) Math.ceil((double)title.length() / maxLen); String[] titleArray = new String[arraySize]; int index = 0; for(int startIndex = 0; ..
List x.containsKey("원하는 Key값").map(m -> m.get("원하는 Key값").toString()).collect(Collectors.toList()); mapList를 stream 반복자로 필요한 값들만 List에 담는 방법이다. stream이란 Iterator와 비슷한 역할을 하지만 람다식으로 요소 처리 코드를 제공해 코드가 좀 더 간결하다는 장점이 있다. 또한 내부반복자를 사용하기 때문에 병렬처리가 쉽고 실행이 더 빠르다. filter는 요소를 특정 기준으로 걸러낼 수 있다.filter() 안의 조건이 참이라면 true 거짓이라면 falst로, true일 경우 다음으로 계속 진행된다. 여기서는 containsKey()를 사용하여 mapList에서 해당 키값이 존재하는지를 알..
GROUP_CONCAT() n개의 row로 결과가 출력되는 쿼리를 한줄의 row로 표현하고 싶을 때가 있다. 이때 GROUP_CONCAT을 사용하면 된다. 쿼리 : select userId from userInfo 결과 : userId aaa1 aaa1 ccc3 bbb2 위 쿼리의 결과가 표와 같다고 할 때 네개의 로우를 하나의 로우로 표현하고자 한다면 아래와 같이 쿼리를 작성하면 된다. 쿼리 : select GROUP_CONCAT(userId SEPARATOR '|') as userId from userInfo 결과 : userId aaa1|aaa1|ccc3|bbb2 위의 표처럼 하나의 row에 구분자를 기준으로 모든 row가 붙어서 출력된다. SEPARATOR을 사용하여 구분자를 원하는 대로 변경할 ..
이벤트 버블링 우리가 원하는 것은 어떤 요소를 클릭했을 때 해당 요소에만 이벤트가 적용되는 것이지만 실제로는 그 요소를 포함하는 부모 요소에도 이벤트가 전달된다. 이를 거품이 커지는 것에 비유해 이벤트 버블링(event bubbling)이라고 한다. test 위 코드의 경우 자식 요소인 를 클릭하면 부모 요소인 에게도 클릭 이벤트가 전달된다. 이벤트 버블링의 경우 자식 요소를 포함하지 않는 부모 요소의 영역을 클릭하면 이벤트 핸들러가 실해되지 않는다. 만약 자식 요소를 클릭했을 때 부모 요소의 이벤트 핸들러를 실행하지 않고자 한다면 두가지 방법을 사용하면 된다. 1. 부모 요소의 이벤트 핸들러에서 this와 event.target을 이용한다. $('#parent').click(function(event)..