GitHub

https://github.com/Choidongjun0830

2024/09 42

4.4 데이터베이스의 종류

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. 관계형 데이터베이스RDBMS는 행과 열을 가지는 표 형식의 데이터를 저장한다.SQL이라는 언어를 써서 조작한다.예시) MySQL, PostgreSQL, 오라클, SQL Server, MSSQL관계형 데이터베이스의 경우 표준 SQL을 지키기는 하지만, 각각의 제품에 특화된 SQL을 사용한다. 오라클은 PL/SQL, MySQL은 SQLMySQL대부분의 OS와 호환된다. 현재 가장 많이 사용된다쓰레드 기반의 메모리 할당 시스템. 매우 빠른 조인, 최대 64개의 인덱스를 제공한다.대용량 DB를 위해서 설계되어 있고, 롤백, 커밋, 이중 암호 지원 보안 등의 기능을 제공한다.MySQL의 스토리지 엔진 아키텍쳐 DB의 심장과도 같은 역할을 하는게 스..

CS 2024.09.26

[프로그래머스] Lv2. 두 원 사이의 정수 쌍

두 원 사이의 정수 쌍문제 설명x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.※ 각 원 위의 점도 포함하여 셉니다.제한 사항1 ≤ r1 입출력 예r1r2result2320입출력 예 설명그림과 같이 정수 쌍으로 이루어진 점은 총 20개 입니다. 정답 풀이import mathdef solution(r1, r2): answer = 0 for x in range(1, r2 + 1): y_max = math.floor(math.sqrt(r2 **..

4.3 트랜잭션과 무결성

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다.트랜잭션데이터베이스에서 하나의 논리적인 기능을 수행하기 위한 작업의 단위 => 데이터베이스에서 접근 방법은 쿼리 => 여러개의 쿼리들을 하나로 묶는 단위이에 대한 특징은 원자성, 일관성, 독립성, 지속성이 있다. 이를 한꺼번에 ACID라고 한다. 원자성(atomicity)트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장ex) 트랜잭션을 커밋했는데, 문제가 발생하여 롤백하는 경우. 그 이후에 모두 수행되지 않음을 보장하는 것.트랜잭션 단위로 여러 로직들을 묶을 때 외부 API 호출이 있으면 안된다. 만약 있다면, 롤백이 일어났을 때 어떻게 할 것인지에 대한 해결 방법이 있어야 하고, 트랜잭션 전파를 신경써서 관리해야 한다.커밋과 ..

CS 2024.09.24

[프로그래머스] Lv1. 키패드 누르기 / 카카오 인턴

[카카오 인턴] 키패드 누르기문제 설명스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다.이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다.맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다.엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다.왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다.오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다.가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을..

[프로그래머스] [PCCP 기출문제] 2번 / 석유 시추 🙁

[PCCP 기출문제] 2번 / 석유 시추문제 설명[본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.]세로길이가 n 가로길이가 m인 격자 모양의 땅 속에서 석유가 발견되었습니다. 석유는 여러 덩어리로 나누어 묻혀있습니다. 당신이 시추관을 수직으로 단 하나만 뚫을 수 있을 때, 가장 많은 석유를 뽑을 수 있는 시추관의 위치를 찾으려고 합니다. 시추관은 열 하나를 관통하는 형태여야 하며, 열과 열 사이에 시추관을 뚫을 수 없습니다.예를 들어 가로가 8, 세로가 5인 격자 모양의 땅 속에 위 그림처럼 석유가 발견되었다고 가정하겠습니다. 상, 하, 좌, 우로 연결된 석유는 하나의 덩어리이며, 석유 덩어리의 크기는 덩어리에 포함된 칸의 수입니다. 그림에서 석유 덩어리의 크기는 왼쪽부터 8, 7, 2입..

4.2 ER Diagram과 정규화 과정

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. ERD(Entity Relationship Diagram)은 DB를 구축할 때 가장 기초적인 뼈대 역할을 하며 릴레이션 간의 관계들을 정의한 것이다. 서비스를 구축할 때 가장 먼저 신경써야할 부분이다. ERD의 중요성ERD는 시스템의 요구사항을 기반으로 작성되며 이 ERDㄹ르 기반으로 DB를 구축한다. DB를 구축한 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에도 설계도 역할을 담당한다. 하지만, ERD는 관계형 구조로 표현할 수 있는 데이터를 구성하는데 유용할 수 있지만, 비정형 데이터를 충분히 표현하지 못한다. (비정형 데이터:  비구조화 데이터. 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정..

CS 2024.09.22

4.1 데이터베이스의 기본

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. 데이터베이스는 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음이다. 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)이라 한다.특정 DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다. 또한, 데이터베이스는 실시간 접근과 동시 공유가 가능하다. 데이터베이스 위에 DBMS가 있고 그 위에 응용 프로그램이 있다.ex) MySQL이라는 DBMS가 있고, 그 위에 응용 프로그램에 속하는 Node.js나 php에서 MySQL의 DB의 데이터를 가져와 해당 데이터 관련 로직을 구축할 수 있다. 엔티티(Entity)사람, 장소, 물건 등 여러 개의 ..

CS 2024.09.20

3.4 CPU 스케줄링 알고리즘

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄지 결정한다.이 알고리즘들은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, ready queue에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 한다. 비선점형 프로세스가 스스로 CPU 소유권을 포기하지 않으면 다른 프로세스에게 CPU 소유권이 넘어가지 않는다. 따라서 컨텍스트 스위칭으로 인한 부하가 적다.FCFS(First Come, First Serve): 가장 먼저 온 것을 먼저 처리한다. => 길게 수행되는 프로세스 때문에 ready queue에서 오래 기다릴수도 있다.SJF(Shortest Job First): 실행 시간이 가장 짧은 프로세스를 ..

CS 2024.09.19

[프로그래머스] Lv2. 캐시 / 2018 KAKAO BLIND RECRUITMENT

[1차] 캐시문제 설명캐시지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다.이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다.어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다.어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오.입력 형식캐..

[프로그래머스] Lv2. 프로세스 /

프로세스문제 설명운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다.1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다.2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다.3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다.예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 됩니다.현재..

728x90