profile
클린코드 지향

[친절한 SQL 튜닝] 6.3 파티션을 활용한 DML 튜닝

6.3 파티션을 활용한 DML 튜닝 파티션을 활용하면 대량 추가/변경/삭제 작업을 빠르게 처리할 수 있다. 6.3.1 테이블 파티션 파티셔닝(Partitioning) : 테이블 또는 인덱스 데이터를 특정 컬럼(파티션 키) 값에 따라 별도 세그먼트에 나눠서 저장 파티션

2023년 1월 10일
·
0개의 댓글
·
post-thumbnail

[만들면서 배우는 클린 아키텍처] 9. 애플리케이션 조립하기

왜 유스케이스와 어탭터를 그냥 필요할 때 인스텅스화하면 안 되는 걸까?코드 의존성이 올바른 방향을 가리키게 하기 위해서이다(안쪽으로, -> 도메인 방향)만약 유스케이스가 영속성 어탭터를 호출해야 하고, 스스로 인스턴스화한다면 의존성의 방향이 잘못된것이다.이것이 바로 아

2023년 1월 8일
·
0개의 댓글
·
post-thumbnail

[만들면서 배우는 클린 아키텍처] 5. 웹 어댑터 구현하기

포트 : 인터페이스어댑터 : 포트의 구현체인커밍 어댑터 : 외부로부터 요청을 내부로직 수행아웃고잉 어탭터 : 내부에서 외부로 데이터 전달"헥사고날 아키텍처는 포트와 어댑터로도 알려져 있다. 외부 타입마다 어탭터가 존재하고, 외부 영역은 애플리케이션의 API(Applic

2022년 12월 21일
·
0개의 댓글
·
post-thumbnail

[만들면서 배우는 클린 아키텍처] 3. 코드 구성하기

패키지 구조를 먼저 작성해야 한다. 한 패키지에 있는 클래스들이 불러오지(import) 말아야 할 다른 패키지에 있는 클래스들을 불러오는 상황을 방지해야 한다. 1. 계층으로 구성하기 계층으로 코드를 구성하면, 기능적인 측면들이 섞이기 쉽다 문제점 문제1 : 애플리케

2022년 12월 14일
·
0개의 댓글
·
post-thumbnail

[친절한 SQL 튜닝] 5.3~5.4 소트 튜닝

5.3 인덱스를 이용한 소트 연산 생략 5.3.1. Sort Order By 생략 인덱스 선두 컬럼을 종목 코드 + 거래일시 순으로 구성하지 않으면 소트 연산을 생략할 수 없다. 종목 코드 + 거래일시 인덱스를 사용한 경우 옵티마이저는 Sort Order By 오퍼

2022년 12월 4일
·
0개의 댓글
·

[친절한 SQL 튜닝] 5.1~5.2 소트 튜닝

소트는 PGA 에 할당한 Sort Area 에서 이루어진다.메모리 공간인 Sort Area 가 다 차면, 디스크 Temp 테이블스페이스를 활용한다.메모리 소트(In-Memory Sort) : 전체 데이터의 정렬 작업을 메모리 내에서 완료 (=Internal Sort)디

2022년 11월 28일
·
0개의 댓글
·

[이펙티브자바] item89. 인스턴스 수를 통제해야 한다면 readResolve 보다는 열거 타입을 사용하라

위 코드는 싱글톤 패턴이다.(바깥에서 생성자를 호출하지 못하게 막아 인스턴스가 1개만 만들어짐을 보장한다)위 코드에 implements Serializable을 추가하는 순간 더이상 싱글턴이 아니게 된다.readObject를 제공해도 소용이 없으면 어떤 readObje

2022년 11월 28일
·
0개의 댓글
·

[친절한 SQL 튜닝] 4.3 해시 조인

4.3 해시 조인 NL 조인은 인덱스를 이용한 조인으로 인덱스 구성에 따른 성능차이가 심하고, 랜덤I/O 로 인해 대량 데이터 처리에 불리하고, 버퍼캐시 히트율에 따라 성능이 들쭉날쭉하다. 소트 머지 조인과 해시 조인은 조인 과정에 인덱스를 사용하지 않아 대량 데이터

2022년 11월 14일
·
0개의 댓글
·
post-thumbnail

[친절한 SQL 튜닝] 4.2 소트 머지 조인

4.2 소트 머지 조인 4.2.1 SGA vs PGA SGA(System Global Area) : 공유 메모리 영역으로 SGA 에 캐시된 데이터는 여러 프로세스가 공유할 수 있다. 하지만 동시 액세스가 되지 않아 Lock 메커니즘인 래치(Latch)가 존재한다. PGA(Process/Program/Private Global Area) : 각 오라클 서버 ...

2022년 11월 14일
·
0개의 댓글
·
post-thumbnail

[이펙티브자바] item85. 자바 직렬화의 대안을 찾아라

