분류 전체보기 135

[Java] Stream

Java 8에 추가된 Stream을 쓰면,람다식 표기법을 활용해서 코드를 함축적으로 표현할 수 있고 병렬처리도 가능하게 된다.추가로 stream을 사용해 코드를 함축적으로 작성하게 되면,코드의 변수 등이 외부에 노출되지 않아 도중에 변수에 다른 값이 대입되는 등의 외부 노출 부작용(Side Effect)를 방지할 수도 있게 된다. Stream은 배열 Array 타입이나 Collection 인터페이스의 List나 Set 타입에도 쓸 수 있다. 다음은 Array와 List의 stream 메소드를 활용한 예이다.import java.util.Arrays;// 필터 filter// 누적계산 reduceInteger sum1 = Arrays.stream(num).filter((a) -> a%2 == 0).redu..

Java 2024.10.23

[Java] Java의 인터페이스

1. @FunctionalInterface사용자 정의 인터페이스@FunctionalInterfaceinterface Plus { void plus(int a, int b, int c);}Plus pl = (a, b, c) -> System.out.println("1. FuctionalInterface: " + (a + b + c)); pl.plus(1, 2, 3); 인터페이스를 사용해서 람다 객체를 생성할 때 인터페이스를 직접 정의하지 않고도,자바에서 제공하는 인터페이스를 사용해서 람다 객체를 생성할 수 있다. 2. Consumer : 리턴값이 없는 accept() 메서드Consumer consumer = (t) -> System.out.println(t);consumer.accept("2. Hello..

Java 2024.10.22

[Java] Set 인터페이스와 Map 인터페이스

Set 인터페이스중복불가HashSet Classadd(x)size()remove(x) contains(x) - hash 내부에 있는지 확인iterator() - 요소 순차 접근메소드: add, size, remove, contains, iterator입력순대로 순서가 유지되지 않는다.해시 코드로 저장해서 검색 속도가 빠름.정렬해서 반환해준다.LinkedHashSet메소드 위와 동일입력순대로 순서가 유지된다.해시 코드로 저장해서 검색 속도가 빠름. ------------------------------------------------------------------------------------------------------------------ Map 인터페이스키와 값으로 연관 배열을 생성키를 해시 ..

Java 2024.10.21

[Java] Link 인터페이스를 구현한 ArrayList와 LinkedList

List ← 인덱스 기반인 배열의 오버헤드 발생 문제점을 해결 (인터페이스)중복허용가변적 크기입력된 순서대로 저장코드에서 list를 구현한 클래스명만을 바꾸기만 하면 프로그램의 자료구조를 바꿀 수 있음. ArrayList ← List를 구현한 클래스LinkedList ← 다른 알고리즘으로 List를 구현한 크래스순차적인 처리에 빠른 속도 제공인덱스를 이용한 요소 접근ArrayList array_List = new ArrayList();ArrayList 클래스의 메소드와 멤버변수를 쓸 수 있음List array_List = new ArrayList();List의 메소드만 쓰고 싶을 경우ArrayList의 메소드add(x)size()indexOf(idx) // 인덱스가 있으면 인덱스 값을 반환, 없으면 -1..

Java 2024.10.21

[DB] 관계의 표기법

관계의 표기법관계명 (Relationship Membership) :  관계의 이름애매한 동사를 피하고 현재형으로 표현해야 한다는 규칙이 있다.관계치수 (Relationship Degree/Cardinality) :  1:1, 1:M, M:N과 같은 관계의 기수성두 개의 엔티티간 관계에서 참여자의 수를 표현한 것이다.관계 선택사양 (Relationship Optionality) :  필수관계, 선택관계엔티티가 관계에 항상 참여하는지, 아니면 참여할 수도 있고 안할 수도 있는지를 나타낸다.

데이터베이스 2024.10.21

[DB] 기본 속성, 파생 속성, 설계 속성

엔티티에 대한 구체적인 정보를 나타내는 속성은 각 속성의 특성에 따라 세 가지로 분류된다.기본 속성파생 속성설계 속성  예시) 은행 예금 원금, 예치기간, 이자율 -> 기본 속성 이자율 -> 파생 속성 예금 분류 -> 설계 속성 기본 속성 (Basic Attribute)  원래 가지고 있어야 하는 속성으로,업무상 필요한 데이터에 대해 정의한 속성파생 속성 (Designed Attribute)데이터를 조회할 때 빠른 성능을 할 수 있도록 하기 위해,원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성설계 속성 (Derived Attribute)업무를 규칙화하기 위해 새로 만들거나 변형한 속성

데이터베이스 2024.10.21

[DB] 엔티티 (기본엔티티, 중심엔티티, 행위엔티티 등)

유무형에 따른 분류발생 시점에 따른 분류유형 엔티티 (Tangible Entity) 기본 엔티티 (Key Entity)개념 엔티티 (Conceptual Entity) 중심 엔티티 (Main Entity)사건 엔티티 (Event Entity) 행위 엔티티 (Active Entity) 엔티티는 실체 유형에 따라 구분하는 방법과 발생 시점에 따라 구분하는 방법이 있다. 유무형에 따른 분류유형 엔티티 (Tangible Entity)물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔티티업무로부터 엔티티를 구분하기가 가장 용이하다.사원, 물품, 강사 등개념 엔티티(Conceptual Entity)물리적인 형태는 존재하지 않고 관리해야 할 개념적 정보로 구분이 되는 엔티티조직, 보험상품 등사건 엔티티 (Event..

데이터베이스 2024.10.21

[Java] 실수 float, double

자바에서는 실수형을 다룰 때 부동 소수점 방식을 사용하기 때문에 float a = 0f; 또는 double b = 0; 을 하면변수 a, b가 정확한 0이 되지 않는다. 때문에 0.0 또는 0.0f로 나누게 되면 결과는 무한대(Infinity) 또는 NaN(Not a Number)이 된다.3 / 0.0 // 무한대(Infinity)5 % 0.0 // NaN 위의 결과에서 계속 연산을 하더라도 무한대는 무한대, NaN은 계속 NaN이 되기 때문에나눗셈 연산을 할 때에는,나눗셈 연산의 결과가 무한대 혹은 NaN이 되는지 먼저 확인하고 연산을 계속해 나아가는 것이 좋다.이를 확인하기 위한 함수가 Double.isInfinite()와 Double.isNaN()이다.double a = 4 / 0.0doub..

Java 2024.10.18