전체 글

전체 글

    [GitHub] merge 방법

    [GitHub] merge 방법

    GitHub merge 방법 3가지 merge 방법이 있다. 1. Create a merge commit feature branch의 모든 commit을 merge commit을 통해 base branch(develop)에 추가한다. - Merge 후 Network graph 살펴보기 - feature branch 삭제 후 Network graph 살펴보기 branch를 만들어서 작업했던 것을 눈으로 확인할 수 있다. 2. Squash and merge branch의 commit 들을 묶어서 하나의 commit으로 만들어서 rebase 하는 방법 feature branch를 생성했던 흔적이 남지 않는다. - Merge 후 Network graph 살펴보기 - feature branch 삭제 후 Netwo..

    [Spring] MyBatis Collection N+1 문제

    [Spring] MyBatis Collection N+1 문제

    결산자료 중 계정항목별로 예산현액과 월계/누계 및 하위거래내역을 아래의 양식으로 출력해주는 기능을 개발했었다. JSON 데이터 추출예시 [ ..., { "mock_code": "DC2022_I080101", "mock_name": "이자수입", "current_budg_amount": 29972, "input_tran_amount": 221, "output_tran_amount": 0, "input_accumulated_amount": 249 "output_accumulated_amount": 0, "balance": 29751, "generalLedgerDetails": [ { "tran_date": "05/31", "tran_input_price": 200, "tran_output_price": 0,..

    Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

    CentOS 8 은 2021년 12월 31일부로 EOS 되어 지원이 중단되었습니다. Error [centos@ip-172-31-24-187 ~]$ sudo yum update CentOS-8 - AppStream 34 B/s | 38 B 00:01 Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlist 해당 오류는 CentOS 8 지원 중단으로 인하여 Mirror Site를 찾지 못해 발생되는 문제로, 아래 명령어를 실행하여 해결가능합니다. $ sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/..

    CentOS에 tomcat 서버구축 및 배포하기 (with AWS EC2)

    CentOS에 tomcat 서버구축 및 배포하기 (with AWS EC2)

    AWS 인스턴스 생성 (간단설명) 인스턴스 생성 AMI 선택 CentOS 8은 2021년 12월 31일부로 지원중단되어 다른 버전을 선택하도록 한다. 기타설정 종료방지 옵션 등 필요한 옵션 설정 보안그룹 생성 Tomcat 설치 업데이트 $ sudo yum update JDK 설치 설치가능한 JDK 확인 (여기서부터 관리자 권한으로 바꿔서 진행함) $ sudo su # yum list java*jdk-devel CentOS Linux 8 - AppStream 35 MB/s | 8.4 MB 00:00 CentOS Linux 8 - BaseOS 19 MB/s | 4.6 MB 00:00 CentOS Linux 8 - Extras 70 kB/s | 1.5 kB 00:00 Available Packages java..

    [SQLD 이론정리] Ⅱ. SQL 기본 및 활용 3

    [SQLD 이론정리] Ⅱ. SQL 기본 및 활용 3

    제 3장. 최적화 기본 원리 옵티마이저 옵티마이저(Optimizer)는 사용자가 질의한 SQL 문에 대해 최적의 실행 방법을 결정하는 역할을 수 행한다. 이러한 최적의 실행 방법을 실행계획(Execution Plan)이라고 한다. 규칙기반 옵티마이저(RBO, Rule Based Optimizer) 규칙기반 옵티마이저는 규칙(우선 순위)을 가지고 실행계획을 생성한다. 규칙기반 옵티마이저의 규칙 규칙 1. Single row by rowid : ROWID를 통해서 테이블에서 하나의 행을 액세스하는 방식이다. ROWID는 행이 포함된 데이터 파일, 블록 등의 정보를 가지고 있기 때문에 다른 정보를 참조하지 않고도 바로 원하는 행을 액세스할 수 있다. 하나의 행을 액세스하는 가장 빠른 방법이다. 규칙 4. Si..

    [SQLD 이론정리] Ⅱ. SQL 기본 및 활용 2

    [SQLD 이론정리] Ⅱ. SQL 기본 및 활용 2

    제 2장. SQL 활용 일반 집합 연산자 일반 집합 연산자를 SQL과 비교 UNION 연산은 UNION 기능으로, INTERSECTION 연산은 INTERSECT 기능으로, DIFFERENCE 연산은 EXCEPT(Oracle 은 MINUS) 기능으로, PRODUCT 연산은 CROSS JOIN 기능으로 구현되었다. 순수 관계 연산자 순수 관계 연산자는 관계형 데이터베이스를 구현하기 위해 새롭게 만들어진 연산자로, SELECT, PROJECT, JOIN, DIVIDE가 있다. 순수 관계 연산자와 SQL 문장 비교 SELECT 연산은 WHERE 절로 구현되었다. PROJECT 연산은 SELECT 절로 구현되었다. (NATURAL) JOIN 연산은 다양한 JOIN 기능으로 구현되었다. DIVIDE 연산은 현재 ..

    [SQLD 이론정리] Ⅱ. SQL 기본 및 활용 1

    [SQLD 이론정리] Ⅱ. SQL 기본 및 활용 1

    제 1장. SQL 기본 SQL SQL 문장들의 종류 데이터 조작어 비절차적 데이터 조작어(DML)는 사용자가 무슨 데이터를 원하는 지만 명세함 절차적 데이터 조작어는 어떻게 데이터를 접근해야 하는지 명세함 호스트 프로그램 속에 삽입되어 사용되는 DML 명령어들을 데이터 부속어(Data Sub Language)라고 한다. DDL CREATE ON DELETE [옵션] CASCADE, RESTRICT, SET NULL, SET DEFAULT, NO ACTION Insert Action 설명 Automatic Master 테이블에 PK가 없는 경우 Master PK를 생성 후 Child 입력 Dependent Master 테이블에 PK가 존재할 때만 Child 입력 허용 SET NULL Master 테이블에 ..

    [SQLD 이론정리] I. 데이터 모델링의 이해2

    [SQLD 이론정리] I. 데이터 모델링의 이해2

    제 2장. 데이터 모델과 성능 성능 데이터모델링 데이터베이스 성능 향상을 목적으로 설계단계의 데이터모델링 때부터 성능과 관련된 사항이 데이터모델링에 반영될 수 있도록 하는 것 성능 데이터모델링 특징 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용이 증가한다. 데이터모델은 성능을 튜닝하면서 변경이 될 수 있는 특징이 있다. 분석/설계 단계에서 성능을 고려한 데이터모델링을 수행할 경우 성능저하에 따른 Rework비용을 최소화 할 수 있는 기회를 가지게 된다. 성능 데이터모델링 수행절차 데이터 모델링을 할 때 정규화를 정확하게 수행한다. 데이터베이스 용량산정을 수행한다. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다. 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다. 이력모델의 조정, PK/FK 조..