반응형

Knowledge 109

MyBatis

MyBatis란객체 지향 언어인 자바와 관계형 데이터베이스 사이의 매핑을 지원하는 ORM(Object Relational Mapping) 프레임워크이다.일반 SQL 쿼리, 동적 쿼리, 저장 프로시저 및 고급 매핑을 지원하는 SQL Mapper이다.JDBC를 통해 RDBMS에 엑세스하는 작업을 캡슐화하고 기존 JDBC의 중복 작업을 간소화한다.MyBatis는 프로그램에 있는 SQL 쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점을 가지고 있다. MyBatis 특징1. 기존 JDBC보다 사용하기 편리하다.JDBC의 모든 기능을 MyBatis가 대부분 제공한다.수동적인 파라미터 설정과 쿼리 결과에 대한 매핑 구문을 제거할 수 있다.기존 JDBC를 이용하여 프로그래밍 하는 방식은 ..

Knowledge/이론 2024.07.26

PL/SQL

1. PL/SQL 이란Procedure Language / SQL 의 약자로, PL/SQL은 프로그래밍 언어의 절차적 특징과 함께 SQL의 조합이라고 할 수 있다.즉, SQL을 확장한 절차적 언어 이다. 유저 프로세스가 PL/SQL 블록을 보내면, 서버 프로세스는 PL/SQL Engine 에서 해당 블록을 받고 SQL과 Procedure를 나눠서 SQL은 SQL Statement Executer 로 보낸다. (1) 기본 특징블록 단위의 실행 제공 ➡️ 이를 위해 BEGIN 과 END ; 를 사용한다. 마지막 라인에 / 를 입력하면 해당 블록이 실행된다.변수, 상수 등을 선언하여 SQL과 절차형 언어에서 사용변수 선언은 DECLARE 절에서만 가능하다. 그리고 BEGIN section 에서 새 값이 할당될..

Knowledge/이론 2024.07.25

오라클 함수 - 단일행 함수

1. 오라클 함수 종류오라클 함수는 함수를 제작한 주체를 기준으로 오라클에서 기본으로 제공하고 있는 내장 함수(built-in function)와 사용자가 필요에 의해 직접 정의한 사용자 정의 함수 (user-defined function)으로 나뉜다. 내장 함수는 입력 방식에 따라 데이터 처리에 사용하는 행이 나뉜다. 데이터가 한 행씩 입력되고 입력된 한 행당 결과가 하나씩 나오는 함수를 단일행 함수(single-row function)라고 한다. 반면 여러 행이 입력되어 하나의 행으로 결과가 반환되는 함수를 다중행 함수(multiple-row function)라고 한다. 2. 단일행 함수 (single-row function)(1) 문자 데이터를 가공하는 문자 함수대 · 소문자를 바꿔 주는 UPPER..

Knowledge/이론 2024.07.24

오라클 데이터베이스

오라클 데이터베이스는 대표적인 상용 관계형 데이터베이스 제품으로, 오라클 사가 만든 DBMS 제품이다. 1. 자료형자료형설명VARCHAR2(길이)4000byte만큼의 가변 길이 문자열 데이터를 저장할 수 있다.NUMBER(전체 자릿수, 소수점 이하 자릿수)NUMBER(p, s)와 같이 표기한 경우 s자리만큼 소수점 이하 자릿수를 표현하고, 이 소수점 자리를 포함한 전체 p자리만큼 숫자 데이터를 저장한다.DATE날짜 형식을 저장하기 위해 사용하는 자료형CHAR(길이)4000byte만큼의 고정 길이 문자열 데이터를 저장할 수 있다.NVARCHAR2(길이)4000byte만큼의 가변 길이 국가별 문자 세트 데이터를 저장할 수 있다.BLOB최대 크기 4GB의 대용량 이진 데이터를 저장CLOB최대 크기 4GB의 대..

Knowledge/이론 2024.07.23

동적 계획법 (DP : Dynamic Programming)

동적 계획법은 복잡한 문제를 여러 개의 간단한 문제로 분리하여 부분의 문제들을 해결함으로써 최종적으로 복잡한 문제의 답을 구하는 방법을 뜻한다. 동적 계획법의 핵심 이론1. 큰 문제를 작은 문제로 나눌 수 있어야 한다.2. 작은 문제들이 반복돼 나타나고 사용되며 이 작은 문제들의 결괏값은 항상 같아야 한다.3. 모든 작은 문제들은 한 번만 계산해 DP 테이블에 저장하며 추후 재사용할 때는 이 DP 테이블을 사용한다. 이를 메모이제이션 기법이라고 한다.4. 동적 계획법은 탑-다운 방식과 바텀-업 방식으로 구현할 수 있다. 동적 계획법의 가장 대표적인 문제인 피보나치 수열의 예D[N] = D[N-1] + D[N-2]  동적 계획법 문제 풀이 과정동적 계획법으로 풀 수 있는지 확인하기점화식 세우기메모이제이션 ..

