본문 바로가기

CS45

[Network] 01. 네트워크 기초 네트워크의 구조 네트워크 컴퓨터들 간에 정보 또는 데이터를 전달하기 위해 여러 대의 컴퓨터들을 서로 연결할 수 있도록 사전에 연결된 망을 의미. 네트워크를 통해 컴퓨터 간에 필요한 데이터(정보)를 주고받을 수 있다. 패킷 컴퓨터 네트워크에서 데이터를 주고받을 때 정해 놓은 규칙으로 컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해 전송되는 데이터의 작은 조각을 말한다. 그렇다면 데이터를 한 번에 보내지 않고 작게 나누는 이유는 무엇일까? 큰 데이터를 그대로 보내면 해당 데이터가 네트워크의 대역폭을 너무 많이 차지해 패킷의 흐름이 원활하지 못할 수 있다. 이를 방지하기 위해 데이터를 패킷으로 나누어 보내는 것이다. ※ 대역폭 : 정보를 전송할 수 있는 단위 시간당 전송량 랜과 왠 랜(LAN, Local A.. 2021. 11. 25.
Inheritance와 Delegation (상속과 위임) 클래스의 상속(Inheritance) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Person{ protected int age; protected String name; public Person(int age, String name){ this.age = age; this.name = name; } public int getAge(){ return this.age; } public String getName(){ return this.name; } } Colored by Color Scripter cs Person 클래스를 상속받는 Student 클래스는 다음과 같이 정의할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 class Student.. 2020. 9. 5.
디자인 패턴(Design Pattern) [디자인 패턴이란?] 소프트웨어 공학에서의 디자인 패턴(Design pattern)이란 프로그램 개발 시에 자주 마주하는 애로 사항에 대한 일반적이고 재사용 가능한 추상화된 해결책을 말한다. 간단하게 예를 들자면 어떤 시스템에 최고 관리자가 존재한다고 가정하자. 이 사람에게만 주어지는 슈퍼 계정을 만들어야 하는데 이러한 슈퍼 계정은 두 개 이상 만들 이유도 없고, 해서도 안된다(다른 사람이 해당 계정을 사용할 수 있으므로). 이런 문제 상황에서 이를 해결하기 위한 디자인 패턴으로 Singleton 패턴이 존재한다. 디자인 패턴은 일반화된 해결책이고(특정한 구현이 아님) 추후 재사용, 호환, 유지 보수시 발생하는 문제 해결을 위해 만들어 둔 것을 의미한다. * 원칙 (객체지향 설계 원칙) - Single .. 2020. 9. 4.
PCB Process Control Block - 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영체제 커널의 자료구조. - PCB는 운영체제가 프로세스를 표현한 것이라고 볼 수 있다. - 운영체제가 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보를 가지고 있는 데이터베이스 - 운영체제에서 프로세스는 PCB로 나타내어지며, PCB는 프로세스에 대한 중요한 정보를 가지고 있다. 각 프로세스가 생성될때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다. - 프로세스가 CPU를 점유하여 작업을 처리하다가 상태가 전이되면, 진행하던 작업 내용들을 모두 정리하고 CPU를 반환해야 하는데, 이 때 진행하던 작업들을 모두 저장하지 않으면 다음에 자신의 순서가 왔을 때 어떠한 작업을 해야하는지 .. 2020. 8. 29.
Process / Thread 프로세스(Process) vs 스레드(Thread) 프로그램(Program) 이란? - 어떤 작업을 위해 실행할 수 있는 파일 프로세스(Process) 란? 사전적 의미 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위(스케줄링의 대상) 동적인 개념으로는 실행된 프로그램을 의미한다. 할당받는 시스템 자원의 예 CPU 시간 운영되기 위해 필요한 주소 공간 Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다. 기본적으로 프로세스당 최소 1개의 스레드(메인 스.. 2020. 8. 28.
REST 1. REST - Representational State Transfer의 약자로 분산 네트워크 프로그래밍의 아키텍처 스타일이다. [REST의 특성과 규칙] 1.1 특성 클라이언트/서버 (client/server) : 클라이언트와 서버가 서로 독립적으로 구분되어야 하고 서로간의 의존성 때문에 확장에 문제가 되는 일이 없어야 한다. 상태 없음 : 통신 시에 상태가 없어야 한다. 서버는 클라이언트의 상태를 기억할 필요가 없다. 레이어드 아키텍처 : 서버와 클라이언트 사이에 게이트웨이, 방화벽, 프록시가 있는 것처럼 다계층 형태로 레이어를 추가하거나 수정하거나 제거할 수 있고 확장성이 있어야 한다. 캐시(cache) : 서버의 응답들은 캐시를 가지고 있거나 없거나 둘 중의 하나인데, 캐시를 가지고 있을 경우.. 2020. 8. 22.