본문 바로가기

728x90

Computer Science

(41)
그림으로 공부하는 오라클 구조 - Ch9. 리두(Redo)와 언두(Undo)의 동작 트랜잭션이 지켜야 할 원칙 ACIDAtomicity 원자성트랜잭션에 포함되는 데이터 변경은 'All or Nothing' 이어야 한다.즉, 트랜잭션은 더 이상 분할할 수 없는 데이터 변경의 최소 단위라는 의미이다.Consistency 일관성트랜잭션에 의해 데이터 간 일관성이 어긋나서는 안된다.예를 들어, Customer 테이블의 데이터가 변경되었는데 Customer 테이블의 인덱스 데이터가 변경되지 않은 경우가 없어야 한다는 것이다.Isolation 고립성트랜잭션은 다른 트랜잭션을 의식할 필요가 없어야 한다.즉, 트랜잭션은 고립되어 있어 단독 실행이든 다른 트랜잭션과 동시 실행이든 결과는 같아야 한다.Durability 지속성Commit한 트랜잭션은 장애가 발생하더라도 데이터는 반드시 복구되어야 한다. ..
그림으로 공부하는 오라클 구조 - Ch8. 오라클의 대기와 락 값을 변경하는 작업(UPDATE)을 할 때는 변경하기 전의 값을 바라봐도 상관없는 검색(SELECT)를 제외하고는 아무도 그 값에 접근할 수 없도록 해야 한다.→ UPDATE 문은 이러한 이유로 자동으로 LOCK을 걸게 된다. 이 경우 **LOCK에 의한 대기(WAIT)**가 발생한다.Dead Lock : 서로가 상대가 보유하고 있는 LOCK을 기다리느라 교착 상태 발생  예시)Transaction A는 트랜잭션을 끝내기 위해 Accounts 를 변경하고 Orders를 변경해야 한다. (Order를 참조하여 회계전표를 생성하고 Order의 상태를 전기 상태로 바꾸기 위해)Transaction B는 Orders를 작업하고 Accounts를 작업해야 한다.(Accounts에 전기된 오더를 취소하기 위해 Ac..
그림으로 공부하는 오라클 구조 - Ch7. 오라클의 데이터 구조 익스텐트는 ‘연속된’ 블록의 집합으로 익스텐트의 위치와 블록 개수로 관리를 하여 관리 정보를 줄이는 역할을 한다.(블록 개별로 관리하면 많아서)세그먼트는 익스텐트의 집합이다. 사용자(개발자)가 생성하는 테이블, 인덱스 등 이외에 undo 세그먼트, 정렬 세그먼트 등이 있다.데이터 파일 안에는 서로 다른 세그먼트들의 서로 다른 익스텐트들이 혼재해 있다. 즉 물리적으로 같은 세그먼트의 데이터들이 모여있는 것이 아니다.테이블 스페이스는 세그먼트를 분류하여 보관하기 위한 공간. 한 개 이상의 데이터 파일로 구성되어 있다.세그먼트는 ‘PCTFREE’와 ‘PCTUSED’ 파라미터를 사용하여 세그먼트 내의 빈 블록 공간을 점검하고 관리한다. 세그먼트 안에 공간이 부족하면 ‘익스텐트’를 추가하여 빈 블록을 늘린다.RO..
그림으로 공부하는 오라클 구조 - ch6. 커넥션과 서버 프로세스의 생성 lsnrctl start : 기본 리스너 기동 명령어listener.ora : 리스너 설정 파일tnsnames.ora : Connection desripter, 커넥션에 필요한 정보가 담긴 파일 즉, 데이터베이스의 주소가 담긴 파일sqlnet.ora : DCD(Dead connection detection) 기능, SDU 등을 사용하기 위한 파라미터들 설정 파일*DCD : 검출 패킷을 클라이언트에게 보내 확인, 클라이언트의 데이터베이스와의 연결 해제 없이 갑작스러운 서버 다운 및 충돌로 인한 disconnet를 감지하기 위한 기능.Session Data Unit (SDU) 설정 : 오라클 클라이언트와 서버 사이의 네트워크 통신에서 주고받는 데이터 단위 설정 Connection Pool일반적으로 서버 프로..
그림으로 공부하는 오라클 구조 - Ch5. 오라클의 기동과 정지 오라클의 4가지 상태OPEN - 데이터를 처리할 수 있는 상태, 즉, SQL을 처리할 수 있는 상태MOUNT - 데이터 파일 등에 접근할 수 있는 상태(컨트롤 파일을 읽은 상태)NOMOUNT - 백그라운드 프로세스와 공유메모리가 존재하는 상태SHUTDOWN - 정지 상태 SHUTDOWN → NOMOUNT 단계 : 파라미터를 읽어서 백그라운드 프로세스를 기동하고 공유 메모리 할당한다.NOMOUNT → MOUNT 단계 : 컨트롤 파일을 읽는다.MOUNT → OPEN 단계 : 데이터 파일, 리두 로그 파일 등을 확인한다.오라클의 인스턴스인스턴스는 백그라운드 프로세스와 공유 메모리를 의미한다.즉, NOMOUNT 상태는 인스턴스가 기동한 상태이다.일반적으로 데이터베이스와 1대1 대응하지만 RAC(Real Appl..
(작업중)SSL이란 (with SAP) https://namu.wiki/w/TLS#toc https://www.youtube.com/watch?v=hHnEaQB-3C4&ab_channel=SAPBASIS
(작업중)Java의 Servlets과 Servlet Containers https://www.baeldung.com/java-servlets-containers-introhttps://velog.io/@sudong/%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91%EC%9E%90%EB%B0%94-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94https://stackoverflow.com/questions/7151206/definition-of-a-java-container
개인 프로젝트 진행 상황 1. 사용 기술- 자바, mariadb, 스프링부트, 마이바티스, 메이븐2. 구현된 기능- 관리자 로그인, todo 입력 삭제 다음날로 미루기3. 개선점- with 구문으로 미루기 기능 구현하기 (클라이언트에서 내용 받아오지 말것)- 로그기능, 로그인 기능 개선- TODO 기능에 주간 계획 기능 포함하기- TODO 기능 까지 구현하고 배포한 뒤에는 메타 관리 프로그램 구현, 서버 사용량 확인 페이지 구현 - 로깅 참고 소스코드@AfterReturning(value = "postMapping()", returning = "returnValue")     public void logRequestBody(JoinPoint joinPoint, Object returnValue) throws NoSuchMetho..

728x90