2018/4/18 디스크 구조의 성능 특성 디스크 I/O 시간을 줄이기 위해서 레코드를 전략적으로 배치 해야 하는데, 두 레코드를 같은 블록, 같은 트랙, 같은 실린더, 인접한 실린더 순서대로 배치를 해야 I/O시간을 줄일 수 있다.디스크 암에 달린 헤드는 하나의 실린더에 여러개가 붙어 있지만 병렬적으로 데이터를 읽어오지 못한다. 한번에 하나의 디스크 헤드로 읽어 오는것이 병렬적으로 여러개의 헤드를 통해 데이터를 읽는것보다 안정적이고 더 빠르기 때문이다. 그렇기 때문에, 같은 블록, 같은 트랙, 같은 실린더 순서대로 인접한 레코드를 배치 시켜야 하는것이다. 트랙이 꽉찬 경우 동일 실린더의 다른 트랙에 인접 레코드들을 배치 시켜야 한다. 맨위 실린더의 트랙, 그 아래 실린더의 트랙, 그 밑밑 실린더의 트랙..
2018/4/1 링커가 하는 가장 중요한 일 중 하나인 Relocation 왼쪽 .o 파일이 다른 .o파일들과 합쳐져서 오른쪽 그림의 수행파일을 만드는 과정을 보여주는 그림이다. char c1 = 'c'; char *p=&c1; main { f(c1); } 이런 코드가 어셈블리어로 바꼈을때 왼쪽 .o 파일처럼 나오게 된다. 그런데 링커가 .o파일들을 합치고 나면 오른쪽 그림처럼 변수(c)의 주소나 코드상의 주소(load R1, (100))를 바꿔주어야 한다. 이것이 링커가 하는 가장 중요한 역할중 하나인 Relocation(재배치)이다. 수행파일로 합쳐지기전 .o파일은 char 'c'를 담은 변수인 c1의 주소가 100번지이다. 또한, c1의 주소를 포인터변수 p에 담고 있고, p는 200번지에 할당 되..
2018/3/30 링커가 하는일은 크게 2개가 있다.1.Relocation링커가 컴파일러가 생성한 오브젝트 파일들을 모아서 하나의 수행파일을 만들때, 각 오브젝트 파일에 있는 데이터의 주소나 코드의 메모리 참조주소가 링커에 의해 합쳐진 수행파일에서의 주소가 다르기 때문에, 그것을 알맞게 수정 해줘야함. 2.Symbol Resolution (심볼 해결?)심볼이라는것은 함수의 이름, 변수의 이름 등등을 의미함. 심볼을 해결한다는 뜻은 여러개의 오브젝트 파일에 같은 이름의 함수 또는 같음 이름의 변수 명이 정의 되어 있을때 어떤 파일의 어떤 함수의 것을 사용해야 하는가를 결정하는 일을 의미한다. 쉽게 말해서 A.o 파일과 B.o 파일안에 f()라는 함수가 동시에 정의 되어 있다고 해보자. 이때, 링커가 두개의..
제1정규화 (모든 속성이 원자값)↓ 부 제2정규화↓ 이제3정규화↓ 후BCNF정규화↓제4정규화↓제5정규화 제1정규화 -> 제2 정규화 : 부분적 함수 종속성 제거기본키가 복합키일 경우 부분적 함수 종속성이 존재 할 수 있음. 그것을 제거 해줘야 제2 정규화가 됨. 제2정규화 -> 제3정규화 : 이행적 함수 종속성 제거테이블에 A,B,C칼럼이 있을때 A->B를 결정하고 B->C를 결정하고 A->C를 결정하는 이런 것을 제거 해줘야 됨. 제3정규화 -> BCNF정규화 : 모든 결정자가 후보키여야 한다.후보키가 아닌 것들이 다른 속성들을 결정하게 되면 데이터 중복성이 발생할 수 밖에 없다. cf) 함수적 종속이란 속성 A,B가 있을때 A가 B를 결정한다는것이다. 다시 말해서 A가 정해지면 B는 A에 따라서 무조..
내부조인에는 동등조인과 자연조인이 있다. 동등 조인 - A테이블과 B테이블을 합치는데, 조인속성값이 같은 A의 튜플과 B의 튜플을 하나의 튜플로 합친다. cf)조인속성값 - 조인을 하기 위해 사용되는 속성의 값. 자연 조인 - 동등 조인과 비슷한데, 차이점은 하나의 튜플로 합치고 난뒤에 중복된 조인 속성을 2개다 표시하는게 아니라 1개만 표시한다는 점. 외부조인 - 왼쪽 외부 조인, 오른쪽 외부 조인, 전체 외부 조인이 있다. 왼쪽 외부 조인 - A테이블과 B테이블이 있을때, A테이블과 B테이블을 동등 조인한 결과에 A테이블의 동등 조인 되지 않은 튜플 까지 합쳐서 만든것이다. 오른쪽 외부 조인 - B테이블을 A테이블과 동등 조인 한 결과와 B테이블중에서 A테이블과 동등 조인 되지 않은 튜플들을 합쳐서 ..
카운팅 정렬 배열 A = {4 8 3 2 1 10} 이 있다고 할때 Arr 0 1 2 3 4 5 6 7 8 9 10 N이 1만이고 K가 1억이라고 해보자. 그럼 이 알고리즘은 그냥 1억짜리 알고리즘이다. 그러니까 N과 K가 비슷하거나 비례할때만 사용하는것이 좋은 알고리즘이다. 기수 정렬 (Radix sort) 기수 정렬은 각 배열의 원소의 1의 자리를 기준으로 정렬을 쭉 해주고 그다음은 10의자리를 기준으로, 그다음 100의자리..이런식으로 배열 내의 원소중 가장 길이가 긴 원소까지 반복해서 정렬을 해야 하는 알고리즘이다. 무슨 말이냐면 100 4 5 20 30 4000 20 1 3 이런 배열이 있다고 하자. (A) 이 배열에서 기수 정렬을 하려고 할때 먼저 1의 자리를 기준으로 정렬한다. 그럼 첫번째 ..
DBCP(DataBase Connection Pool) 데이터 베이스 커넥션 풀 풀이라는것은 풀장을 떠올리면 뭔지 이해하기 쉽다. 수영장 같은 것이다.수영장인데 그 안에 커넥션이라는것이 들어가는 수영장이다. 우리가 JSP&Servlet 방식 웹개발이나 스프링 웹 개발을 하게 될때 데이터베이스에 접근해야 하는 일이 자주 발생한다.이럴때 보통 JDBC를 이용하게 된다. 근데 JDBC를 이용할때, 먼저 DriverManger로 부터 커넥션 객체를 생성하고, 그 커넥션 객체로 부터 Statement를 생성하며 그 Statement를 실행 한 결과로 ResultSet을 반환 받아서 커서로 ResultSet의 내용을 하나하나 사용하게 된다. 그리고 나서 ResultSet,Statement,Connection 객체를..
JNDI (Java Naming and Directory Interface) -> DNS라는것을 들어보았을 것이다. 도메인 네임 서버의 약자인데, 예를 들자면 www.naver.com이라는 문자열은 사실 (예시일뿐임) 128.192.51.36 이라는 아이피로 변경되어야 제대로 네이버에 접속 할 수 있게 된다. 이렇게 문자열을 어떤 IP주소로 바꿔주는 역할을 하는것을 DNS라고 하는데 JNDI도 그것과 비슷한 역할을 한다. DNS는 문자열:아이피 맵이라고 생각하면 되지만, JNDI는 (문자열:자바객체)로 이루어진 맵이라고 생각하면 될 것 같다. 웹 서버에서는 여러개의 컴퓨터가 서버 역할을 할 수 있다. 웹 서버 간의 어떤 객체를 공유하고 싶을때 JNDI를 이용한다. 웹서버에 1,2,3,4번 컴퓨터 총 4대..
- Total
- Today
- Yesterday
- type alias
- reducer
- mobx
- Action
- storybook
- props
- react
- Polyfill
- atomic design
- return type
- es6
- javascript
- Next.js
- Babel
- state
- design system
- await
- typescript
- react hooks
- rendering scope
- server side rendering
- computed
- useEffect
- reactdom
- webpack
- hydrate
- reflow
- async
- useRef
- promise
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |