전체 글 277

[테코톡] Spring Boot와 AWS를 이용한 이미지 업로드 최적화

출처: https://www.youtube.com/watch?v=r2arbkCTVUk&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=34   이미지를 어디에 올릴까?AWS S3Firebase Storage이미지 전용 서버Database 어떻게 이미지를 업로드할까?MultipartFile: Spring MVC에서 제공하는 인터페이스 활용Stream: 서버를 bypass하여 S3에 업로드Pre-Signed URL: 클라이언트가 S3에 직접 업로드MultipartFile클라이언트는 서버에 파일을 Stream 형태로 전송서버는 파일을 MultipartFile 객체로 임시 디스크에 저장 -> 업로드 완료 후 저장 됨S3에 Stream으로 업로드  서버 디스크 용량을 초과하는 경..

AWS 2025.04.01

[테코톡] DB Replication

영상: https://www.youtube.com/watch?v=7DwxuWyCNHA&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=2 예시 상황쇼핑몰 블랙 프라이데이 이벤트 진행으로 50퍼센트 할인많은 유저가 몰릴 것을 대비하여 취약점 진단(약 평소 5배)WAS와 DB가 하나인 구조로드밸런서와 WAS 여러 개로 개선결과: DB의 CPU 사용률과 메모리 사용률이 100%, 데이터베이스 크래시 발생-> 고가용성(High Availability)이 중요 DB Replication데이터베이스 고가용성을 위한 기술Mysql 8.0, innoDB 기준 개념DB Replication: 한 데이터베이스에서 다른 데이터베이스로 데이터가 동기화되는 것Source(원본 데이터 소장) -..

CS 2025.03.29

[테코톡] MySQL 옵티마이저의 실행계획

유튜브를 통해 매일 조금씩 공부하기...! https://www.youtube.com/watch?v=gcsu7ni3tBc&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH실행계획이란?MySQL 서버 구성MySQL 엔진: SQL 문장 분석 / 최적화 -> 옵티마이저스토리지 엔진: 데이터 저장 / 조회쿼리 실행 과정MySQL 엔진: SQL parser -> SQL 옵티마이저 -> SQL 실행기스토리지 엔진: 데이터 읽기/쓰기실행계획이란?옵티마이저가 결정한 최적의 쿼리 실행방법쿼리 앞에 'EXPLAIN'을 붙여 확인 가능 실행계획 분석테스트 환경 세팅FieldTypeNullKeyidbigintNOPRInicknamevarchar(255)NOUNIageintNOMULaddressvarcha..

CS 2025.03.27

5. Transactions

Transactiontransaction: a unit of progam execution that accesses and possibly updates various data items.예를 들어 A 계좌에서 B 계좌로 돈을 송금하기 위한 트랜잭션Two main issueshardware failures and system crashesconcurrent execution of multiple transactions ACID Properties데이터베이스의 데이터 무결성(integrity)을 보존하기 위해 데이터베이스 시스템이 보장해야 하는 속성들Atomicity (원자성): 모든 트랜잭션은 데이터베이스에 적절히 반영되거나 아무것도 반영되지 않아야 한다.Consistency (일관성): 독립된 트랜잭션..

4. Relational Database Design (Normalization)

Functional Dependencies (함수 종속성)legal relationslegal relations r(R)legal relations를 위한 제약 조건다른 집합의 속성 값을 유일하게 식별할 수 있는 특정 집합의 속성 값들을 필요로 한다.함수 종속성은 키 개념의 일반화functional dependenciesrelation schema R에 속하는 a, b가 있을 때 함수 종속성 a -> bR의 모든 legal relation r(R)에 대해r의 임의의 두 튜플 t1과 t2가 a에서 동일한 값을 가지면 b에서도 동일한 값을 가져야 한다.K is a superkey for R iif K -> RK is a candidate key for R iifK -> R for no a ⊂ K, a -> ..

자바 float과 double의 차이, BigDecimal

