목록Programing/Datababse (33)
T_era
1. Dockerfile 작성하기프로젝트의 가장 최상위 위치(.gitignore 파일이 있는 곳)에 Dockerfile이라는 이름의 파일을 만들기 확장자 X # 1. 베이스 이미지 선택 (JDK 17, MAC 기반)FROM eclipse-temurin:17-jdk# 2. JAR 파일이 생성될 경로를 변수로 지정ARG JAR_FILE_PATH=build/libs/*.jar# 3. build/libs/ 에 있는 JAR 파일을 app.jar 라는 이름으로 복사COPY ${JAR_FILE_PATH} app.jar# 4. 컨테이너가 시작될 때 이 명령어를 실행ENTRYPOINT ["java", "-jar", "/app.jar"]#FROM: 어떤 환경을 기반으로 이미지를 만들지 선택.##COPY: 내 컴퓨터에 있는..
아래는 macOS에서 PostgreSQL 16을 설치하고, 사용자/비밀번호/DB/스키마를 생성한 뒤, Spring Boot 프로젝트에 적용하는 전체 과정을 정리한 가이드입니다. 터미널에서 사용한 명령어와 주요 설정 방법을 모두 포함했습니다.---## 1. Homebrew로 PostgreSQL 16 설치brew install postgresql@16설치 후, PostgreSQL 서비스를 백그라운드로 실행:brew services start postgresql@16PATH에 PostgreSQL 바이너리 추가:echo 'export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"' >> ~/.zshrcsource ~/.zshrc설치 확인:psql --version---..
이전 포스팅에서는 관계형 데이터베이스(RDBMS)의 선택 기준을 다루었다. 이번에는 Key-Value Store에 집중하여, 프로젝트의 특정 요구사항에 최적화된 시스템을 어떻게 선택할지 모색해보자. Key-Value Store는 RDBMS와는 다른 강점을 지니므로, 그 특성을 정확히 이해하는 것이 중요하다.1. Key-Value Store 선택의 중요성Key-Value Store는 이름 그대로 '키(Key)'와 '값(Value)'의 쌍으로 데이터를 저장하는 가장 단순한 형태의 NoSQL 데이터베이스 모델이다. 이러한 단순성 덕분에 매우 빠른 읽기/쓰기 성능을 제공하며, 주로 캐싱, 세션 관리, 실시간 데이터 처리 등 높은 처리량과 낮은 지연 시간이 요구되는 시나리오에 적합하다.2. 주요 Key-Value..
어떤 시스템을 써야 최적의 선택을 했다고 할 수 있을까?이전 포스팅에서는 다양한 데이터베이스 모델의 특징을 개괄하였다. 이번에는 관계형 데이터베이스(RDBMS)에 집중하여 프로젝트 요구사항에 최적화된 시스템 선택 방안을 모색해보자. 일단 RDBMS는 시스템의 핵심 구성 요소이므로 신중한 결정이 요구된다.1. 관계형 데이터베이스 (RDBMS) 선택의 중요성RDBMS는 데이터 관리 시스템의 핵심적인 모델이다. MySQL, Oracle, PostgreSQL, SQL Server 등 다양한 선택지가 존재하며, 각 시스템은 고유의 장점과 특징을 지닌다. 따라서 프로젝트의 특성을 정확히 파악하고 각 RDBMS의 강점을 비교 분석하는 것이 필수적이다.2. 주요 RDBMS 특징 및 적합한 사용 사례MySQL: RDBM..
면접 대비! "왜 MySQL을 쓰셨나요?" 질문에 대한 대답을 생각하다 정리해봤다면접을 준비하면서 문득 이런 질문이 떠올랐다. "데이터베이스는 왜 MySQL을 썼나요?" 단순히 "많이 써서요"라고 대답할 수는 없을 것이다. 면접관에게 깊은 인상을 남기고, 나아가 프로젝트에 가장 적합한 데이터베이스를 선택하기 위한 방법을 찾아보기위해 다양한 데이터베이스를 알아보자1. 다양한 데이터베이스 관리 시스템: 왜 이렇게 많은 걸 알아야 할까요? 데이터를 저장하고 관리하는 방식은 생각보다 훨씬 다양하다. 마치 엑셀, JSON, 그래프 등 다양한 형태로 정보를 표현할 수 있는 것처럼 말이다. 이러한 다양한 방식을 데이터베이스 모델이라고 부른다. 처음에는 "왜 이렇게 종류가 많지? 다 알아야 하나?"라는 생각도 들었지만..
데이터베이스 키의 종류기본 키 (Primary Key): 각 레코드를 고유하게 식별하는 키. 테이블 당 하나만 존재.외래 키 (Foreign Key): 다른 테이블의 기본 키를 참조하여 테이블 간의 관계를 설정하는 키.유니크 키 (Unique Key): 테이블 내에서 고유한 값을 갖는 키. NULL 값 허용 여부 및 개수는 DB에 따라 다름.후보 키 (Candidate Key): 기본 키가 될 수 있는 하나 이상의 속성(또는 속성 집합). 기본 키를 선택하기 전의 대상 키들.인공 키 (Surrogate Key): 데이터 자체의 의미와 관계없이 인위적으로 생성된 기본 키. 최근에는 성능 및 유지보수 용이성 때문에 인공 키를 기본 키로 사용하는 경향이 높음. 정렬 속도 향상 및 Join 연산 시 데이터 양 ..
자료형MySQL Database에 사용할 수 있는 데이터 타입숫자형정수타입 Byte 범위 설명TINYINT1signed : - 128 ~ 127 unsigned : 0 ~ 256정수 SMALLINT2signed : -32,768 ~ 32,767 unsigned : 0 ~ 65535정수 MEDIUMINT3signed : -8388608 ~ 8388607 unsigned : 0 ~ 16777215정수 INT4signed : -2147483648 ~ 2147483647 unsigned : 0 ~ 4294967295정수 BIGINT8signed : 약 -900경 ~ + 900경 unsigned : 0 ~ 약 1800경정수 SIGNED, UNSIGNED 예약어정수형 자료형에만 사용할 수 있다.양수만 사용..
DDL(Data Definition Language)데이터베이스 구조를 정의하는 데 사용된다.CREATE새로운 데이터베이스 및 테이블을 생성한다.ALTER기존 데이터베이스 및 테이블 구조를 수정한다.DROP데이터베이스 및 테이블을 삭제한다.DML(Data Manipulation Language)데이터베이스의 데이터를 조작하는 데 사용된다.INSERT데이터를 테이블에 삽입한다.UPDATE테이블의 기존 데이터를 수정한다.DELETE테이블의 데이터를 삭제한다.DQL(Data Query Language)데이터베이스에서 데이터를 검색하는 데 사용된다.SELECT데이터를 조회한다. 특정 조건을 추가할 수 있다.DCL(Data Control Language)데이터베이스의 권한을 관리하는 데 사용된다.GRANT사용자에..
Employees 테이블:EmployeeIDNameDepartmentSalary1AliceHR50002BobIT70003CharlieIT60004DavidHR45005EveSales55006FrankIT7200Projects 테이블:ProjectIDProjectNameBudget101Alpha10000102Beta15000103Gamma12000104Delta8000EmployeeProjects 테이블:EmployeeIDProjectID1101210131024103510461026103요구사항:1.각 직원이 속한 부서에서 가장 높은 월급을 받는 직원들만 포함된 결과를 조회하는 SQL 쿼리를 작성해주세요.a. 출력 결과에는 직원의 이름, 부서, 그리고 월급이 포함되어야 합니다. b.기대 결과NameDepa..
더보기문제:Products 테이블:ProductIDProductNameCategoryPrice1LaptopElectronics10002SmartphoneElectronics8003HeadphonesElectronics1504Coffee MakerHome2005BlenderHome100Orders 테이블:OrderIDProductIDOrderDateQuantityCustomerID10112024-02-012110232024-02-021210322024-02-031110442024-02-043310512024-02-051210652024-02-0623Customers 테이블:CustomerIDCustomerNameCountry1AliceUSA2BobUK3CharlieUSA요구사항:1.각 고객이 구매한 모든 ..