조인이란?sql 조인은 두 개 이상의 테이블들을 공통 필드를 가지고 통합하는 것으로 스타 스키마로 구성된 테이블들로 분산되어 있던 정보를 통합하는데 사용된다! join의 결과로 양쪽의 필드를 모두 가진 새로운 테이블이 만들어지게 되며,조인의 방식에 따라 어떤 레코드들이 선택되는지, 어떤 필드들이 채워지는지가 결정된다. JOIN 문법!SELECT A.*, B.*FROM raw_dat.table1 A___ JOIN raw_data.table2 B ON A.key1 = B.key1 and A.key2 = B.key2WHERE A.ts>='2019-01-01'; 그렇다면 JOIN시에 고려할 점은 없을까?1. 중복 레코드가 없고 Primary Key의 uniqueness가 보장됨을 체크해야한다.2. 조인하는 ..
Q. Enum 강의 내용 중, BiFunction을 통해 연산을 수행하도록 해주었는데, 자바에서 제공하는 함수형 인터페이스의 종류에는 어떤 것들이 있고 어떻게 사용하는걸까? 자바 8버전부터 빈번하게 사용되는 함수형 인터페이스를 java.util.function 표준 API 패키지로 제공하고 있으며, 제공되는 함수형 인터페이스는 크게 5가지로 Consumer, Supplier, Function, Operator, Predicate가 있습니다! Function 매개값⭕ 리턴값도 있다⭕ 주로 매개값을 반환값으로 매핑할 때 즉, 타입 변환이 목적일 때 사용한다. BiFunction 두 개의 입력 값(T, U)를 받아서 R 타입을 리턴하는 함수형 인터페이스 추상 메소드: R apply(T t, U u) impor..
객체지향적으로 개발해야하는 이유 클래스와 상속 추상 클래스와 인터페이스 Enum 예외 Object 클래스 Optional 객체지향적으로 개발해야하는 이유 절차지향 프로그래밍 → 객체지향 프로그래밍 왜 우리는 객체지향적으로 개발해야 할까❓ 이는 결국 개발 과정에서 자주 발생하는 문제를 해결하기 위함이다! 먼저 객체지향 프로그래밍이 등장하기 전을 살펴보자👻 절차지향 프로그래밍의 경우 데이터와 그 데이터에 접근할 수 이는 함수 사이에 서로 연관 관계가 낮다. 실제 서비스에서는 메시지를 발송하고, 테스트 시에는 발송하지 않기 위해서는 코드를 변경해야 하는데, 이 과정에서 실수가 유발될 수 있다..!(테스트 용이성) 객체지향 프로그래밍을 통해 인터페이스 이용할 수 있다. 여기서 의문이 들 수 있다! 그래도 코드 ..
if문 제거하기 getter와 setter stream API stream API와 Optional if문 제거하기🌳 너무 많은 if문은 코드를 읽기도 어렵고, 수정과 디버깅을 어렵게 만든다! 같은 로직이라면 if문 없이 작성된 코드가 가독성이 높은 코드가 된다. 개선방법 🤨 1. 빠르게 반환하기 Early return 각각의 if문 안에 들어있던 널 체크와 나누기 연산 시 나누는 수 0인지 먼저 검사 후 예외 처리한다. 2. Enum 안으로 넣기 3. 생성 시점에 유효성 검사 체크를 사용하는 시점이 아니라 생성하는 시점에 하기 파라미터로 받은 값이 정상적인 값임을 검사하는 것이 유효성 검사이다.(검사하여 예외를 던져주기!) 생성 시 실패하는 것을 명시적으로 호출한 쪽에 알려주기 위함이다! 리팩토링 "결..
객체지향 프로그래밍이란? Object-Oriented Programming, OOP 프로그래밍에서 필요한 데이터를 추상화 시켜, 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법 💡 간단히 말하면, 실제 세계를 모델링하여 소프트웨어를 개발하는 방법! 데이터와 절차를 하나의 덩어리로 묶어서 생각하게 된다. 컴퓨터 부품을 하나씩 사다가 컴퓨터를 조립하는 것과 같은 방법이다 클래스 속성과 행위를 변수와 메서드로 정의한 것 인스턴스(객체) 클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것으로 실제 프로그램에서 사용되는 데이터 객체 지향 프로그래밍에서 추상화(자료의 추상화) 클래스를 설계하는 것 자체를 의미 공통의 속성이나 기능을 묶어 이름을 붙이는 것 객체 지향..