백준 1027번 고층건물 https://www.acmicpc.net/problem/1027 - 위 문제를 풀면서 자료형에 대한 복습의 필요성을 느꼈다.- float으로 제출했다가 틀린 문제를 double로 수정한 뒤 맞게 되어서 차이가 궁금해졌다. Java의 기본 자료형크게 8가지의 자료형이 있다.float의 크기는 4byte, double의 크기는 8byte로 double이 더 큰 범위의 숫자를 표현한다.타입분류크기기본값범위byte정수형1byte0-128 ~ 127short정수형2byte0-32,768 ~ 32,767int정수형4byte0-2,147,483,648 ~ 2,147,483,647long정수형8byte0-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775..

고급 매핑 - 3. 복합 키와 식별 관계 매핑

식별 관계 vs 비식별 관계외래 키가 기본 키에 포함되는지 여부에 따라 식별 관계와 비식별 관계로 구분식별 관계부모 테이블의 기본 키를 내려받아서 자식 테이블의 기본 키 + 외래 키로 사용하는 관계 비식별 관계부모 테이블의 기본 키를 받아서 자식 테이블의 외래 키로만 사용하는 관계필수적 비식별 관계: 외래 키에 NULL을 허용하지 않는다.선택적 비식별 관계: 외래 키에 NULL을 허용한다. 복합 키: 비식별 관계 매핑둘 이상의 컬럼으로 구성된 복합 기본 키는 매핑 오류가 발생한다.JPA에서 식별자를 둘 이상 사용하려면 별도의 식별자 클래스를 만들어야 한다.JPA는 영속성 컨텍스트에 엔티티를 보관할 때 엔티티의 식별자를 키로 사용한다. 그리고 구분을 위해 equals와 hashCode를 사용해서 동등성 비..

Spring & JPA 2025.03.19

고급 매핑 - 2. @MappedSuperclass

상속 관계 매핑: 부모 클래스와 자식 클래스 모두를 데이터베이스 테이블과 매핑단순히 매핑 정보를 상속할 목적으로만 사용부모 클래스는 테이블과 매핑하지 않고 상속받는 자식 클래스에게 매핑 정보만 제공하고 싶을 때 @MappedSuperclass를 사용 예제 코드@MappedSuperclasspublic abstract class BaseEntity { @Id @GeneratedValue private Long id; private String name; // ...}@Entitypublic class Member extends BaseEntity { private String email; // ...}@Entitypublic class Seller exte..

Spring & JPA 2025.03.19

고급 매핑 - 1. 상속 관계 매핑

- 프로젝트의 ERD를 검토해보고자 관련 내용을 공부하고 있다.- 데이터베이스 위주로 성능을 개선하고자 한다.ORM에서 이야기하는 상속 관계 매핑은 객체의 상속 구조와 데이터베이스의 슈퍼타입 서브타입 관계를 매핑하는 것슈퍼타입 서브타입 논리 모델을 테이블로 구현하는 방법각각의 테이블로 변환: 조회 시 조인을 사용. JPA에서는 조인 전략이라 한다.통합 테이블로 변환: 테이블을 하나만 사용해 통합. JPA에서는 단일 테이블 전략이라 한다.서브타입 테이블로 변환: 서브 타입마다 하나의 테이블을 만듦. JPA에서는 구현 클래스마다 테이블 전략이라 한다.조인 전략엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본키를 받아서 기본 키 + 외래 키로 사용하는 전략조회할 때 조인을 자주 사용테이블 ..

Spring & JPA 2025.03.19

3. Database Design and E-R Model

Systems Development Life Cycle (SDLC)  Entity-Relationship Modeling-  사용자의 요구사항을 토대로 E-R Modeling을 수행 Example사용자 요구사항 E-R DiagramE-R(Database) Modeling데이터베이스는 엔티티들과 엔티티들 간의 관계의 모음으로 모델링될 수 있다. Entity SetsEntity: 다른 객체와 구별되고 존재하는 객체개념적인 객체개념적, 물리적으로 존재요구 명세에서 보통 명사Entities have attibutesEntity set: 같은 속성을 공유하는 같은 타입의 엔티티 집합 Weak Entity Setsweak entity set: primary key를 가지지 않는 entity setidentifyin..