분류 전체보기
-
8일차 - Process Syncronization(2)CS지식/운영체제 2021. 4. 28. 23:31
저번 시간에 이어 프로세스 동기화에 대해 배웠다. 오늘은 동기화 시에 발생하는 대표적인 문제에 대해 알아보고 코드를 보면서 해결법을 알아보는 시간을 가졌다. 1. Bounded-Buffer Problem (Producer-Consumer Problem) 동기화 문제 중 첫 번째로 Bounded-Buffer Problem이다. 버퍼의 크기가 유한한 환경에서의 producer(생산자)와 consumer(소비자)의 문제이다. 버퍼에는 Producer 프로세스와 consumer 프로세스 2가지가 존재하고 버퍼는 공유되어 사용된다. producer 프로세스는 공유버퍼에 데이터를 집어넣는 역할을 하고 consumer 프로세스는 공유 버퍼에서 데이터를 꺼내는 역할을 한다. 여기서 발생하는 동기화 문제는 어떠한게 있을..
-
Day 2 - JAVA로 미니 프로젝트 만들기(POS System)기타/프로젝트 2021. 4. 28. 18:03
2021년 4월 28일, 현대모비스 면접 준비와, 예정된 KT 인적성검사, 다른 회사 AI 역량검사를 끝마치고 다시 돌아왔다. 약 15일 동안 프로젝트를 진행하지 않아 다시 코드를 하나씩 보면서 적응하고 다음 단계에 진입했다. 아직 자소서 작성과 다른 공부를 진행 중이여서 오늘은 많이 진행하지는 않고 한 가지 기능을 구현하는 것을 목표로 했다. 오늘은 저번에 만든 첫번째 프레임에 있는 버튼들을 누르면 다른 프레임으로 넘어가는 이벤트를 구현하였다. 이 이벤트가 왜 필요하냐면 POS기를 보면 테이블을 누르면 해당 테이블에서 주문한 메뉴를 추가하거나 계산하는 화면으로 넘어간다. 이것을 구현하기 위해 2 개의 프레임을 전환할 수 있도록 버튼에 이벤트를 첨부하는 것이 필요했다. 구글링을 통해 버튼 클릭 시 이벤트..
-
7일차 - 관계 데이터 모델링: 실습CS지식/데이터베이스 2021. 4. 27. 23:34
오늘은 저번시간에 배운 관계 데이터 모델링에 대한 이론을 바탕으로 실습을 해보는 시간을 가졌다. 5일차 때는 요구사항명세서를 바탕으로 E-R다이어그램을 작성하는 실습을 해봤는데 오늘은 E-R다이어그램을 바탕으로 릴레이션(릴레이션 스키마)를 작성해보는 시간을 가졌다. (지난 5일차 게시글: straw961030.tistory.com/26) 1. 논리적 설계 관계 데이터 모델링은 데이터베이스 설계 5단계 중 3단계에 해당하는 논리적 설계에서 이루어진다. 논리적 설계의 목적은 DBMS에 적합한 논리적 스키마를 설계하고 개념적 스키마를 논리적 데이터 모델을 이용해 논리적 구조로 표현하는 것이다. 논리적 설계의 결과물은 릴레이션 스키마이다. 개념적 설계 단계의 결과물인 E-R다이어그램을 바탕으로 릴레이션 스키마를..
-
4일차 - 결과를 전달하는 HTTP 상태 코드CS지식/네트워크 2021. 4. 26. 23:27
오늘은 클라이언트가 요청한 리퀘스트에 대한 결과를 알려주는 HTTP 상태 코드에 대해 배웠다. 아마 인터넷이 연결되어있지 않은 환경에서 브라우저로 웹 페이지를 접속하려면 에러 코드를 본 경험이 있을 것이다. 그 때 본 에러 코드가 오늘 배운 상태 코드이고 그것의 의미를 알 수 있었다. 1. 상태 코드 상태 코드란 클라이언트가 리퀘스트를 서버 측에 보냈을 때 서버에서 어떻게 처리됐는지에 대한 결과를 알려주는 역할을 하는 것이다. 상태 코드를 통해 리퀘스트를 정상적으로 처리했는지 에러가 발생했는지를 알려줄 수 있다. 상태 코드를 3자리의 숫자와 설명으로 나타낸다. 숫자의 첫 번째 자리는 리스폰스의 클래스를 의미하고 나머지 2자리는 정해진 분류가 없다. 리스폰스의 클래스는 5개가 정의되어 있다. 클래스 설명 ..
-
7일차 - Process Syncronization(1)CS지식/운영체제 2021. 4. 25. 22:24
오늘은 프로세스 동기화에 대해서 배웠다. 프로세스는 여러 개 존재하고 여러 개의 프로세스가 하나의 데이터 공간에서 공유할 경우 발생할 수 있는 문제에 대해 알아보고 해결법에 대해 알 수 있었다. 1. 데이터 접근 process syncroization에 대해 배우기 전에 데이터의 접근 방법에 대해 알아보자. 데이터를 접근할 때는 다음과 같은 패턴을 가진다. 데이터 저장소에서 필요한 데이터를 가져오고 연산장치에서 연산을 한 후 연산결과를 다시 데이터 저장소에 보내게 된다. 데이터 저장소에는 memory, 디스크, 각 프로세스의 주소공간이 대표적인 예이고 연산장치에는 CPU, 컴퓨터 내부, 프로세스가 대표적인 예이다. 이렇게 데이터 저장소를 하나의 연산장치가 사용할 경우에는 별다른 문제가 없을 것이다. 하지..
-
6일차 - 관계 데이터 모델링CS지식/데이터베이스 2021. 4. 23. 23:39
오늘은 관계 데이터 모델링에 대해 배웠다. 지난 시간에 배운 개념 데이터 모델링의 결과물인 E-R다이어그램을 토대로 진행되는 것으로 데이터베이스 설계에서는 3단계(논리적 설계)에 해당하는 내용이다. 1. 관계 데이터 모델의 기본개념 관계 데이터 모델은 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델로 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장하는 것이다. 예를 들어 개념 데이터 모델링을 통해 학생이라는 개체가 나왔다면 이 학생이라는 하나의 개체에 대한 데이터를 모아서 릴레이션에 저장한다는 것이다. 릴레이션은 하나의 개체에 대한 데이터를 2차원 테이블 구조로 저장한 것이다. 2차원 테이블이라고 하면 표와 비슷한 구조인데 표는 행과 열로 구성되어 있다. 릴레이션에서는 행을 튜플이라 부르고 ..
-
3일차 - HTTP 메시지CS지식/네트워크 2021. 4. 22. 23:10
오늘은 HTTP 통신에서 정보를 주고 받을 때 사용하는 HTTP 메시지에 대해 간략하게 배우고 통신을 할 때 유용하게 사용하는 기능들에 대해 배웠다. 책을 읽으면서 이 기능이 왜 존재하는지에 대한 예시를 잘 들어줘서 이해하기 편했다. 1. HTTP 메시지 HTTP는 클라이언트에서 리퀘스트를 전송하고 그에 응답하는 리스폰스를 서버 측에서 보낸다고 배웠다. 이렇게 리퀘스트와 리스폰스를 주고 받을 때 교환하는 정보를 담는 것을 HTTP 메시지라고 한다. HTTP 메시지는 여러 행의 데이터로 구성된 텍스트 문자열이고 메시지 헤더와 메시지 바디로 구성된다. 여기서, 메시지 헤더 부분과 메시지 바디 부분의 구분하는 경계선을 나타내는 것은 [CR+LF]이다. (CR: 16진수 0x0d, LF: 16진수 0x0a) 모..
-
6일차 - CPU SchedulingCS지식/운영체제 2021. 4. 21. 22:58
오늘은 CPU 스케쥴링에 대해서 배웠다. 앞에서 배운 내용은 CPU와 프로세스에 대한 간단한 개념을 배웠는데 프로세스가 CPU를 할당받는다고 했다. 할당받을 때 규칙이 존재하고 오늘은 그 규칙에 대해 배울 수 있었다. 1. CPU 스케쥴링의 필요성 운영체제는 왜 CPU 스케쥴링이 필요할까? 우선, 필요한 이유를 설명하기 전에 필요한 개념부터 말하려고 한다. 프로그램이 실행(execution) 된다는 것은 CPU burst와 I/O burst의 연속을 의미한다. CPU burst는 CPU를 사용하여 무언가는 하는 시간이고 I/O burst는 I/O의 결과를 기다리는 시간이다. 이러한 점에서 우리는 프로세스를 2가지로 특성 분류할 수 있다. 1) I/O bound process CPU를 잡고 계산하는 시간보..