분류 전체보기 215

스트림 API(stream)

여러개의 메서드를 병렬로 해서 처리가 가능하다. 람다식을 이용해서 병렬식으로 처리하면 효율적으로 처리할 수 있다. 여러개의 연산을 병렬로 처리하면 아주 효율적으로 프로그램을 구현할 수 있다. stream 데이터의 흐름, 통로 컬렉션이나 배열같은 여러개의 데이터를 효율적으로 조작할려면 메서드를 이용해서 관리하면 효율적으로 관리할 수 있다. 배열이나 데이터의 흐름을 스트림으로 변환해서 처리하면 좋다. 배열을 스트림으로 변환할려면 Arrays.stream() 메서드를 이용한다. 이렇게 사용하면 데이터의 처리 작업을 연속적인 파이프라인으로 나타낼 수 있어 가독성이 높아지고. 병렬 처리를 쉽게 구현할 수 있다. int[] numbers={1,2,3,4,5}; IntStream stream = Arrays.stre..

Back End/Java 2023.07.24

람다식, 함수형 인터페이스

함수형 프로그래밍 - 함수를 간결하게 표현하는것 람다식은 익명 함수다(anonymous function) - 메서드의 구현을 간결하게 표현 원래 인터페이스안에는 추상메서드가 여러개 들어갈 수 있는데. 함수형 인터페이스는 단 하나의 추상메서드만을 가질수 있다. 이런 함수형 인터페이스를 이용하면 람다 표현식을 사용할 수 있다. 함수형 인터페이스라는걸 명시적으로 선언을 할려면 인터페이스 위에 @FuntionalInterface라고 선언해주면된다. 이걸 단일 추상 메서드 인터페이스(SAM)이라고 하는데 인터페이스여서 클래스로 구현을 해야되는데 람다식을 사용하여 구현을 할 수 있다. 클래스에서 @Override를 이용해서 추상메서드를 가져와서 구현한다. 인터페이스는 객체생성처럼 =new Class(); 이렇게 구..

Back End/Java 2023.07.20

eclipse IDE에서 코드가 잘못되지 않았는데 오류가 발생할경우 처음해볼것

상황: eclipse에서 새로운 category를 따서 구현을 할려는 도중 controller통해서 url과 jsp위치를 정확하게 입력해주었는데. 계속 404오류가 떴다. 해결방안: eclipse IDE에서는 상단의 project-clean와 server에서 서버clean작업을 통해서 쌓인 데이터를 깨끗하게하여 엉킨오류를 해결할 수 도있다. 오류가 발생했는데 문제가 해결안되면 project와 server를 clean을 먼저해보자.

제네릭(Generic)

ArrayList는 Object[] 모든자료형의 부모클래스인 Object배열이라. 어떤 타입의 객체들 다 들어갈 수 있다. 그래서 배열안에 String만 들어가다가 다른 타입의 객체가 들어갈 수 있어서. ArrayList이렇게 제네릭을 String으로 선언해주면 안전성이 보장이된다. 데이터 타입을 일반화하고 컬렉션, 메서드, 클래스 등을 사용할때 런타임때 데이터 타입을 결정할 수 있다. 제네릭클래스로 일반화 시키는 방법 public class ObjectArray{ private T[] array; public ObjectArray(int size){ // 제네릭 배열을 생성하는 방법은 배열을 생성한 후 형변환을 해야합니다. array=(T[]) new Object[size]; } public void ..

Back End/Java 2023.07.16

컬렉션 프레임워크 API(Collection Framework API)

인터페이스 / 클래스 설명 분류 List 순서가 있는 객체의 모음을 다루는 인터페이스 List ArrayList List 인터페이스를 구현하는 클래스 List LinkedList List 인터페이스를 구현하는 클래스 List Set 중복된 원소가 없는 객체의 모음을 다루는 인터페이스 Set HashSet Set 인터페이스를 구현하는 클래스 Set TreeSet SortedSet 인터페이스를 구현하는 클래스 Set Map 키-값 쌍의 객체를 다루는 인터페이스 Map HashMap Map 인터페이스를 구현하는 클래스 Map TreeMap SortedMap 인터페이스를 구현하는 클래스 Map 데이터를 저장하고 관리하는 다양한 방법을 사용할 수 있다. ArrayList에 데이터를 넣을때는 list.add(dat..

Back End/Java 2023.07.15

Wrapper Class

Java에서는 기본자료형(int, float, short 등의 자료형)이있는데 이것을 객체로 다룰수 있도록한 클래스이다. byte -> Byte short -> Short int -> Integer long -> Long float -> Float double -> Double char -> Character boolean -> Boolean Boxing / Unboxing 이 Wrapper class를 사용하는 이유는 collection framework에는 기본자료형을 넣지 못하고 객체자료형을 넣을수 있기 때문이다. 즉 int라는 기본자료형을 Integer로 포장을해준다고 생각하면 이해하기 쉽다. int num = 10; Integer box = Integer.valueOf(i); 이렇게 포장을 하고..

Back End/Java 2023.07.15

특정 상황에서 시간이 지나지 않았는데 session time-out이 발생했을때

증상: grid에 있는 결제완료된 row의 모달을 열때 계속 session time-out이 발생함 해결방법: sql에서 테이블에 있는 자료의 datetime을 그대로 가져와서 오류가 발생한것. modal 열때 데이터를 가져가서 모달에 띄워주는데 controller에 있는 url을 탈때 mybatis sql쿼리를 실행했는데 '2023-07-13 19:40:37.017' 이렇게 되어있던 자료를 2023-07-13의 문자형으로 변환해주니 해결 A.rv_write_dt => convert(char(23),A.rv_write_dt, 21) [CONVERT(CHAR(23), DATETIME, 21) : 2000-01-02 13:14:15.678 -> YYYY-MM-DD HH:MM:SS.MS] mssql 날짜 변환..