전체 글

개발에 관련된 학습 내용들을 기록하는 공간입니다.
JPA/Spring Data JPA

[JPA] 다대다 N : N 관계 풀어내기 (중간 테이블 생성)

JPA를 사용하는 프로젝트를 진행하면서 다대다 관계를 풀어내야할 일이 생겼다. 객체 지향언어에서는 2개의 컬렉션 객체로 다대다 관계를 표현 할 수 있지만, 관계형 데이터베이스는 정규화된 2개의 테이블로 다대다 관계를 표현할 수 없다. 이와 같은 한계를 극복하기 위해 중간 테이블을 Entity로 만들어, 일대다 - 다대일 관계로 풀어내야한다. 프로젝트에서 정의한 도메인 관계는 다음과 같다. (관계형 데이터베이스에서 다대다 관계는 없다.) RECRUITMENT : 모집글 테이블 CATEGORY : 카테고리 (태그) 테이블 하나의 모집글은 여러개의 카테고리 (태그)를 가질 수 있고 하나의 카테고리는 여러 모집글에 할당될 수 있기 때문에 다대다 관계이다. 이를 관계형 데이터베이스에서 풀어내려면 중간 테이블을 생..

AWS

[AWS] 로드 밸런서 구축하기 (ELB)

Elastic Load Balancing (ELB)란? Elastic Load Balancing(ELB)은 둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산시켜주는 역할을 합니다. 등록된 대상의 상태를 모니터링하면서 상태가 양호한 대상으로만 트래픽을 라우팅합니다. Elastic Load Balancing은 수신 트래픽의 변화에 따라 로드 밸런서 용량을 자동으로 조정합니다. ELB는 다음 그림과 같이 가용 영역이 다른 여러 서브넷에 여러대의 인스턴스가 있는 상태에서, 각 인스턴스의 상태를 확인하고 이에 따라 트래픽을 분산시켜주는 역할을 합니다. 만약 ELB가 없었다면, 특정 서버에만 트래픽이 몰려 인스턴스가 죽어버리는 상황이 발생할 수 있..

AWS

[AWS] 네트워크 ACL 적용하기 (NACL)

네트워크 액세스 제어목록(ACL) 이란? 네트워크 액세스 제어 목록(ACL)은 서브넷 수준에서 특정 인바운드 또는 아웃바운드 트래픽을 허용하거나 거부합니다. VPC에 대한 기본 네트워크 ACL을 사용하거나 보안 그룹에 대한 규칙과 유사한 규칙을 사용하여 VPC에 대한 사용자 지정 네트워크 ACL을 생성하여 VPC에 보안 계층을 추가할 수 있습니다. 보안 그룹 및 네트워크 ACL 비교 보안 그룹 네트워크 ACL 인스턴스 레벨에서 운영됩니다. 서브넷 레벨에서 운영됩니다. 인스턴스와 연결된 경우에만 인스턴스에 적용됨 연결된 서브넷에서 배포된 모든 인스턴스에 적용됨(보안 그룹 규칙이 지나치게 허용적일 경우 추가 보안 계층 제공) 허용 규칙만 지원 허용 및 거부 규칙 지원 트래픽 허용 여부를 결정하기 전에 모든 ..

Database

[MySQL] - 데이터 형식, 형 변환

데이터베이스에는 다양한 데이터 형식이 존재합니다. 크게 숫자형, 문자형, 날짜형으로 시작하여, 세부적으로도 여러 데이터 형식으로 나눌 수 있습니다. 데이터 베이스에 저장되는 데이터의 형태는 실제로 아주 다양하기 때문에, 각 데이터에 맞는 데이터 형식을 지정함으로써 효율적으로 저장할 수 있습니다. 본 포스팅에서는 MySQL에서 자주 사용되는 데이터 형식을 위주로 정리해보겠습니다. 데이터 형식 📌 정수형 형식 바이트 수 범위 UNSIGNED TINYINT 1 -128 ~ 127 0 ~ 255 SMALLINT 2 -32768 ~ 32767 0 ~ 65535 INT 4 약 -21억 ~ 21억 0 ~ 약 42억 BIGINT 8 약 -900경 ~ 900경 0 ~ 약 1800경 정수형은 소수점이 없는 숫자, 즉 인원..

Algorithm

[SQL] 프로그래머스 - 입양 시각 구하기(2)

https://school.programmers.co.kr/learn/courses/30/lessons/59413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VAR..

Algorithm

유니온 파인드 (Union Find) - Java

유니온 파인드란? 유니온 파인드는 여러 노드가 있을 때 특정 2개의 노드를 연속적으로 연결하여 하나의 집합으로 묶는 union 연산과 특정 노드의 루트 노드를 찾는 find 연산으로 이루어진 알고리즘입니다. 유니온 파인드는 두 노드가 같은 그래프에 속하는지 판별하는 알고리즘으로, 집합 관계를 판별할때 주로 사용합니다. 그리디 알고리즘 중 하나인 크루스칼 알고리즘에서도 사이클을 판별하기 위해 사용합니다. 예시 7개의 섬이 있다고 가정해보겠습니다. 각 섬은 다리로 연결되어 있어, 연결된 섬끼리는 자유롭게 이동할 수 있습니다. 즉, 섬 4 - 3 - 5 는 각 섬끼리 다리로 연결되어 있기 때문에 같은 집합이라고 보는 것이죠. 반대로 섬 1에서 4로는 갈 수 없기 때문에 다른 집합으로 생각합니다. 이러한 집합의..

KAispread
기억의 정류장