728x90
분류 전체보기
544

[DATABASE] Subquery (서브쿼리) - IN, (NOT) EXISTS, ANY, ALL

정의된 테이블 예시 테이블 명: article attribute type id (PRIMARY KEY) bigint title varchar content varchar created_at datetime 테이블 명: comment attribute type id (PRIMARY KEY) bigint article_id (FOREIGN KEY) bigint content varchar created_at datetime Subquery SELECT id, title, content, created_at FROM article WHERE created_at < ( SELECT created_at FROM article WHERE id = 1 ); SELECT created_at FROM article WH..

Database 2023.11.22

[DATABASE] 데이터 조회 - Alias, DISTINCT, LIKE, *

정의된 테이블 예시 테이블 명: article attribute type id (PRIMARY KEY) bigint title varchar content varchar created_at datetime 테이블 명: comment attribute type id (PRIMARY KEY) bigint article_id (FOREIGN KEY) bigint content varchar created_at datetime 데이터 조회 SELECT article.id, title, comment.content FROM article, comment WHERE comment.id = 10 and comment.article_id = article.id; WHERE comment.id selection cond..

Database 2023.11.21

[DATABASE] 데이터 추가, 수정, 삭제

정의된 테이블 예시 테이블 명: article attribute type id (PRIMARY KEY) bigint title varchar content varchar created_at datetime 데이터 추가 INSERT INTO article VALUES (1, 'title', 'content', now()); 같은 id(PK)로 두 번 이상 INSERT한다면 에러가 발생한다. INSERT INTO article (id, title, content, created_at) VALUES (1, 'title', 'content', now()); 위와 같이 attribute를 지정해줄 수 있는 방법이 있다. 이로 인해 attribute의 값 순서를 명시적으로 지정해줄 수 있다. 데이터 수정 UPDAT..

Database 2023.11.20

[DATABASE] schema 변경