1997년 처음 직렬화가 도입되었으나 추후 어마어마하게 문제가 많다는 것이 밝혀졌다.결론 부터 말하자면직렬화는 위험하니 피해야 한다시트템을 밑바닥부터 설계한다면 JSON 이나 프로토콜 버퍼 같은 대안을 사용하라신뢰할 수 없는 데이터는 역직렬화하지 말라꼭 해야 한다면 객

2022년 11월 14일
·
0개의 댓글
·
post-thumbnail

[친절한 SQL 튜닝] 3.4~4.1장 인덱스 설계, NL 조인

3.4 인덱스 설계 3.4.1 인덱스 설계가 어려운 이유 인덱스가 많으면 문제가 발생한다 DML 성능 저하(->TPS 저하) 데이터베이스 사이즈 증가(-> 디스크 공간 낭비) 데이터베이스 관리 및 운영 비용 증가 데이터 입력시 모든 인덱스에 데이터를 입력해야

2022년 11월 11일
·
0개의 댓글
·
post-thumbnail

[친절한 SQL 튜닝] 3.3장 인덱스 스캔 효율화

3.3 인덱스 스캔 효율화 3.3.1 인덱스 탐색 책 참고(p173 ~ p183) 3.3.2 인덱스 스캔 효율성 인덱스 스캔 효율이 좋은지 않은지는 SQL 트레이스로 확인가능하다 3.3.3 액세스 조건과 필터 조건 1.인덱스 액세스 조건 인덱스 스캔 범위를 결정하는 조

2022년 11월 11일
·
0개의 댓글
·
post-thumbnail

[친절한 SQL 튜닝] 2.3~3.2장 인덱스 기본, 튜닝

Index Range Scan 은 B\*Tree 인덱스의 가장 일반적인 현택의 방식수직적 탐색 + 수평적 탐색(필요한 범위만)선두 칼럼을 가공하지 않은 상태로 조건정레 사용해야 한다 -> 조건 만족시 무조건 Range Scan 가능수직적 탐색 없이 인덱스 리프 블록을

2022년 11월 4일
·
0개의 댓글
·
post-thumbnail

[친절한 SQL 튜닝] 2.1~2.2장 인덱스 기본

인덱스 : 온라인 트랜잭션 처리(Online Transaction Processing) 시스템에서는 소량 데이터를 주로 검색하므로 인덱스 튜닝이 중요하다.인덱스 스캔 효율과 튜닝인덱스 스캔 과정에서 발생하는 비효율을 줄이는 것예) 어떤 컬럼을 인덱스로 활용해야 스캔량이

2022년 10월 26일
·
0개의 댓글
·

[이펙티브자바] item80. 스레드보다는 실행자, 태스크, 스트림을 애용하라

java.util.concurrent 패키지에는 인터페이스 기반의 유연한 태스크 실행 기능을 담은 실행자 프레임워크(Executor Framework)가 있다. 과거에는 단순한 작업 큐(work queue)를 만들기 위해서 수많은 코드를 작성해야 했는데, 이제는 아래와

2022년 10월 21일
·
0개의 댓글
·
post-thumbnail

[친절한 SQL 튜닝] 1장 SQL 처리 과정과 I/O

SQL(Structured Query Language)구조적 질의 언어구조적(structued)이고 집합적(set-based)이고 선언적(declarative) 인 질의 언어결과 집합은 구조적, 집합적이지만 만드는 과정은 절차적(procedural)이어야 한다.옵티마이

2022년 10월 17일
·
0개의 댓글
·
post-thumbnail

REST API 와 HTTP Stateless 에 대한 고찰

1. REST(Representational State Transfer) Representational 이란? > 웹 페이지들의 네트워크를 가상의 상태머신으로 두고 유저가 링크를 선택해서 어플리케이션을 진행시키면 상태 전이가 일어나서 다음 페이지로 가게 된다. 웹

2022년 10월 1일
·
0개의 댓글
·

[이펙티브자바] item75. 예외의 상세 메시지에 실패 관련 정보를 담으라

프로그램 실패시 자바 시스템은 그 예외의 스택 추적(stack trace) 정보를 자동으로 출력스택추적 : 예외 객체의 toString 메서드를 호출해 얻는 무자열스택추적이 얻을 수 있는 유일한 정보이므로 실패 원인에 관한 정보를 최대한 많이 담아야 한다.예외 관여된

2022년 9월 30일
·
0개의 댓글
·

soft delete 와 hard delete 비교

출처 : https://abstraction.blog/2015/06/28/soft-vs-hard-delete- 해당 사이트의 내용을 한국어로 변환한 글입니다. soft delete 는 결국 쿼리조건이 늘어나 성능에 영향을 미치고, soft delete 는 테이

2022년 9월 29일
·
0개의 댓글
·
post-thumbnail

유니크 제약 조건 예외처리

2022/07/31프로젝트 진행중 유니크 제약 조건에 대한 예외처리에 대해 고민하고 알아보다 알아낸 것들을 정리해보자현재 멤버에는 email, nickname, profile image url(id 제외) 3개의 유니크 값들이 존재한다.만약 로직적으로 유니크 값을 체크

2022년 9월 26일
·
0개의 댓글
·