전체 글(38)
-
JOIN, UNION, 데이터베이스 생성하기
JOIN 두개 이상의 테이블을 엮어 결과를 얻어냄 테이블을 연결하려면 키가 있어야 한다 열을 기반으로 데이터 간의 연결을 수행한다. 두 테이블의 속성을 전부 합치고, 속성의 값이 없는 경우 자동으로 null이 할당된다 INNER JOIN JOIN만 작성하면 기본적으로 INNER JOIN 두 테이블에서 join condition을 만족하는 튜플들로 결과 테이블을 만듦 ON 뒤에 오는 join condition을 만족하는 튜플들을 가져온다 (비교연산자 = 말고도 , != 등 가능) 각 테이블의 튜플들을 조합한다 교집합과 비슷한 형태 OUTER JOIN 두 테이블에서 join condition을 만족하는 튜플들도 포함하여 결과 테이블을 만듦 UNION 두 개 이상의 SELECT 문의 결과 집합을 결합하여 단일..
2024.02.27 -
SQL 기초
database (DB) : 전자적으로 저장되고 사용되는 관련있는 데이터들의 조직화된 집합DBMS : 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템, DB를 정의하다 보면 부가적인 데이터가 발생한다(메타 데이터)meta data : 데이터를 설명하는 데이터, database를 정의하거나 기술하는 data, metadata 또한 DBMS로 저장/관리 데이터 베이스 시스템 과정 간단 정리 사용자나 프로그래머가 어플리케이션 사용어플리케이션 프로그램에는 데이터 페이스에 접근하기 위한 여러가지 쿼리들이 존재프로그램들이 쿼리를 날리게 되면 DBMS들이 쿼리를 받아서 쿼리가 어떤 의미인지 분석요청을 처리하기 위해 데이터를 읽어오기 위한 부가적인 정보들을 확인한 후, 그 정보를 바탕으로..
2024.02.24 -
정적 팩토리 메서드
List.of(), Optional.of() 등의 메서드를 써보다가 of()라는 비슷한 이름을 가진 메서드가 있다는 것을 알게 되었다 이 것들은 정적 팩토리 메서드 라고 칭하는 것 들 이었다. 생성자에 private 접근제한을 두어 외부에서 new키워드를 이용하여 객체 생성을 막는 조치가 되어 있다. 정적 팩토리 메서드의 특징 1. 생성 목적에 대한 이름 표현이 가능하다 클래스를 설계할때 다양한 타입의 객체를 생성하기 위해, 목적에 따라 생성자 오버로딩을 하였다 오버로딩 된 생성자와 new키워드를 통해 객체를 생성하려면 개발자는 생성자의 인자 순서와 내부 구조를 알고 있어야 한다 생성자로 넘기는 매개변수 만으로는 반환될 객체의 특성을 제대로 표현하기 어렵다(생성자 이름이 클래스 이름으로 고정되어 있어야 ..
2024.02.22 -
프로세스, 쓰레드
프로그램은 실행되기 전까지는 그저 보조기억장치에 있는 데이터 덩어리 뿐이지만, 프로그램을 메모리에 적재하고 실행하는 순간 그 프로그램은 프로세스가 된다 ⇒ 프로세스를 생성한다 사용자가 보는 앞에서 실행되는 프로세스 : 포그라운드 프로세스 사용자가 보지 못하는 뒤에서 실행되는 프로세스 : 백그라운드 프로세스 프로세스 제어 블록 운영체제는 빠르게 번갈아 수행되는 프로세스의 실행순서를 관리하고, 프로세스에 CPU를 비롯한 자원을 배분한다. 이를 위해 프로세스 제어 블록(PCB)을 이용한다. 프로세스와 관련된 정보를 저장하는 자료구조. 마치 상품의 태그 커널 영역에 생성된다(운영체제가 적재되는 영역) 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기된다. 프로세스의 메모리 영역 코드 영역(텍스트 영역) 실행할 ..
2024.02.21 -
스트림
BaseStream : 스트림 최 상위 인터페이스, 공통 메서드들이 정의 되어 있을 뿐, 코드에서 직접적으로 사용되지는 않는다. Stream : 객체 요소 처리 스트림 IntStream, LongStream, DoubleStream : 기본형 스트림 Stream 대신 IntStream을 쓰는 것이 좋다 (오토박싱, 언박싱) Stream 보다 유용한 메서드를 더 제공 (sum, average 등) 주로 컬렉션과 배열에서 스트림 인터페이스 구현 객체를 얻지만 다양한 소스가 존재 컬렉션, 배열, 특정 범위의 수(int, long), 랜덤 수, 람다식(iterate() ⇒ 초기값 있음, generate() 초기값 없음), 디렉토리, 파일 concat메소드로 스트림을 연결 할 수 있다. 스트림의 특징 스트림은 데..
2024.02.21 -
람다식
람다식 ⇒ 익명 함수를 생성하기위한 식, 객체 지향 언어 보다는 함수 지향 언어에 가깝다 자바 코드가 매우 간결해지고, 컬렉션의 요소를 필터링 하거나 매핑해서 원하는 결과를 쉽게 집계할 수 있다 매개변수를 가진 코드 블록이지만, 런타임 시에는 익명 구현 객체를 생성한다 자바는 메소드를 단독으로 선언할 수 없고 항상 클래스의 구성 멤버로 선언해야 한다 위의 제약에 끼워 맞추기 위해 인터페이스에 추상 메서드를 하나만 선언 하여 함수적 인터페이스가 존재한다. 람다식으로 생성되는 익명 객체를 함수적 인터페이스 타입 변수에 담는다. @FunctionalInterface 어노테이션 : 함수적 인터페이스를 작성할 때 두 개 이상의 추상 메서드가 선언되지 않도록 컴파일러가 체크해주는 기능 매개변수 타입 람다식은 런타임..
2024.02.21