본문 바로가기

분류 전체보기

(70)
2022년 1회 정보처리기사 실기 기출문제 1. 다음 설명에 맞는 RAID 단계를 쓰시오 ㅇ 두 개 이상의 하드디스크를 병렬로 연결해, 하나의 디스크처럼 이용하는 기술이다. ㅇ 스트라이프(Stripe) 방식으로 구현하여 I/O 속도가 빠르다. ㅇ 데이터를 블럭단위로 분할하고 나누어 저장하기 때문에 하나의 디스크에 문제가 생기면 데이터 사용이 불가능해진다. 더보기 답 : RAID - 0 ( Stripe 방식) 2. 다음은 로그 기반 회복기법에서 사용되는 명령어이다. 각 지문에 해당하는 명령을 적으시오. 1. 오류가 발생하기 전까지의 사항을 로그(log)로 기록해 놓고, 이전 상태로 되돌아간 후 실패가 발생하기 전까지의 과정을 재실행한다. 2. 로그를 이용하여 오류와 관련된 내용을 취소하여 복구한다. 더보기 답 : 1. redo, 2. undo 3...
[MySQL] 인덱스 스캔 방식의 종류 및 특징 인덱스 스캔 방식을 알아보기전 where절 가공방식에 대해 설명해 드리겠습니다. WHERE절의 좌변이 아닌 우변을 가공할 것 숫자형 컬럼 인덱스 가공 SELECT ename, sal*12 FROM emp WHERE sal * 12 = 36000; -> SELECT ename, sal*12 FROM emp WHERE sal = 36000/12; 문자형 컬럼 인덱스 가공 SELECT ename, job FROM emp WHERE substr(job,1,5)='SALES'; -> SELECT ename, job FROM emp WHERE job LIKE 'SALES%'; 날짜형 컬럼 인덱스 가공 SELECT ename, hiredate FROM emp WHERE DATE_FORMAT(hiredate, '%Y'..
[자료구조] B- Tree , B+ Tree B- Tree B-Tree는 탐색 성능을 높이기 위해 높이를 균형있게 유지하는 Balanced Tree의 일종입니다. B-Tree는 이진 트리와는 다르게 하나의 노드에 여러개의 데이터를 가질수 있으며, 두개 이상의 자식노드들을 가질 수 있습니다. 만약 노드의 자식 수 중 최대값이 K라면 이 B-Tree의 차수는 K차수라 하며 K차 B-Tree라고 합니다. 위의 그림은 3차 B-Tree이며 각 노드마다 최대 자식 수가 3개 인것을 확인 할 수 있습니다. B-Tree는 하나의 노드에 여러 키를 배치하면서 이진트리보다 훨씬 많은 데이터를 담을 수 있으며, 노드 내의 데이터들은 항상 정렬된 상태입니다. 이러한 B-Tree는 다음과 같은 특징을 갖습니다. 각 노드의 데이터는 정렬되어 있습니다. 모든 leaf no..
[Database] 인덱스의 개념, 장단점 인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료 구조입니다. 개념 인덱스는 위 사진에서 볼 수 있듯이 Table의 1개 혹은 여러개의 컬럼을 Key로 삼고, 해당 Key의 물리적인 주소값을 저장해 둡니다. 흔히 인덱스를 책의 색인과 비유하곤 하는데 우리가 책의 내용중 특정 내용을 찾기위해 책 전체 내용을 보는것은 비효율 적입니다. 그래서 맨뒤 혹은 맨 앞에 저자들이 색인을 추가해 주는데 데이터베이스의 색인 기능이 바로 Index입니다. 장점 인덱스는 데이터의 주소값을 갖고 있다. 주소값을 통해 원하는 값을 빠르게 찾을 수 있다. 시스템의 부하를 줄일 수 있다. 단점 정렬된 상태의 유지. -> INSERT, UPDATE, DELETE를 통해 데이터가 추가되거나 값이 바뀐다면 Index..
[스프링] github actions에 Chat GPT 코드리뷰 기능 추가하기 https://sebang.tistory.com/51 [스프링] 도커(docker) + EC2 + github actions 배포 흐름도 전체 yml 파일 # This workflow will build a Java project with Gradle # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle # Repo Action 페이지에 나타날 이름 na sebang.tistory.com # This workflow will build a Java project with Gradle # For more information see:..
동시성 제어(Concurrency Control)란 이 글을 읽기전 동시성 제어의 사전지식과 동시성 제어를 해야하는 이유에 대해 먼저 보고 오시는것을 추천드립니다. https://sebang.tistory.com/52 동시성 제어(Concurrency Control)가 필요한 이유 동시성 제어를 알기 전에 왜 동시성 제어를 해야 하는지부터 설명드리겠습니다. 트랜잭션과 격리성 트랜잭션이란 데이터베이스에서 하나의 논리적인 작업 단위를 의미합니다. 이 작업 단위는 sebang.tistory.com 동시성 제어(Concurrency Control) 동시성 제어(Concurrency Control)란, 여러 사용자나 프로세스가 데이터를 공유할 때 발생할 수 있는 문제를 해결하기 위해, 데이터베이스 시스템이 트랜잭션을 순서대로 실행하는 것이 아니라, 트랜잭션이 동시..
동시성 제어(Concurrency Control)가 필요한 이유 동시성 제어를 알기 전에 왜 동시성 제어를 해야 하는지부터 설명드리겠습니다. 트랜잭션과 격리성 트랜잭션이란 데이터베이스에서 하나의 논리적인 작업 단위를 의미합니다. 이 작업 단위는 데이터베이스에서 데이터를 검색하거나 추가, 수정, 삭제 등의 조작을 수행하는 것을 포함합니다. 하나의 트랜잭션은 여러 개의 데이터베이스 조작 작업을 수행할 수 있지만, 그 작업들은 모두 하나의 논리적인 작업으로 간주됩니다. 트랜잭션의 4가지 원칙 원자성(Atomicity): 트랜잭션은 하나의 논리적인 작업 단위로서, 그 작업들이 모두 성공적으로 완료되거나, 아니면 전혀 수행되지 않아야 합니다. 즉, 트랜잭션 내에서 하나의 작업이라도 실패하면, 해당 트랜잭션 전체가 취소되고 이전 상태로 롤백됩니다. 일관성(Consistency)..
[스프링] 도커(docker) + EC2 + github actions 배포 흐름도 전체 yml 파일 # This workflow will build a Java project with Gradle # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle # Repo Action 페이지에 나타날 이름 name: Spring Boot & Gradle CI/CD # Event Trigger # dev branch에 push 또는 pull request가 발생할 경우 동작 # branch 단위 외에도, tag나 cron 식 등을 사용할 수 있음 on: push: branches: [ develop ] pull_req..
[스프링] 도커 설치 방법 먼저 https://hub.docker.com/ 도커허브에 가서 회원가입을 하고 로그인을 합니다. 그 후 레파지토리를 클릭해 새로운 repository를 생성해 줍니다. 레포를 생성했다면 아래 사이트를 들어가서 사진처럼 각자 OS에 맞는 도커를 설치하시면 됩니다. https://docs.docker.com/desktop/install/windows-install/ 도커를 설치하면 시스템 상태에 따라 재시작해야 할 수도 있으니 close 버튼을 누르기전 잘 저장해 놓으시길 바랍니다. 도커를 설치하고 열었는데 위와같은 에러 메세지가 보이길래 저기 나온 주소를 타고 들어가서 필요 스텝들을 진행해 주었습니다. step 1 PowerShell을 관리자 권한으로 실행하고 아래 코드를 입력 dism.exe /onli..
도커(docker)란? 도커 도커(Docker)는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 가상화는 물리적인 하드웨어(HW) 장치를 논리적인 객체로 추상화 하는 것을 의미합니다. 즉, 하나의 하드웨어를 여러 대처럼 동작시키거나 반대로 여러 대의 장치를 묶어 하나의 장치인 것처럼 사용자에게 공유자원으로 제공하는 기술입니다. 물리적 서버 하나를 여러대의 가상 서버로 나눠쓰는 Virtual Machine을 통해 가상화를 구현할 수 있습니다. 비슷한진 모르겠지만 예를 들자면 하나의 객체를 여러개의 인스턴스화 시키는 것과 비슷하다고 볼 수 있을거 같습니다. 내부 OS는 전부 복제되지만(객체의 필드, 메서드 등은 같음) 가상머신마다 서로 다른 파일들을 갖습니다.(인스턴스화 시켰을경우 argument값을 다르게 넣을 수 있음) 가상머..