리두와 언두를 왜 배워야 하는 가? - 리두와 언두에 대한 설명에 들어가기에 앞서 ACID 특성이 대체 무엇인지를 먼저 보도록 함 [ATOMICITY 원자성] - 트랜잭션에 포함되는 데이터 변경은 전부 OK이거나 모두 NG라는 all or nothing임. - DBMS는 트랜젝션의 데이터 일부만을 변경할 수 없음 [OCNSISTENCY 일관성] - 트랜잭션에 의해 데이터 간의 일관성이 어긋나서는 안됨 - 고객 테이블의 데이터가 변경됐는데도 고객 테이블의 인덱스 데이터는 변경되지 않음 [ISOLATION 고립성] - 트랜잭션끼리는 고리보디어 있으며 독리보디어 있다는 의미 - 어떤 트랜잭션을 단독으로 실행했거나 다른 트랜잭션과 동시에 실행하더라도 결과는 같아야 한다는 것 [DURABILITY 지속성] - 커..
데이터 베이스에 락이 필요한 이유 - UPDATE를 진행할 때 다중의 오라클 클라이언트가 동시에 같은 컬럼의 데이터를 변경 시 데이터가 의도하는대로 변경하기 어려움 - 이런 문제가 발생한 원인을 찾아보면 데이터를 확보하지 않았기 때문이라는 것을 알 수 있음. - 락의 본질은 이렇게 다중 처리를 실현하기 위해 처리를 보호하는 것 - 행 락이 풀리는 시점은 커밋 또는 롤백할 때 풀림 - UPDATE문 등의 DML에는 자동으로 락을 걸어버림대기와 락 대기 - 대기는 실제로 기다린다라는 것을 표시하는 것 뿐임 - 대기에는 '처리할 것이 없어서 쉬고 있는 대기', '이유가 있어 어쩔수 없이 하는 대기, 이상 상태 등 쓸데없이 SQL을 기다리게 하는 대기'가 있음 - 전자가 아이들 대기..
가변 길이 데이터를 관리하기 위한 프로그램 [가변 길이 데이터는 관리가 힘듬] 1. 데이터를 변경할 때 문제가 있을 수 있음. 2. 동시에 처리가 불가능 - 순서대로만 가능 3. 데이터 관리나 I/O가 힘듬 - 양이 많아지면 힘듬 4. 사용하지 않는 공간의 관리가 힘듬 - 데이터 없는 공간을 관리해야하나 양이 많아지면 힘듬 [해결] 1. 관리 및 I/O의 효율을 고려해 공간을 어느 정도의 크기로 뭉쳐서 할당 - 각 테이블의 집합으로 뭉쳐서 관리 2. 데이터 변경에 필요한 공간을 확보해둠 3. 비어 있는 공간을 관리 - 어느 정도의 크기마다 데이터 변경용 공간을 준비해둠오라클의 데이터 구조 - 오라클의 데이터 구조는 물리 구조 및 논리 구조가 있음. - 물리 구조 - 데이터 파일 등의 OS에서 보이는 구조..
DOM - DOM(Document Object Model) : 문서(html문서)의 태그들을 Javascript가 이용할 수 있는 객체만들고 이를 인식하는 방식을 말함. 즉, 웹 브라우저가 HTML 페이지를 인식하는 방식 / DOM은 태그들의 트리 형식으로 이루어짐렌더링 1. DOM 트리 생성 2. 스타일 구조체 생성(css) 3. 렌더 트리 생성 - DOM 트리와는 다르게 각 노드에 스타일 정보가 설정되어 있음. - , , 는 렌더 트리의 구성원이 아님. 4. 레이아웃 처리 - 렌더 트리의 각 노드의 크기가 계산되고, 문서에서 정확한 위치를 계산 - 계산 시 화면 해상도보다 높은 해상도로 처리(고객의 확대 축소를 할 시 깨지지 않게하기 위함) 5. 페인트document.ready() vs window...
커넥션과 서버 프로세스의 생성 애플리케이션의 커넥션을 왜 배워야 하는가? - 애플리케이션의 커넥션을 최적화 하는 것만으로도 DB의 성능을 더욱 끌어올릴 수 있음. - 애플리케이션과 오라클이 네트워크를 통해서 통신하는 경우가 많음 - 그로인해 설정으로 인한 장애가 쉽게 발생하며, 간단한 장애일 때는 아키텍처를 이해할 시 쉽게 해결할 수 있음오라클의 커넥션 동작 - 소켓 - 오라클은 네트워크 통신 수단으로서 대부분 TCP/IP의 소켓을 사용 - 소켓을 전화라고 생각하면 이해하기 쉬움 - 네트워크 안에는 여러개의 소켓이 존재함 - 틀리지 않고 커넥션 하기 위해서 소켓은 주소와 포트를 조합한 번호로 식별이 가능 [커넥션 동작] 1. 서버는 특정 포트번호로 오는 것을 기다림(listen 상태) 2. 클라이언트는 ..
오라클의 기동과 정지 오라클의 기동/정지 개요 [창고 회사 오라클의 업무 시작 흐름] 1. 사원 출근 2. 창고에 관한 정보(관리 대장)를 조사 3. 창고를 대충 훑어본 뒤 문제 없을 시 창고를 열어 업무 시작 [창고 회사 오라클의 업무 종료 흐름] 1. 업무(SQL이나 트랜잭션)가 끝나는 것을 기다림 | 급할 때는 업무 처리 중지 가능 2. 작업장의 물건(캐시상의 데이터)을 창고(파일)에 정리 | 급할 때는 작업장의 물건들을 정리하지 않음 3. 사원이 퇴근(프로세스 종료)오라클 기동 4가지 상태 오라클의 작업 흐름 - 퇴근 : 정지 상태 - 출근 : 백그라운드 프로세스의 생성과 공유메모리의 확보를 의미 - 관리대장 읽음 : 컨트롤 파일(DB의 구성정보가 적혀 있는 파일로서, DB 파일의 경로 확인 가능..
SQL문 분석과 공유 풀 처리방법의 생성(분석)과 생성 후 캐시하는 저장소(공유 풀) SQL문의 데이터 처리 순서 - SQL문에서는 데이터의 조건이나 관계를 기술 - SELECT A FROM B WHERE C = 1 - 오라클은 힌트를 활용해서 어느정도의 처리순서를 지시함. - 옵티마이저가(파서)가 SQL문을 분석하고 플랜이라고 하는 처리 방법을 생성 서버 프로세스와 분석 - 서버 프로세스는 SQL문의 처리를 최우선으로 하는 프로세스 - 오라클에서 분석은 SQL문을 분석하고 어떤 알고리즘으로 처리할 지를 가리킴 - 비용 기반 알고리즘 : 처리 시간이나 I/O 횟수가 가장 작다고 생각되는 처리방법이 최상의 알고리즘[분석 그림] 비용의 수치 통계정보 - 테이블의 데이터 건 수, 데이터 양, 데이터 최댓값과 ..
스크립트의 메모리 위치 스크립트를 별도의 파일에 작성해 놓고 가져와서 쓰게 되면 브라우저가 스크립트를 다운 받아 캐시에 저장함. 즉, 여러 페이지에서 동일한 스크립트를 사용하는 경우 브러우저는 페이지가 바뀔때마다 캐시에서 가져와 사용 -> 성능상 이점(트래픽 향상) 엄격모드(use strict) 새롭게 제정된 ES5에서는 새로운 기능이 추가되고 기존 기능 중 일부가 변경이 되는데, 이 변경 사항을 적용하지 않고 javascript를 수행하기 위한 것 자료형 숫자형 정수, Infinity(1/0), -Infinity, NaN("abc"/2) 연산은 *, / , -, + 문자형 큰, 작은 따옴표로 문자열 표현 역 따옴표(`)을 사용하면 문자열 중간에 '${}'을 삽입할 수 있음 Ex.) Hello ${nam..
- Total
- Today
- Yesterday
- junit
- java
- 이펙티브 자바
- mustache
- 점층적 생성 패턴
- flatMap
- springboot
- java8
- effectivejava
- 복사 팩토리
- 정적팩터리메서드
- try catch finally
- 스프링부트
- 빌더 패턴
- jdk버전
- 김영한
- Effective Java
- 인프런
- 생성자
- 빈 순환 참조
- 자바8
- Spring
- 팩토리 메소드 패턴
- ifPresent
- try with resources
- @Lazy
- 연관관계
- package-private
- 이펙티브자바
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |