BastionHost를 이용한 EC2 SSH 접속
개발일지2024. 4. 7. 16:24BastionHost를 이용한 EC2 SSH 접속

1. BastionHost란? 보호된 네트워크에서 유일하게 외부에 노출되는 내외부 네트워크의 연결 호스트를 말한다. 즉 내부 네트워크의 문지기 역할과 같다. 내부 보호된 네트워크는 외부 네트워크와 연결될 수 없지만, 내부 네트워크와는 연결이 가능하다. BastionHost는 외부 네트워크와 연결 가능하게 만들어 내부 네트워크까지 연결할 수 있게 한다. 외부 네트워크 - Bastion Host - 내부 보호된 네트워크 2. BastionHost를 통해 EC2를 접속하게 된 계기 이번에 맡은 프로젝트의 AWS 환경을 구성하게 되었다. 그때 WAS 서버 보안을 위해 EC2를 Private Subnet에 위치하게 끔하였다. Private Subnet에 위치하게 된다면, 외부 네트워크를 받을 수 없게 되어 외부에..

테스트 H2 DB DATEDIFF 메서드 안됨
개발일지2024. 2. 7. 21:48테스트 H2 DB DATEDIFF 메서드 안됨

문제 JPQL 쿼리에서 DATEDIFF 함수를 사용하였는데 테스트 과정 중에 오류가 발생했다. expected "date-time field"; SQL statement: 서버에서는 Mysql을 이용하고 있고, 테스트는 H2 를 이용하고 있었다. H2의 DATEDIFF는 MySQL과 달리 date-time 필드를 필요했고, DBMS마다 메서드 파라미터 값이 달라야한다는 사실이 아찔했다. 그래서 모든 DB가 동일하게 사용할 수 있는 방법을 찾고자 했다. 해결방법 ALIAS 생성 H2 의 기존 DATEDIFF를 제거하고, ALIAS로 만들어 테스트에만 적용하고자 하였으나 기존의 DATEDIFF를 제거 또는 변경할 수 없어 실패 다른 메서드 찾기 DATEDIFF를 대체할만한 다른 메서드를 찾던도중 TIMEST..

[SQL 레벨업] 20강. 결합이 느리다면
BOOK/SQL 레벨업2024. 2. 6. 20:34[SQL 레벨업] 20강. 결합이 느리다면

20강 | 결합이 느리다면 정리 1. 상황에 따른 최적의 결합 알고리즘 알고리즘의 장단점 결합 대상 레코드 수의 관점에서 최적의 결합 알고리즘 정리 소규모 - 소규모 결합 대상 테이블이 작은 경우에는 어떤 알고리즘을 사용해도 성능 차이가 크지 않다. 소규모 - 대규모 소규모 테이블을 구동하는 Nested Loops를 사용합니다. 대규모 테이블의 결합키에 인덱스 있는 것이 중요, 내부 테이블의 결합 대상 레코드가 너무 많다면 구동 테이블과 내부 테이블을 변경 도는 hash를 사용해볼 것을 검토 대규모 - 대규모 hash를 사용, 결합 키로 정렬되어 있는 상태라면 Sort Merge를 사용 2. 실행 계획 제어 DBMS마다 실행 계획을 제어할 수 있다. 다만 MySQL은 결합 알고리즘 자체가 Nested L..

[SQL 레벨업] 19강 결합 알고리즘과 성능
BOOK/SQL 레벨업2024. 2. 5. 23:33[SQL 레벨업] 19강 결합 알고리즘과 성능

19강 | 결합 알고리즘과 성능 정리 옵티마이저가 선택 가능한 결합 알고리즘 (데이터의 크기 또는 결합 키의 분산으로 결정) Nested Loops Hash Sort Merge Nested Loops 알고리즘 각종 결합 알고리즘의 기본이 되는 알고리즘 중첩 반복을 사용하는 알고리즘 세부 처리 외부 테이블(TableA)에서 레코드를 하나씩 반복하며 스캔 외부 테이블 레코드 하나마다 내부테이블(TableB)의 레코드를 하나씩 스캔에서 결합조건에 맞으면 리턴 위의 과정을 외부 테이블 모든 레코드에 반복 특징 각 테이블의 결합 대상 레코드 수가 R(A) ,R(B) 일때 접근되는 레코드 수는 R(A) X R(B)가 된다. 실행시간은 레코드 수에 비례 한번의 단계에서 처리하는 레코드 수가 적으므로 Hash 또는 S..

