Language 23

[iBatis] iterate

iBatis iterate문 태그property : 파라미터명  - 반복돌릴 대상들이 들어있는 리스트prepend : 쿼리로 쓰일 문자 - iterate문 전에 쓰인다 (AND, IN, WHERE 컬럼명 IN 등)open : 구문이 시작될때 삽입할 문자열close : 구문이 종료될때 삽입할 문자열conjunction : 반복되는 사이에 출력할 문자열업무에서 활용해야해서 엄청 찾아봤는데 보통 AND, OR, IN 문을 쓰지나처럼 해당되지않는 것을 찾는 NOT IN 용으로는 iterate 쓴 예문이 없어서 시행착오 많이했다."AND chktype NOT IN" prepend 으로 넣으니까 안되더라. 웬만하면 그냥 쿼리 쓰자.-- DELETE문이나 SELECT문 쓰면 된다DELETE FROM tb_sample..

Language/JAVA 2024.06.14

Stream API 2 : Collection 합 구하기

Stream API에서 Sum() 함수를 사용하려면 기본형 특화 스트림(Primitive Type) 스트림을 사용해야한다.정수형 원시스트림IntStreamLongStreamDoubleStream 목표List 내의 map 내의 int value를 가진 특정 키를 찾아 합하고 싶다 코드// 1. 순회할 리스트List testList = testDAO.selectTestList(paramMap); // testList : [{"cnt": 1}, {"cnt": 2}, {"cnt": 3}, {"cnt": 4}]// 2. 리스트 내 Map 순회int totalCnt = testList.stream() // 3. Map 내에서 더할 대상인 cnt를 찾아 IntStream으로 변환 .mapToInt(i ->..

Language/JAVA 2024.05.31

Stream API

// 요양기관번호를 key로 하여 병원목록을 map으로 변환 Map hpMap = hplist.stream() .collect(Collectors.toMap(hp -> ((ListOrderedMap) hp).get("hpNo").toString(), Function.identity())); // 방법1. map모두 합치기 List newlist = csIssuelist.stream() .map(i -> { i.putAll(hpMap.getOrDefault(i.get("hsptCd"), new EocsMap())); return i; }) .collect(Collectors.toList()); map.put("csIssuelist", newlist); // 방법2. map 요소 중 뽑아서 합치기 List ..

Language/JAVA 2024.02.27

2장 Node.js로 백엔드 입문하기

Node.js 소개 서버에서 실행가능한 자바스크립트 런타임 환경 논블로킹 / 비동기 방식 Node.js는 서버에서 어떻게 자바스크립트를 실행할까? 구성요소 V8엔진 C++로 만든 오픈소스 자바스크립트 실행엔진 파서, 컴파일러, 인터프리터, 가비지콜렉터, 콜 스택, 힙 등으로 구성 인터프리터 역할을 하는 이그니션과 컴파일러 역할을 하는 터보팬을 사용해 컴파일 - JIT(Just In Time)컴파일러 libuv 이벤트 루프, 스레드 풀 등 사용 아키텍처 기술 특징 싱글스레드 콜스택 1개 이벤트 기반 아키텍처 루프를 실행하면서 운영체제/스레드 워커에서 I/O 처리 이벤트 루프 여러 개의 FIFO 큐 장단점 장점 비동기 이벤트 기반이라 동시에 여러 요청 처리 가능 단점 CPU 사용이 많은 작업의 경우 부적합 ..

Language 2024.02.22

[JAVA] 반복문에서 배열요소 삭제

무한댓글 구현 + 삭제여부 확인하며 새로 알게된 개념 메모 참고) 아래 에서 이어지는 게시물입니다 계층형 쿼리 공지사항 게시판에 댓글 기능을 도입한다고 한다. 댓글-대댓글로 2 depth인 줄 알았으나, 대대댓글 3 depth가 될 수도 있고 아닐수도 있고 변경가능성 농후..하므로 일단 3 depth 기준으로 조회 쿼리를 idleday.tistory.com 목표 지난번엔 대댓글 정렬까지 구현했다. 이제 삭제된 댓글들 중 삭제되지않은(살아있는) 후손대댓글이 하나라도 있는 경우 목록에서 살려둘거고, 자신도 삭제됐고 후손들도 싸그리 삭제되어있는 경우 목록에서 제외하려고 한다. 살아있는 후손이 있는지는 댓글 전체목록을 돌면서 찾는 즉시 리스트에서 삭제하려고 한다. 즉, 반복문 순회 중 ArrayList 요소를 ..

Language/JAVA 2023.11.02

[JSTL] c:forEach 역순

c:forEach에 직접 value값을 입력하는 방식으로만 줄창나게 써오다가 이제 반복문으로 순서도 넣어보기로 했다. 그 과정에서 구글링을 통해 c:set 을 처음 배웠다. 가장 중요한 지식은 서버사이드렌더링 방식인 jsp을 쓸 때 각 데이터들의 동작 순서를 익힌 것! JAVA → jstl → HTML → javaScript 저 순서대로 뿌려지기에 jstl 데이터는 javascript에 할당할 수 있지만, javascript 데이터는 jstl에 할당할 수 없는것 원하는 목표상태는 현재 연도부터 2022년까지 역순으로 셀렉트박스 옵션에 나열되는 것이다. (2023,.. 2022) 아래처럼 하면 항상 올해,작년 이렇게 두 해만 나온다. 심히 단순한 코드다. 좀더 오래오래 써먹을 만한 유지보수성 높은 방식으로..

Language/JAVA 2023.09.25