세그먼트 트리

주어진 데이터의 구간 합과 데이터 업데이트를 빠르게 수행하기 위해 고안해 낸 자료구조의 형태가 바로 세그먼트 트리이다. 세그먼트 트리의 핵심 이론세그먼트 트리의 종류는 구간 합 / 최대 & 최소 구하기로 나눌 수 있고,구현 단계는 (1) 트리 초기화하기, (2) 질의값 구하기 (구간합 또는 최대 & 최소), (3) 데이터 업데이트하기로 나눌 수 있습니다.  구현 단계1. 트리 초기화하기리프 노드의 개수가 데이터의 개수(N) 이상이 되도록 트리 배열을 만든다. 트리 배열의 크기를 구하는 방법은 2^k >= N 을 만족하는 k의 최솟값을 구한 후 2^k * 2 를 트리 배열의 크기로 정의하면 된다. 예를 들어, N = 8일 때 2^3 >= 8 이므로 k 는 3이 되고 트리 배열의 크기는 2^3 * 2 이므로..

최소 신장 트리 알고리즘

최소 신장 트리(MST) 란?그래프에서 모든 노드를 연결할 때 사용된 에지들의 가중치의 합을 최소로 하는 트리이다. 특징사이클이 포함되면 가중치의 합이 최소가 될 수 없으므로 사이클을 포함하지 않는다.N개의 노드가 있으면 최소 신장 트리를 구성하는 에지의 개수는 항상 N - 1 개이다. ※ 절대적이지 않지만,간선이 적으면 KRUSKAL, 간선이 많으면 PRIM 알고리즘이 유리 (1) Kruskal MST 알고리즘(간선을 고르는 간선 중심) 핵심 이론1. 에지 리스트로 그래프를 구현하고 유니온 파인드 배열 초기화하기데이터를 노드가 아닌 에지 중심으로 저장하므로 에지 리스트의 형태로 저장한다.사이클 처리를 위한 유니온 파인드 배열도 함께 초기화한다. 배열의 인덱스를 해당 자리의 값으로 초기화하면 된다.2. ..

Health checks failed with these codes: [404]

☀️문제 상황 (1)AWS에서 EC2를 생성하고 ELB를 생성하여 80 포트로 (nginx)로 타겟 그룹을 설정하였다.Load Balancer DNS 이름으로 접근하려고 할 때  위와 같은 문제가 발생했다. 로드 밸런싱 -> 대상 그룹으로 가서 대상을 확인했더니 상태 확인에 Unhealthy로 빨간불이 들어왔다.  ✅ 첫번째 문제 해결[변경 전] [변경 후] 💡 문제 발생 이유상태 검사 설정에서 입력한 경로에 요청을 보내고 해당 응답을 확인하여 Health Check의 상태를 결정한다.즉, [변경 전] 사진에서 경로가 /actuator/health로 설정되어 있지만 현재 내가 AWS에 올린 서버는 테스트 겸 올린 것이기 때문에  존재하지 않는 경로이다. 존재하지 않는 경로이기 때문에 성공 코드로 설정한..

위상 정렬 (topology sort)

위상 정렬은 사이클이 없는 방향 그래프에서 노드 순서를 찾는 알고리즘이다. 기능특징시간 복잡도(V : 노드 수, E: 엣지 수)노드 간의 순서를 결정사이클이 없어야 함O(V + E)  위상 정렬의 핵심 이론 1. 진입 차수 이해하기진입 차수(in-degree)는 자기 자신을 가리키는 에지의 개수이다.  이 때, 진입 차수 배열 D[N]은 아래와 같다.1234501122  2. 진입 차수 배열 D[N]에서 진입 차수가 0인 노드를 선택하고 선택된 노드를 정렬 배열에 저장한다. 그 후, 인접 리스트에서 선택된 노드가 가리키는 노드들의 진입 차수를 1씩 뺀다. 위 그림의 경우 진입 차수가 0인 노드 1을 선택하여 2, 3의 진입 차수를 1씩 빼 D[2], D[3]을 0으로 만든 것이다. 계속해서 다음 노드 2..

반응형