본문 바로가기

반응형

JAVA

(5)
FOR문은 효율적일까? ExecutorService 사용법 for문을 통해 많은 데이터를 처리해야 하는 메서드가 있다고 생각해보자.관리자가 100만명의 회원에게 알림 메시지를 전송해야 하는 경우 인덱스 순서대로 전송한다면시간도 오래 걸리고, 처음 메시지를 받는 사람의 시간과 마지막 메시지를 받는 사람의 시간 차이는 클 것이다. 이를 해소하기 위해 알아보게 된게 ExecutorService 이다.ExecutorService비동기 모드에서 작업 실행을 단순화하는 JDK API병렬 작업 시 여러 개의 작업을 효율적으로 처리하기 위해 제공되는 JAVA 라이브러리Thread프로세스안에서 실질적으로 작업을 실행하는 단위 물리적 아키텍쳐에서의 소프트웨어적(자바) 스레드1코어 1스레드 CPU 쓰던 시절에도 자바 스레드는 수십 개씩 띄우는 게 가능했었다. 하드웨어적 스레드가 1..
StringBuilder 를 왜 쓸까? for문을 통해 += 을 통해 String 형태의 값을 result로 만드는 경우가 있었는데 그 경우 평소처럼 result += 형식으로 result를 만들었다. 다른 형식의 코드는 뭐가 있나 둘러보니 StringBuilder 를 다들 사용하는 것 같았다. 나도 코딩하면서 종종 보긴 했지만 이미 아는 형식만 사용하다보니 잘 사용은 안했는데.. 이유가 있겠지 하고 조사를 좀 해봤다. String 은 for문마다 새로운 객체를 생성한다.(불변) 그렇기 떄문에 반복되는 for문의 경우 String 을 통한 객체 생성은 비효율적이다. 하지만 StringBuilder 는 선언을 먼저 때리면 기존의 데이터를 변경하기 때문에 효율적이다.(가변) StringBuilder 의 버퍼에 크기를 초기에 할당 후 문자열이 추가..
ajax 데이터 제어 @RequestParam @RequestBody 구현 목표는 시작, 끝 날짜, 지역명을 선택받아 조회를 누르면 비동기 방식으로 표에 값이 출력되는 것! 오늘 다룰 내용은 조회 전 조건값들을 서버로 넘길 수 있는지에 대한 내용이다! $.ajax({ url : "/togongda/searchCovidList", method : "POST", dataType : "JSON", data : JSON.stringify({ "resultArray" : JSON.stringify(resultArray), "dateArray" : JSON.stringify(dateArray) }), contentType : "application/json; charset=UTF-8", success : function(result) { grid1.resetData(result); ..
int 와 Integer 의 차이점 int abc = 1; request.setAttribute("abc", new Integer(abc)); 왜 abc를 new Integer()로 할까? int와 Integer의 차이점으로 부터 확인 가능하다. int Primitive 자료형으로 int, float, long, double 등과 같은 하나의 primitive 자료형이다. 산술 연산이 가능하다. null 로 초기화가 불가하다. (0으로 초기화 가능하다.) Integer Wrapper 클래스이다. Unboxing 을 하지 않으면 산술 연산이 불가능하지만, null 값은 처리할 수 있다. null 값 처리가 용이해서 SQL 과 연동할 경우 처리가 용이하다. DB 에서 자료형이 정수형이지만 null 값이 필요한 경우 VO 에서 Integer 를..
싱글톤 Singleton 최초 한번만 메모리를 할당하고 (Static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴 생성자를 반복적으로 호출해도 실제로 생성되는건 최초 생성 객체를 반환해준다. public class ExampleClass { //Instance private static ExampleClass instance = new ExampleClass(); //private construct private ExampleClass() {} public static ExampleClass getInstance() { return instance; } } static 을 주면서 인스턴스화 하지않고 사용할 수 있게 하였지만 private로 직접 접근 불가능 생성자도 private임으로 new를 통한 객체 ..

반응형