CS 23

[소프트웨어공학] Chapter 02 - Software Process Models

1. The Software Process - 소프트웨어 프로세스는 소프트웨어 시스템을 개발하는데 필요한 구조화된 활동. == 즉, 소프트웨어를 개발하려면 무엇을 해야하는가? - 명세 Specification: 시스템이 해야할 일을 명확하게 정의 - 설계 및 개발 Design and implementation: 시스템의 구성 조직을 정의하고 구현 - 검증 Validation: 고객이 원하는대로 잘 만들어졌는지 - 발전 Evolution: 고객의 요구사항 변화에 맞춰 소프트웨어를 수정 => 소프트웨어 프로세스 모델은 원하는 기능을 만들어내기 위한 일련의 흐름이다. => 소프트웨어 프로세스 모델은 추상적이다. 왜? -> 시간의 한계, 계획서의 복잡도 증가로 인해 모든 것을 표현할 수는 없음 2. Softwa..

[DB] 데이터 추상화 레벨, 3단계 스키마 구조, 데이터 독립성

* 추상화란? Computer Science에서 추상화란 세세한 instance에서 중요한 개념, 핵심만 분리하는 프로세스를 의미한다. 즉 instance를 사용자에게 보여주는 방법, 표현이라고 할 수 있을 것 같다. 추상화는 추상화 레벨에 따라 사용자에게 보이는 detail 정도가 달라진다. 1. 데이터 추상화 레벨 - 3단계 추상화 물리적 레벨 Physical Level에서의 추상화 실제 데이터 레코드(record)가 어떻게 저장되는지 기술한다. 데이터 필드 길이, 필드 간격, 레코드의 전체 길이 등을 포함한다. 논리적 레벨 Logical Level에서의 추상화 데이터베이스에 저장되어 있는 데이터들 간의 관계를 논리적 관점에서 추상화한 것이다. 예를 들어 Type Professor = record I..

CS/Database 2024.04.06

[DB] 인스턴스(Instance)와 스키마(Schema)

1. 스키마란? 데이터베이스의 논리적, 물리적 구조를 의미한다. 쉽게 말해서, 뼈대, 데이터를 저장하는 틀이나 구조체, 변수의 타입에 대응되는 개념 정도로 이해하면 된다. 각 데이터베이스마다 구체적으로 어떤 구조인지 기술하는 방법은 데이터베이스의 모델이나 데이터베이스를 보는 level에 따라 달라진다. 하지만 구조를 기술하는 방법은 다르더라도 데이터베이스의 스키마가 데이터가 저장되는 공간 구조를 기술한다는 점은 동일하다. 2. 인스턴스란? 데이터베이스의 스키마가 겨정되면 실제 데이터 값이 스키마 형태로 저장되고 관리된다. 이 때 데이터의 실제값을 인스턴스라고 한다. (변수의 값에 대응되는 개념 ) 시간이 흐르면서 인스턴스(=실제 데이터 값)은 변경이 자주 발생하지만(데이터 추가, 삭제, 변경 등), 스키..

CS/Database 2024.04.06

[소프트웨어공학] Chapter 01 - Introduction to SE

1. 소프트웨어란? - 실행 시 원하는 기능, 함수, 성능을 제공하는 명령어 - 프로그램이 정보를 조작할 수 있도록 하는 데이터 구조 - 프로그램의 작동 및 사용법에 관한 문서 - 소프트웨어는 제조(manufacture) 되는 게 아님. 개발(develop), engineer 된다. - 소프트웨어는 마모(wear out) 되는 게 아니라 악화(deteriorate)된다. - 업계는 component 기반 구축으로 변화하고 있지만 대부분의 소프트웨어는 고객 맞춤형으로 개발된다. => custom 해서 사용 2. Legacy Software 소프트웨어는 왜 변화해야만 하는가? - 새로운 컴퓨팅 환경이나 기술의 변화에 맞춰 변경되어야 함. - 새로운 비즈니스 요구사항을 충족해야 함. - 소프트웨어는 나만 쓰는..

[DB] Super key, Candidate key, Primary key란

