CS

CS/네트워크

3-tier architecture

소프트웨어 아키텍처 패턴의 하나 애플리케이션을 세 개의 주요 계층으로 분리하는 방식 이를 통해 시스템의 모듈성을 높이고 유지 보수를 용이하게 하며, 성능과 확장성을 향상시킬 수 있다.  프리젠테이션 계층 (Presentation Tier)사용자와 상호 작용하는 부분으로, 사용자 인터페이스(UI)를 제공한다.HTML, CSS, JavaScript 등으로 UI를 구성하며, 사용자로부터 입력을 받고 이를 처리하여 데이터를 표시한다.애플리케이션 계층 (Application Tier)비즈니스 로직을 처리하는 부분으로, 데이터 처리, 계산, 데이터 변환 등의 핵심 기능을 담당한다.프리젠테이션 계층과 데이터 계층 간의 중개 역할을 하며, 두 계층 간의 데이터 흐름을 관리한다.일반적으로 서버에서 실행되며, Java, ..

CS/네트워크

DHCP

DHCP [Dynamic Host Configuration Protocol] 동적 호스트 구성 프로토콜 IP 주소는 전 세계 안에서 해당 단말을 식별하기 위해 사용된다. DHCP는 IP 주소를 네트워크에 연결된 장치에 자동으로 할당한다. 이것이 없으면 수동으로 IP 설정을 하기 때문에, 시간이 많이 소요되고 오류 발생 위험이 있다. DHCP는 네트워크가 연결되기 위해서 IP 주소를 할당하고, DNS를 설정하고 라우터를 설정한다. 장점 DHCP는 동일한 IP 주소가 할당된 다른 사용자 사이의 충돌을 방지해준다. 또, DHCP로 IP 주소의 유연성을 얻고 효율적인 네트워크 관리가 가능하다. IP 주소 할당 방식 동적 할당 [Dynamic Allocation] : 주소를 할당받은 장치가 주소가 필요없다는 메시..

CS/컴파일러

2. Formal Language

Natural Language : 한국어, 영어 등 (유연성 있음) Formal Language : C언어, 자바 등 (규칙을 다 지켜야 소통 가능) Well-defind language is defined by a set of sentences. 알파벳 : 심볼을 가지고 있는 유한집합 String : 심볼들을 이어붙인 것 Length of string : 스트링이 가지고 있는 심볼의 개수 empty string : 길이가 0인 스트링 그 외 수학적인 규칙들이 많다.

CS/컴파일러

1. Overview

컴파일러 : 주어진 언어로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 프로세스 컴파일러와 인터프리터의 차이는 컴파일러는 실행 전에 모든 코드를 번역하여 실행파일을 따로 만든다. 번역 속도는 느리지만, 결과적으로 실행 속도는 빠르다. 인터프리터는 한 줄씩 번역한다. 번역 속도는 빠르지만, 결과적으로 실행 속도는 느리다. 어셈블러는 기계어로 코딩을 하는 것인데, 사람이 매번 이럴 수는 없으므로 소스코드로 작성한다. 그리고 이것을 컴파일러가 변환해준다. 컴파일러는 크게 어휘 분석과 구문 및 의미 분석, 코드 생성 단계로 나뉜다. 컴파일러에 따라서는 선택적으로 구문 및 의미 분석과 코드 생성 단계 사이에 중간 코드를 생성하거나 코드를 최적화하기도 한다. 어휘 분석기(Lexical anal..

CS/소프트웨어공학

유스케이스

유스케이스의 특성 1. 유스케이스는 사용자와 시스템 간의 상호작용을 보여주는 '텍스트'다. 유스케이스는 다이어그램이 아니다. 중요한 것은 유스케이스 안에 포함되어 있는 상호작용의 흐름이다. 2. 유스케이스는 하나의 시나리오가 아니라 여러 시나리오들의 집합이다. 시나리오는 유스케이스를 통해 시스템을 사용하는 하나의 특정한 이야기 또는 경로다. 3. 유스케이스는 단순한 피처 목록과 다르다. 피처는 시스템이 수행해야 하는 기능의 목록을 단순하게 나열한 것이다. 4. 유스케이스는 사용자 인터페이스와 관련된 세부 정보를 포함하지 말아야 한다. 유스케이스는 자주 변경되는 사용자 인터페이스 요소는 배제하고 사용자 관점에서 시스템의 행위에 초점을 맞춘다. 5. 유스케이스는 내부 설계와 관련된 정보를 포함하지 않는다. ..

CS/네트워크

네트워크 CS 예상 문제

TCP가 reliable data transfer를 보장하기 위해 사용하는 기법으로 checksum, sequence number, ACK, retransmission timer가 있다. 우선 checksum에 대한 설명입니다. 각각의 character들을 숫자로 mapping해서 그 숫자들을 합한 것을 checksum이라 한다. 원본 문장과 계산한 checksum을 한꺼번에 수신자에게 보낸다. 여기서 어떤 형식으로 보내는지는 프로토콜에 의해서 합의를 한다. 그리고 수신자가 동일한 알고리즘으로 합을 구하고 checksum과 같으면 ok하고 다르면 무시하여 reliable delivery를 보장한다. 다음은 retransmission timer에 대한 설명입니다. sender는 해당 packet에 대응하는..

CS/소프트웨어공학

[4] 클래스 다이어그램 (Class diagram)

클래스 다이어그램 ? : 시스템에서 사용되는 객체 타입을 정의하고, 그들 간의 존재하는 정적인 관계를 다양한 방식으로 표현한 다이어그램 : 구조적 모델을 가시화, 문서화하는데 필요 구성 요소 개념 Visibility : public(+), private(-), protected(#) 등과 같은 접근 지정자 클래스 표기는 박스를 세 부분으로 나누어 맨 위는 클래스 이름, 가운데는 속성, 맨 아래는 연산을 기술한다. 클래스 간 관계 1. 연관(Association) 하나의 클래스가 다른 클래스에서 제공하는 기능을 사용 2. 집합(Aggregation) Association의 일종 전체와 부분의 관계를 표시 3. 복합(Composition) 전체에 대해 부분이 강한 소속감을 가지고 동일한 생명기간을 가질 때 ..

CS/소프트웨어공학

[3] 액티비티 다이어그램 (Activity diagram)

액티비티 다이어그램? : 객체의 상태가 아닌 처리 로직이나 조건에 따른 처리흐름을 순서에 따라 정의한 다이어그램 특징 1. 처리흐름의 도식화로 프로그램 로직 정의 가능 2. 비즈니스 프로세스 정의 3. usecase의 실현 구성요소 액션 : 더 이상 분해할 수 없는 단일 작업 액티비티 : 액션의 집합 시작 노드 : 액션이나 액티비티의 시작 종료 노드 : 모든 액티비티가 종료 흐름 종료 노드 : 특정 제어 흐름이나 객체 흐름이 종료됨 조건 노드 : 조건에 따라 제어의 흐름이 분리됨, 들어오는 제어 흐름은 한 개, 나가는 제어 흐름은 여러 개 병합 노드 : 여러 경로의 흐름이 하나로 합쳐짐, 들어오는 제어 흐름은 여러 개, 나가는 제어 흐름은 한 개 객체 노드 : 객체 흐름에 연결된 객체 제어 흐름 : 실행..

화서동 병아리
'CS' 카테고리의 글 목록