ALTER TABLE로 table의 schema를 변경할 수 있다 종류 MySQL attribute 추가 ALTER TABLE member ADD gender VARCHAR(2); attribute 이름 변경 ALTER TABLE member RENAME COLUMN addr TO address; attribute 타입 변경 ALTER TABLE member MODIFY COLUMN gender CHAR(2); table 이름 변경 ALTER TABLE member RENAME TO user_account; primary key 추가 ALTER TABLE member ADD PRIMARY KEY (id); 이미 서비스 중인 table의 schema를 변경하는 것이라면 주의해서 변경해야한다. [refere..

Database 2023.11.17

[DATABASE] constraint의 적용

PRIMARY KEY Table의 tuple을 식별하기 위해 사용하며 하나 이상의 attribute로 구성 중복된 값을 가질 수 없으며 NULL을 가질 수 없다. 예를 들어 다음과 같이 Primary Key인 id가 같은 tuple이 존재하면 안된다. id title 1 title1 1 title2 2 title3 attribute가 하나일 때 create table Article( id INT PRIMARY KEY, ... ); attribute가 하나 이상일 때 create table Article( id INT, ... PRIMARY KEY (id) ); attribute가 두 개 이상일 경우 PRIMARY KEY(id, number)처럼 선언해주면 된다. UNIQUE Unique로 지정된 attr..

Database 2023.11.17

[DATABASE] attribute data type

Number 종류 설명 MySQL 정수 정수를 저장할 떄 사용 TYNYINT SMALLINT MEDIUMINT INT or INTEGER BIGINT 부동 소수점 (floating-point) 실수를 저장할 때 사용하며 고정 소수점 방식에 비해 정확하지 않다 FLOAT DOUBLE or DOUBLE PRECISION 고정 소수점 (fixed-point) 실수를 정확하게 저장할 때 사용 DECIMAL or NUMERIC String 종류 설명 MySQL 고정 크기 문자열 최대 몇 개의 문자를 가지는 문자열을 저장할지 지정한다. 만약 저장될 문자열의 길이가 최대 길이보다 작으면 나머지는 공백(space)로 채워서 저장한다. 예를 들어 CHAR(4)일 때 "a, 이름, 대한민국"과 같이 저장된다. CHAR(n..

Database 2023.11.17

[DATABASE] 데이터베이스와 테이블 생성, 삭제

데이터베이스 생성 CREATE DATABASE {Database name}; 데이터베이스 리스트 확인 SHOW DATABASES; 사용 중인 데이터베이스 확인 SELECT database(); 사용할 데이터베이스 선택 USE {Database name}; 데이터베이스 삭제 DROP DATABASE {Database name}; 테이블 생성 create table Article ( id INT PRIMARY KEY, title VARCHAR(50) NOT NULL UNIQUE, comment_id INT ); 테이블 삭제 DROP TABLE {table name};

Database 2023.11.17

[Java] HashTable

Key: 해시 테이블 접글을 위한 값 Hash Function: Key를 Hash Value로 매핑하는 연산 Hash Value: Hash Table의 인덱스 Hash Table: Key-Value를 연관시켜 저장하는 데이터 구조 해시 충돌 Hash Table의 같은 공간에 서로 다른 값을 저장하려는 경우, 서로 다른 Key가 해시 함수를 통해 생성된 Hash Value가 동일한 경우 해시 충돌이 있어날 수 있다. 해시 충돌 해결 방법으로는 크게 개방 주소법과 분리 연결법이 있다. 개방 주소법 (Open Address) 테이블에서 비어있는 공간의 Hash를 찾아 데이터를 저장 Hash와 Value는 1:1 관계를 유지 비어있는 공간 탐색 방법에 따라 선형 탐사법, 제곱 탐사법, 이중 해싱 등으로 분류 1..

Check Exception vs Uncheck Exception

예외 기본 규칙 1. 예외 처리 예외를 처리하기위해 try-catch문을 사용 2. 예외 던짐 예외를 처리하지 않고 계속 던지면 main()의 경우 시스템이 종료되며 웹 애플리케이션의 경우 WAS가 예외를 처리하는데 주로 개발자가 지정한 오류 페이지를 보여준다. Check Exception 체크 예외인 Exception과 그 하위 예외는 모두 컴파일러가 체크한다. 체크 예외는 잡아서 처리하거나 밖으로 던져야한다. 그렇지 않으면 컴파일 에러가 발생한다. 예외를 처리할 수 없을 경우에는 throws 예외를 필수로 선언해주어야 한다. 장점 개발자가 실수로 예외를 누락하지 않도록 컴파일러를 통해 문제를 잡아준다. 단점 개발자가 모든 체크 예외를 반드시 잡거나 던지도록 처리해야한다. 모든 하위 메소드들에 선언한 ..

Java & Spring 2023.11.10

신입 개발자에게 자료구조와 알고리즘이 중요한 이유

DSA(Data Structure and Algorithms)는 소프트웨어 구현과 채용 과정에서 중요한 역할을 한다. 개발자는 기업에서 맞닥뜨린 문제들을 해결하기위해 올바른 결정을 내려야한다. 예를 들어 자동차 정비사가 자동차를 수리하기위해서 올바른 도구가 필요한 것처럼 개발자는 소프트웨어가 제대로 실행되도록 올바른 도구(DSA)가 필요하다. 구글, 마이크로소프트, 메타, 아마존과 같은 기업들이 다른 기업들보다 급여가 높은 이유가 뭘까? 이런 기업들은 구현하는 시간을 대충 20~20%만 할애한다. 대부분의 시간은 최적의 알고리즘으로 설계하여 기업의 자원을 절약하는데 사용된다. 이것이 기업이 DSA를 중요하게 생각하는 이유이다. 현실에서의 복잡한 문제들을 해결하기위해서도 DSA는 중요하게 작용한다. 몇 가..

Temp 2023.11.08
728x90