1. Super key Super key는 데이터에 관계에서 tuple을 유일하게 식별할 수 있는 속성의 집합이다. 2. Candidate key Candidate key는 Super key 중 minimal한 집합을 의미한다. 여기서 minimal이란 속성의 개수가 적다는 것을 의미하는 것이 아니다. minimal은 key의 unique를 유지하면서 가장 적은 속성을 의미한다. 예를 들어 아래와 같은 예시가 있다고 하자. MyStudent(student-id, name, national-id, address, phone) 여기에서 student-id와 national-id는 학생들을 구별할 수 있는 unique한 키다. 이 때 나올 수 있는 Super key는 - (student-id), (studen..

CS/Database 2024.03.31

TCP flow control이란?

0. 배경 송신자가 전송한 데이터를 수신자가 받아서 버퍼에 저장한다. 이 때, 송신자가 데이터를 전송하는 속도와 수신자가 데이터를 수신하는 속도가 다를 수 있다. 만약 송신지의 데이터 전송속도가 수신자의 데이터 수신속도보다 빠르다면 수신자의 버퍼는 들어오는 데이터의 속도를 이기지 못하고 결국 버퍼가 넘칠 것이다. 이 과정에서 데이터가 유실될 가능성이 있다. 송신자와 수신자 간 데이터 전송 속도차로 인한 데이터 유실이 발생하는 것이다. TCP는 데이터 유실을 방지하기 위해 송신자의 전송 속도를 조절하는 방법을 택했다. 이것이 flow control이다. 1. flow control 과정 TCP는 flow control을 위해 receive window(=rwnd)라는 변수를 사용한다. 이 변수를 사용하여 ..

CS/Network 2024.03.18

다중화와 역다중화

다중화와 역다중화를 알기 전에 Trans-L와 Net-L, 소켓이 무엇인지 알아야 한다. Transport vs Network layer Net-L는 서로 다른 호스트 간 논리적 통신을 제공하고 Trans-L는 프로세스들(서로 다른 호스트 안에서 동작) 간 논리적 통신을 제공한다. 이 차이를 이해할 수 있는 예제가 있다. 집A에 있는 12명의 아이들이 집B에 있는 또다른 12명의 아이들에게 편지를 보낸다고 가정하자. 이 때 집A와 집B는 각각 호스트A, 호스트B가 된다. 아이들은 프로세스이고 편지는 application messages = 데이터이다. 편지가 집A에서 집B로 이동하는 과정(postal service)은 Net-L 프로토콜이다. (라우팅) 편지가 집B에 도착하고, 12명의 아이들에게 편지를..

CS/Network 2024.02.01

OSI 7계층 모델과 TCP/IP 4계층 모델 비교

1. 물리계층 (Physical Layer) 실제 장치를 연결하는 데 필요한 전기적, 물리적 세부 사항을 정의한다. 상위 계층에서 전송된 데이터를 물리 매체를 통해 다른 시스템에 전기적 신호로 전송한다. 주요 네트워크 장치로 리피터, 허브 등의 기기가 있다. 2. 데이터 링크 계층 (Data Link Layer) 물리 링크를 통한 데이터 전송의 신뢰성을 보장하기 위한 계층이다. 대표적인 예로 이더넷이 있다. 시스템 간 오류없이 데이터를 전송하기 위해서 패킷을 프레임으로 구성하여 물리 계층에 전송한다.(캡슐화 과정) 데이터 링크 계층에서 물리적 주소, MAC 주소를 결정한다. 대표적인 네트워크 기기로 스위치가 있다. 3. 네트워크 계층 (Network Layer) LAN에서 벗어난 통신을 위하여 IP 주소..

CS/Network 2024.01.31

HTTP란 무엇인가?

HTTP란?HTTP(HyperText Transfer Protocol)는 웹의 app-L 프로토콜이다. HTTP의 특징client/server 모델이다.client: HTTP 프로토콜로 요청(request)을 보내고 응답을 받는 브라우저이다. server: HTTP 프로토콜로 요청에 대한 응답(reponse)을 보낸다.일반적으로, 사용자가 웹 페이지를 요청할 때 (1) 브라우저는 페이지 내부의 객체에 대한 HTTP 요청 메시지를 서버에게 전송한다.(2) 서버는 요청을 수신하고, 객체를 포함하는 HTTP 응답 메시지로 응답한다. HTTP의 TCP 사용클라이언트가 서버에게 TCP connection을 보낸다. (이 때 소켓을 만든다.)서버는 클라이언트로부터 온 TCP connection에 접속한다. (소켓 ..

CS/Network 2024.01.30

OSI 7계층: 7계층 응용 계층(Application Layer)이란?

Computer Networking: A Top-Down Approach, 8th Edition의 내용을 기반으로 작성한 글입니다. OSI(Open System Interconnection) 네트워크 모델 - OSI 7계층이란? ISO(International Organization for Standardization)는 1980년대 초, 여러 업체가 만든 시스템에 대해 상호연동이 가능한 표준 네트워크 모델을 제정할 필요성을 인식하고 1984년에 OSI 네트워크 모델을 발표했다. 7계층 - 응용 계층(Application Layer)이란? 여러 가지 프로토콜에 대한 사용자 인터페이스를 제공한다. 사용자나 응용 프로그램 사이에 데이터 교환을 가능하게 하는 계층이다. HTTP, FTP, 메일 프로그램 등을 ..

CS/Network 2024.01.29