반응형 전체 글346 데이터베이스 설계 2022. 12. 13. 22:00 수정 및 복습 시작 데이터베이스 설계 데이터베이스 설계란 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정이다. 관계 데이터베이스의 대표적인 설계 방법으로는 2가지가 있다. E - R 모델과 릴레이션 변환 규칙을 이용한 설계 정규화를 이용한 설계 (차후에 다루어보겠다) 요구 사항 분석, 개념적 설계, 논리적 설계, 물리적 설계, 구현 순서로 이루어진다. 설계 1 단계 : 요구 사항 분석 목적: 사용자의 요구사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악. (업무에 필요한 데이터가 무엇인지, 그 데이터에 어떤 처리가 필요한지 등을 고려) 결과물: 요구 사항 명세서 주요 작업: 데이터베이스를 실제로 사용할 주요 사용자의 범위를 결정. 사용자가 조.. Database/Database 기초 2021. 10. 26. DeadLock(교착 상태) 2022. 6. 23. 23 : 42 복습을 위한 리팩토링 시작! DeadLock 두 개 이상의 프로세스가 필요한 자원을 기다리면서 무한정 중지된 상태가 교착 상태, DeadLock이다. 제한된 자원의 이용률을 높이고 시스템의 효율성을 높이고자 했을 때 발생하는 부작용이 교착 상태다. 교착상태는 시스템 자원, 공유 변수(또는 파일), 응용 프로그램을 사용할 때 발생할 수 있다. CPU를 안 쓰고 무한 대기 상태면 CPU 사용률이 0이 된다. OS입장에서는 너무나도 별로인 상태다. 해결방안으로는 프로세스를 종료, 교체하고 외부에서 강제로 해제시키는 방법이 있다. DeadLock를 설명하는 아주 좋은 예시는 식사하는 철학자들 문제다. 아래 링크에서 확인할 수 있다. https://ko.wikipedia.or.. OS 2021. 10. 15. IP, NAT 2023. 02.03 15:00 복습 시작 IP IP 주소는 32비트이며 라우터, 호스트 인터페이스에 할당된다. 네트워크 인터페이스에 할당된다는 개념이 중요하다. 인터페이스란 호스트와 라우터들을 연결하는 물리적 링크이다. IP 주소는 32비트 즉, 4바이트다. 한 가지 예시를 들어보겠다. 223.1.1.1, 223.1.1.2, 223.1.1.3 주소끼리 묶이고 223.1.2.1, 223.1.2.2 끼리 마지막으로 223.1.3.1, 223.1.3.2 끼리 묶여있다. 223.1.1과 223.1.2, 223.1.3은 네트워크 아이디며 뒤에 마지막 숫자 하나는 호스트 아이디다. 223.1.1.1 = 11011111 00000001 00000001 00000001 IP 주소 예시다. IP address clas.. Network 2021. 10. 15. 네트워크 레이어 2023. 02.02 20:30 복습 시작 네트워크 레이어 네트워크 레이어란 네트워크 계층의 한 일부이다. 출발지 호스트 - 도착지 호스트까지, 웹이라면 클라이언트 pc부터 웹 서버까지 패킷을 전달하는 역할을 맡는다. 그 중요한 프로토콜인 IP는 네트워크 레이어에 속한다. IP가 패킷을 배달하는데 우편 배달과 유사하다. 편지-우체통-우편 집중국 - 택배 분류사, 편지 분류사 - 각 도시별로 우체국 - 배달부 - 목적지 라우터에 있는 네트워크 레이어를 거쳐 도착지로 도착한다. 네트워크 레이어의 역할로 Forwarding와 Routing가 있다. routing - 라우팅 알고리즘을 이용해 최단 경로를 알려준다. (경로짜기) 지능적이다 forwarding - 길을 가는데 (최단 경로)에 적합한 길을 계속 골라.. Network 2021. 10. 8. 프로세스 간 통신 2022. 6. 23. 16 : 21 복습을 위한 리팩토링 시작! 프로세스 간 통신 프로세스 간 통신을 IPC, Inter Process Communication이라 한다. 프로세스 간 통신 3가지 프로세스 내부 데이터 통신 프로세스 간 데이터 통신 네트워크를 이용한 원격 데이터 통신: 네트워크(예를 들어 인터넷) 간의 프로세스 간 데이터 전송, 소켓 RPC과 같은 네트워크 프로토콜 이용 프로세스 내부 데이터 통신 2개 이상의 스레드 간 데이터 통신 (메모리 변수 이용), 전역 변수와 파일공유를 통한 데이터 전달한다. 프로세스 내부에서 스레드는 같은 전역 변수를 공유한다. 따라서 이를 이용해 통신방식을 진행한다. 프로세스 간 데이터 통신 동일 컴퓨터 내 프로세스 간 통신. 즉 Shared Memory, .. OS 2021. 10. 8. 백준 19941 햄버거 분배 해결 언어는 자바이다. 아래는 예시이다. 언어는 자바이다. 해결법 1. 먼저 총 문자열 개수와 먹을 수 있는 범위를 입력받는다. 2. 이후 햄버거와 사람에 대한 문자열을 모두 요소를 분리해 배열로 만든다. 3. 이제 사람을 나타내는 P가 배열 요소일 때, 그 자리가 i라면 i-range부터 i+range 까지 배열 요소에 햄버거가 있는지 살핀다. 햄버거를 나타내는 문자열은 "H"이다. 4. 물론 범위는 0보다는 같거나 크고 배열 길이보다는 작아야 한다. 5. 만약 햄버거가 있다면 먹었다는 표시로 "E"로 배열의 요소를 바꾸고 횟수를 세는 변수인 cnt를 증가시킨다. 햄버거 1개를 찾으면 멈추게 break문을 사용한다. 6. 모든 반복문이 끝나면 cnt를 출력한다. 해결 코드다. import java.io.. 코딩테스트/백준 2021. 10. 8. 백준 14241 슬라임 합치기 사용 언어는 자바이다. 다음은 출력 예시다. 해결 방법 최댓값을 구하려면 큰 수들을 먼저 곱해서 점수를 넣고 더한 후 새로운 배열 요소로 집어넣어 최댓값을 구한다. 1. 처음 숫자 개수를 입력받고 다음 문자들을 받는데 띄어쓰기 기준으로 배열로 나눈다. 2. 배열 정렬 메서드를 위해 문자열 배열을 int형 배열로 바꾼다. 3. 정렬 메서드를 이용해서 정렬한다. 4. 배열 맨뒤 큰 수부터 곱해져서 score 변수에 값을 차례로 더한다. 5. 스코어에 들어간 큰 숫자 2개는 배열의 이전 인덱스에 값을 넣어서 다음 차례에 이용되도록 한다. 6. 4,5번을 반복문을 통해 이용하면 스코어가 나온다. 아래는 해결 코드이다. import java.io.BufferedReader; import java.io.InputS.. 코딩테스트/백준 2021. 10. 7. 백준 1541 잃어버린 괄호 사용 언어는 자바이다. https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 해결법 예를 들어 20-30+30+40-20 우리는 괄호를 쳐서 제일 작은 수를 만들어야 한다. 20-(30+30+40)-20 1. 일단 문자열을 받는다. 2. 문자열 '-' 을 기준으로 나눈다. 3. 길이가 2 이상인 배열 인덱스 요소를 '+'를 기준으로 나눈 후 나눈 것 들을 더하고 더한 값을 해당 인덱스에 넣는다. 4. 이후 모든 배열의 값들을 계산하면 결과가 나.. 코딩테스트/백준 2021. 10. 6. 임계 구역과 임계 구역 해결 방법 2021. 10. 2. 00:51 2022. 6. 22. 15:30 복습을 위한 수정 시작 프로세스는 독립적으로 작업을 할 수도 있고 공유된 자원을 가지고 공동 작업을 할 수도 있다고 이전 장에서 언급했다. 이번에는 본격적으로 여러 프로세스가 한정된 자원을 가지고 공동으로 작업을 할 때 발생할 수 있는 문제에 대해 알아보자. 공유자원 공유자원이란 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다. 공유자원은 여러 프로세스가 공동으로 이용하기 때문에 누가 언제 데이터를 읽거나 쓰느냐에 따라 그 결과가 달라질 수 있다. 따라서 프로세스들의 공유 자원 접근 순서를 정하여 예상치 못한 문제가 발생하지 않도록 해야 한다. 2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황을 '경쟁 .. OS 2021. 10. 2. 관계 데이터 연산 2022. 12. 13. 21:00 수정 및 복습 시작 데이터 모델 데이터 모델은 데이터 구조, 연산, 제약조건으로 구성된다. 관계 데이터 모델에서 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것으로, 데이터베이스 시스템의 구성 요소 중 데이터 언어의 역할을 한다. 관계 데이터 모델의 연산을 간단히 관계 데이터 연산이라고도 한다. 관계 데이터 연산 대표적인 관계 데이터 연산으로 관계 대수와 관계 해석이 있다. 관계 대수와 관계 해석은 원하는 데이터를 얻기 위한 처리 절차를 얼마나 자세히 기술하느냐에서 큰 차리를 보인다. 관계 대수: 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어다. 관계 해석: 관계 해석은 원하는 결과를 얻기 위해 처리를 원하는 데.. Database/Database 기초 2021. 9. 28. GIT 개념 잡기 (Repository, working directory, stage) 오늘은 GIT 교과서 3장 관련 내용입니다! 깃 저장소(Repository)는 일반적으로 폴더와 구별 없이 모두 동일하게 사용할 수 있다. 하지만 깃 저장소는 폴더와 내부적으로 구조가 다르다. 깃 저장소에는 별도의 숨겨진 폴더가 있는데, 여기에 버전 관리시스템에 필요한 파일 변경 이력을 기록한다. 저장소는 프로젝트의 모든 리비전(revision : 개정)과 히스토리를 가진 데이터베이스와 같다. 즉, 일반적인 폴더와 깃 저장소 차이점은 숨겨진 영역이 있는지 여부이다. 이제 깃 저장소에 대해 더 알아보자. 우선 깃 저장소를 만들려면 초기화 작업을 진행해야 한다. 깃에서 초기화란 이미 존재하는 폴더에 초기화 명령어로 VCS 관리를 위한 숨겨진 영역을 생성하는 작업이다. 명령어를 직접 쳐보겠다. mkdir "폴.. Git 2021. 9. 24. 병행 프로세스와 병렬 프로세스의 차이 2021. 9. 24. 17:51 2022. 6. 22. 14:17 복습을 위한 수정 시작 OS는 성능 향상을 목적으로 CPU가 한 개 일 때 프로세스를 병행 실행할 수 있고, CPU가 다수일 때 프로세스를 병렬 실행할 수 있다. 병행 프로세스와 병렬 프로세스에 대해 자세히 알아보겠다. 병행 프로세스 Concurrent Process CPU가 한 개일 때 실행 중인 2개 이상의 프로세스이다. Asynchronous Concurrent Processes 프로세스의 병행성을 높여야, 성능 개선을 기대할 수 있고 효율이 높아진다. 병행 프로그래밍의 최적화로 병행성을 극대화. 병행 프로그래밍을 할 때 고려해야 할 사항들이 있다. 병행 프로세스들 간의 공유 자원 문제, 병행 프로세스들 간의 상호 통신 문제, 병행.. OS 2021. 9. 24. 이전 1 ··· 25 26 27 28 29 다음 반응형