목록데브코스 웹 백엔드/TIL (10)
영권's
JOIN SQL 조인은 두 개 이상의 테이블들을 공통 필드를 가지고 통합 스타 스키마로 구성된 테이블들로 분산되어 있던 정보를 통합하는데 사용 JOIN의 결과로 양쪽의 필드를 모두 가진 새로운 테이블을 만들어짐 조인의 방식에 따라 다음 두 가지가 달라짐 어떤 레코드들이 선택되는지? 어떤 필드들이 채워지는지 JOIN 문법 SELECT A.*, B.* FROM raw_data.table1 A _/* INner, LEFT, RIGHT, CROSS */ JOIN raw_data.table2 B ON A.key1 = B.key1 and A.key2 = B.key2 WHERE A.ts >= '2019-01-01'; JOIN 시 고려해야 할 점 먼저 중복 레코드가 없고 Primary key의 uniqueness가 보..
데이터베이스가 왜 필요한가? 모든 IT서비스는 데이터를 만들어내고 이는 기록되어야 함 예) 쿠팡에서 회원 가입시 회정정보 저장 필요, 구매 관련 정보 저장 필요 등등 어디에 이런 데이터를 저장할까? 프로덕션 관계형 데이터베이스 어떤 서비스의 운영에 필요한 데이터를 저장하는 곳(MySQL, PostgreSQL ,... ) 빠른 처리속도가 중요함 vs 데이터 웨어하우스 관계형 데이터베이스 데이터를 구조화된 테이블들의 집합으로 구성하여 저장하고 관리 개발자라면 잘 알아야하는 기본 기술 관계형 DB의 프로그래밍 언어가 SQL 데이터 분석을 위한 데이터베이스 데이터 웨어하우스 회사 관련 데이터를 저장하고 분석함으로써 의사결정과 서비스 최적화에 이용 BigQuery, Snowflake, MySQL ... 처리속도 ..
함수형 인터페이스란 추상 메서드가 단 한개만 있는 경우 해당 인터페이스는 함수형 인터페이스 입니다. static 메서드나 default 메서드의 존재 여부는 상관없습니다. @FunctionalInterface 어노테이션을 통해 컴파일 타임에서 함수형 인터페이스인지 검증할 수 있습니다. 원래 인터페이스를 인스턴스로 만들기 위해서는 Implements 해서 구현한 클래스를 사용하거나 익명 구현 클래스를 사용하는 방법이 있었습니다. 자바 8에서부터는 추상메서드가 하나인 함수형 인터페이스의 경우에는 좀 더 줄여서 쓸 수 있는 람다 표현식이 있습니다. 메소드 레퍼런스(Method Reference)는 Lambda 표현식을 더 간단하게 표현하는 방법입니다. 람다가 하는 일이 기존 메서드 또는 생성자를 호출하는 거라..
데브코스 백엔드 과정에서 공부하면서 JAVA 개발환경 세팅에 대해서 보다가 환경변수에 클래스패스 세팅하는 것을 보았는데 예전에 백기선님 온라인 스터디에서 공부하였을 때 환경변수에 시스템 변수로 설정하는것은 문제가 발생할 수 있다라고 공부한 기억이 있어서 어떻게 하는것이 맞을지 공부하고 흐려진 기억을 다시 되새기면서 정리하기로 하였습니다. 먼저 클래스패스에 대해서 알아보자 클래스패스란, JVM이나 Java 컴파일러에 사용자정의 클래스와 패키지의 위치를 지정해주는 파라미터이다. 쉽게 말해, 자바가 클래스를 찾아 사용을 해야하는데, 클래스들이 어디 있는지 위치를 지정해주는 값이다. 좀더 자바의 관점에서 말한다면 JVM이 프로그램을 실행할 때, 클래스 파일을 찾는 데 기준이 되는 파일 경로를 말합니다. 소스 코..