카테고리 없음2024. 2. 1. 22:33[소프티어] 성적 평균

문제 N명의 학생들의 성적이 학번순서대로 주어졌다. 학번 구간 [A, B]가 주어졌을 때 이 학생들 성적의 평균을 구하는 프로그램을 작성하라. 제약조건 1 ≤ N ≤ 106 인 정수 1 ≤ K ≤ 104 인 정수 1 ≤ Si ≤ 100 인 정수 1 ≤ Ai ≤ Bi ≤ N 입력형식 첫 번째 줄에 학생 수 N과 구간 수 K가 주어진다. 두 번째 줄에는 학생의 성적 Si (1 ≤ i ≤ N)가 주어진다. i + 2 (1 ≤ i ≤ K)번째 줄에는 i번째 구간 Ai, Bi가 주어진다. 출력형식 i번째 줄에 i번째 구간의 성적평균(소수셋째자리에서 반올림)을 출력한다. 차이가 0.01이하이면 정답으로 채점됨. 입력예제1 5 3 10 50 20 70 100 1 3 3 4 1 5 출력예제1 26.67 45.00 50..

BOOK2024. 2. 1. 22:27[객체지향의 사실과 오해]2. 이상한 나라의 객체

이상한 나라의 객체 객체 정의 객체란 식별 가능한 개체 또는 사물이다. 객체는 구별 가능한 식별자,특징적인 행동,변경 가능한 상태를 가진다. 상태 특정시점에 객체가 가지고 있는 정보의 집합으로 객체의 구조적 특징을 표현한다. 객체의 상태는 객체에 존재하는 정적인 프로퍼티와 동적인 프로퍼티 값으로 구성된다. 객체는 스스로의 행동의 의해서만 상태가 변경되는 것을 보장함으로써 객체의 자율성을 유지한다. 행동 행동이란 외부의 요청 또는 수신된 메시지에 응답하기 위해 동작하고 반응하는 활동이다. 부수효과를 초래한다. → 객체가 취하는 행동은 객체 자신의 상태를 변경시킨다. 상태와 행동사이의 관계 객체의 행동은 상태에 영향을 받는다. 객체의 행동은 상태를 변경시킨다. 행동이 상태를 결정한다 협력 객체의 행동은 객체..

BOOK2024. 2. 1. 22:26[객체지향의 사실과 오해] 1. 협력하는 객체들의 공동체

역할,책임,협력 역할,책임,협력이 객체지향 애플리케이션의 윤곽을 결정한다. 역할의 특징 여러 객체가 동일한 역할을 수행할 수 있다. 역할은 대체 가능성을 의미한다. 각 객체는 책임을 수행하는 방법을 자율적으로 선택할 수 있다. 하나의 객체가 동시에 여러 역할을 수행할 수 있다. 협력 객체는 다른 객체와의 협력을 통해 기능을 구현하게 된다. 협력속의 객체 특징 다른 객체에 협력적이어야 하며, 자율적이어야 한다. 객체는 데이터와 프로세스를 함께 지닌다. 객체지향에서 협력은 메시지를 전송하는 객체, 송신자와 메세지를 수신하는 객체, 수신자 사이의 관계로 구성된다. 메서드와 자율성 메서드(method) : 객체가 수신된 메세지를 처리하는 방법 외부의 요청이 무엇인지 표현하는 메시지와 요청을 처리하기 위한 구체적..

[SQL 레벨업] 18강 기능적 관점으로 구분하는 결합의 종류
BOOK/SQL 레벨업2024. 1. 30. 22:38[SQL 레벨업] 18강 기능적 관점으로 구분하는 결합의 종류

18강 | 기능적 관점으로 구분하는 결합의 종류 17강은 5장의 내용을 정리한 부분이라, 스킵했습니다. 정리 Employees 테이블 Department 테이블 테이블 생성 -- Employees 테이블 생성 CREATE TABLE Employees ( emp_id INT PRIMARY KEY, emp_name VARCHAR(50), dept_id INT, FOREIGN KEY (dept_id) REFERENCES Department(dept_id) ); -- Department 테이블 생성 CREATE TABLE Department ( dept_id INT PRIMARY KEY, dept_name VARCHAR(50) ); -- Employees 테이블에 데이터 추가 INSERT INTO Employe..

image