본문 바로가기

기술블로그334

35. 데이터 베이스 [ERD, 정규화 과정] 35. 데이터 베이스 [ERD, 정규화 과정] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) ERD (Entity Relation Diagram) 데이터 베이스를 구축할 때에 가장 기본적으로 뼈대 역할을 한다 데이터 베이스 안에 있는 테이블 간의 관계를 정의한다 사용자 또는 시스템의 요구 사항을 기반으로 작성이 된다 정규화 과정 (Normalization) 정규화 과정은 테이블/릴레이션을 나누는 것이다 저장 공간을 효율적으로 사용할 수 있다 테이블을 조인 하면서 느려질 수도 있지만, 대체로 성능이 더 좋아질 수 있다 이상현상을 해결한다 함수적 종석성을 통해 정규화 과정을 진행한다 이상현상 (Anomaly)? 데이터의 삽입, 갱신, 삭제를 할 때에 테이블/릴레이션에 부작용이 일어나는 것 불필요한 데.. 2023. 3. 22.
34. 데이터 베이스 [데이터 베이스의 기본] 34. 데이터 베이스 [데이터 베이스의 기본] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 데이터 베이스의 기본 데이터 베이스란? 데이터의 저장소, 즉 데이터의 집합이다 DBMS란? DataBase Management System으로 데이터베이스를 관리하고 운영하는 소프트웨어다 특정 DBMS마다 정의된 쿼리 언어 (query language)를 통해 데이터를 삽입, 조회, 수정, 삭제 (CRUD)를 할 수 있다 DBMS는 MySQL, PostgreSQL등이 있다 MangoDB 같은 경우 NoSQL 데이터베이스로, SQL을 사용하지 않고 함수를 이용하여 데이터를 끄집어낸다 엔터티 (Entity) 실체, 객체라고 할 수 있다 개념, 장소, 사건 등을 가리킨다 저장되고, 관리되어야 하는 데이터다 고유.. 2023. 3. 21.
[Python] 백준 15683 감시 🧑‍💻 [Python] 백준 15683 감시 Gold 4 - 구현 DFS를 하는 것인데, CCTV를 DFS 하는 것이다 CCTV 가 3개가 있으면 3개의 감시하는 방향을 DFS로 탐색을 한다 탐색한 방향에다가 '#'을 넣는다 0의 개수를 센다음, 제일 작은 수를 찾는 것 지도가 주어진다고, DFS를 지도에 할 생각부터 하지 말자 ㅜ.ㅜ 코드 from copy import deepcopy N, M = map(int, input().split()) dr,dc = [-1, 0, 1, 0], [0, 1, 0, -1] direction = [[], [[0], [1], [2], [3]], [(0, 2), (1, 3)], [(0, 1), (1, 2), (2, 3), (3, 0)], [(0, 1, 2), (1, 2, .. 2023. 3. 20.
33. 운영체제 [CPU 스케줄링 알고리즘] 33. 운영체제 [CPU 스케줄링 알고리즘] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) CPU 스케줄링 알고리즘 어떤 프로세스를 먼저 처리하는지 결정해 주는 알고리즘이다 비선점형과 선점형으로 나뉜다 비선점형 프로세스가 CPU를 점유하고 있으면, 뺐을 수 없다 즉 프로세스가 CPU를 점유하면, 끝날때까지 다른 프로세스가 CPU를 점유할 수 없다 컨텍스트 스위칭에 인한 부하가 적다 FCFS (First Come First Served) 먼저 들어오는 프로세스를 먼저 처리하는 알고리즘이다 중간에 길게 실행되는 프로세스 때문에, '준비 큐'에서 오래 기다르는 현상 (Convoy Effect)가 발생한다 SJF (Shortest Job First) 실행 시간이 제일 짧은 프로세스부터 실행하는 알고리즘이.. 2023. 3. 18.
32. 운영체제 [공유 자원, 임계 영역] 32. 운영체제 [공유 자원, 임계 영역] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 공유 자원 공유 자원 : Shared resource 여러 프로세스, 스레드가 공동으로 이용하는 모니터, 프린터, 변수, 메모리, 파일, 데이터 등의 자원 경쟁 상태 (Race condition) : 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황 두 개 이상의 프로세스가 동시에 접근을 할 경우, 결과값에 영향을 줄 수 있다 원래는 결과값이 20만원이 아니라 35만원이어야 한다 하지만 프로세스 P1과 프로세스 P2가 동시에 접근하면서, 타이밍이 꼬여 20만원으로 결과값이 나왔다 임계 영역 공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 코드 영역 임계 영역 안에서 경쟁 상태 (race condi.. 2023. 3. 17.
31. 운영체제 [멀티 프로세싱, 멀티 스레드] 31. 운영체제 [멀티 프로세싱, 멀티 스레드] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 멀티프로세싱 여러 개의 프로세서가 일을 수행하는 것이다 프로세스 같은 경우, 메모리를 다른 프로세스와 공유를 하지 않는다 하나 이상의 일을 병렬로 처리할 수 있다 프로세스의 메모리 일부에 문제가 생겨도, 다른 프로세스를 이용하여 처리할 수 있어 신뢰성이 높다 웹 브라우저의 멀티 프로세스 아래의 프로세스를 통해 웹 브라우저가 작동이 된다 브라우저 프로세스 주소 표시줄, 북마크, 방향 버튼, 네트워크 요청이나 파일 접근 같은 권한 담당 렌더러 프로세스 웹 사이트의 보이는 모든 것을 제어한다 플러그인 프로세스 웹 사이트의 필요한 플러그인을 제어한다 GPU 프로세스 GPU를 이용해 화면에 그리는 부분을 제어한다.. 2023. 3. 17.
30. 운영체제 [PCB] 30. 운영체제 [PCB] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) PCB (Process Control Block) 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳이다 프로세스의 상태 정보를 저장하는 구조체다 PCB는 프로세스 생성시 만들어지고, 주기억장치에 유지된다 커널 스택의 가장 앞부분에서 관리가 된다 PCB의 구조 프로세스 스케줄링 상태 : ready, wait, running 등, 프로세스가 CPU에 대한 소유권을 얻은 이후의 상태 프로세스 ID : 프로세스의 고유 번호 프로세스 권한 : 컴퓨터 자원 또는 I/O 디바이스에 대한 권한 정보 프로그램 카운터 : 프로그램 카운터, 다음 실행될 명령의 포인터 CPU 레지스터 : 프로세스를 실행하기 위해 저장해야 할 레지스터에 .. 2023. 3. 17.
29. 운영체제 [프로세스, 스레드] 29. 운영체제 [프로세스, 스레드] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 프로세스와 스레드 프로세스는 메모리 상에서 실행 중인 프로그램 (컴퓨터가 어떤 일을 하고 있는 상태) 크롬도 열고, 워드를 열어서 공부를 하며 워드에 공부한 내용을 기록하는 것 스레드는 이 프로세스 안에서 실행되는 흐름 단위 (한 프로세스 내에서 여러 작업들이 동시 진행되는 것) 크롬을 열어서, 동영상을 다운로드 받으면서, 뉴스를 보고, 노래를 듣는 것 스레드는 싱글 스레드 프로세스 또는 멀티 스레드 프로세스를 가지고 있다 스레드는 실행 가능한 가장 작은 단위다 프로세스는 코드, 데이터, 스택, 힙 메모리 영역을 기반으로 작업을 한다 자신만의 고유 공간과 자원을 할당 받아 사용할 수 있다 (다른 프로세스와 통신하기.. 2023. 3. 17.
6. AWS ASG 6. AWS ASG AWS Auto Scaling Group 실제로, 상황에 따라 로드, 트래픽의 흐름은 일정하지 않다 갑자기 트래픽이 많아질 수 있고, 줄어들 수 있다 ASG의 목적 로드, 트래픽이 증가하면 Scale Out (인스턴스를 추가) 한다 로드, 트래픽이 감소하면 Scale In (인스턴스를 제거) 한다 최소, 또는 최대의 EC2 인스턴스가 작동하도록 도와준다 전의 인스턴스가 문제가 생겨, 연결을 중단했을 때, 새로운 EC2 인스턴스를 생성한다 이 모든 것을 자동화한다 ASG는 무료지만, EC2 인스턴스에 따라 비용이 들 수 있다 Load Balancer 없이도 가능하지만, Load Balancer를 통해 인스턴스의 상태를 확인하면서 자동으로 인스턴스 추가/삭제를 할 수 있다 ASG을 만들기.. 2023. 3. 17.