모각코

[2022 동계 모각코] 2회차 회고록

narlo 2023. 1. 12. 21:59

2회차(2023.01.12 19:00 ~ 22:00)

오늘의 목표
1. 객체지향, OS, DB, 네트워크 복습

1. 객체지향, OS, DB, 네트워크 복습

내일 SW 아카데미 시험이 있는 관계로 급하게 계획을 수정했다.

 

객체지향

컴파일 : 프로그램을 번역하는 과정

컴파일러 : 컴파일을 수행하는 주체

=> 컴파일러는 프로그램을 번역하는 프로그램

컴파일러에 의해 번역되는 프로그래밍 언어 : C/C++, Java, OCmal 등

 

해석(interpretation) : 프로그램을 해석 & 실행하는 과정

인터프리터 : 해석을 수행하는 주체

=> 인터프리터는 프로그램을 컴퓨터 대신 해석하는 프로그램

인터프리터에 의해 해석&실행되는 프로그래밍 언어 : Python, JavaScript 등

 

객체란?

객체 = Object = 사물

객체지향이란?

객체들 간의 관계를 통해 프로그램을 구성하는 것

 

절차지향 : 절차와 데이터로 구성

객체지향 : 행동과 상태로 구성

 

객체지향을 대표하는 6가지 개념

1. 클래스 : 특성과 행동으로 정의되는 객체의 분류

2. 객체 : 상태와 행동을 갖는 클래스의 사례(instance)

3. 추상화

    - 객체 사용과 무관한 세부 구현을 감춤

    - 어떤 행동(what)을 할 수 있는지에 초점

    - 행동을 어떻게(how) 수행하는지는 감춤

4. 캡슐화

    - 객체의 내부 상태를 외부로부터 감춤

    - 접근 지정자 이용

5. 상속

    - 기존 클래스로부터 새로운 클래스를 파생

    - 부모 클래스, 자식 클래스

6. 다형성

    - 다양한 형태나 의미를 가질 수 있는 특성

    - 정적 다형성 : 형태나 의미가 컴파일 시점에 결정

    - 동적 다형성 : 형태나 의미가 실행 시점에 결정

 

객체지향 언어의 장점

- 코드의 재사용성이 높음

- 코드의 관리가 쉬움

- 신뢰성 높은 프로그래밍이 가능

 

변수 종류

- 인스턴스 변수 : 객체의 상태를 구성하는 변수

- 스태틱 변수 : 클래스에 귀속되어 해당 클래스의 모든 객체가 공유하는 변수

- 로컬 변수

 

메소드 종류

- 인스턴스 메소드 : 객체의 행동을 정의한 함수, 객체의 상태 변화 가능

- 스태틱 메소드 : 클래스에 귀속된 행동, 수신자 객체가 없으므로, 객체의 상태 변화 불가

 

생성자

클래스를 객체화 할 때, 객체의 상태를 초기화하는 메소드

 

메소드 오버로딩 : 메소드 호출 시 사용되는 인자의 개수, 자료형에 따라 호출되는 대상 함수가 결정

 

클래스 사이의 관계

1. has-a(포함)

2. is-a(상속)

 

접근 지정자(접근 제어자)

public : 접근 제한 없음

protected : 동일한 패키지 + 자식 클래스

default : 동일한 패키지 내의 클래스

private : 클래스 내부

 

오버라이딩(overriding) : 부모 클래스의 메소드를 자식 클래스에서 재정의하는 것

- 메소드 이름, 매개변수, 리턴타입이 반드시 같아야 함

- 접근 지정자가 같거나 넓어져야 함

 

상속과 다형성

다형성 : 어떤 하나의 것이 여러 형태 또는 의미를 가질 수 있는 것

- 상속을 통해 다형성을 지원

- 자식의 객체는 부모의 분류에 속함

ex)  Car c = new Bus();

car : 부모, bus : 자식

 

동적 디스패치(dynamic dispatch)

어떤 메소드를 부를지 실행 시점에 결정하는 것

다형성 지원의 중요한 요소 중 하나

 

정적 디스패치

컴파일 시점에 호출될 메소드가 결정

메소드 오버로딩은 정적 디스패치를 사용

 

메소드 오버로딩 : 동일한 이름의 새로운 메소드를 정의하는 것

- 기존 같은 이름의 메소드와 파라미터 개수가 다름

- 기존 같은 이름의 메소드와 파라미터 타입이 다름

 

추상 클래스

- 구현이 정의되지 않은 추상 메소드를 포함

- 추상 메소드 : 선언은 있으나 구현이 없는 메소드로, abstract 키워드로 정의

 

인터페이스

- 상수와 추상 메소드만 멤버로 가질 수 있음

- 객체 생성 불가, 오직 다른 클래스에 의해 구현될 목적

 

인터페이스끼리 상속 가능

하나의 인터페이스가 여러 인터페이스를 상속받는 다중 상속 가능


컴퓨터네트워크

데이터 통신

송신자 - 송신기 - 전송 시스템 - 수신기 - 수신자

 

컴퓨터 네트워크 : 전송매체에 연결된 노드(수신 장치)와 링크(통신 채널)의 집합

 

프로토콜

- 이기종 시스템 간에도 통신이 가능하게 하기 위해 만든 일련의 표준, 협약

- 전달되는 정보의 형태, 오류 제어, 동기방식 등의 약속

 

주요 요소

1. 구문 (데이터의 형식, 부호화, 신호레벨 정의)

2. 의미 (해당패턴에 대한 해석과, 그 해석에 따른 전송제어, 오류수정 등에 관한 제어정보를 규정)

3. 타이밍 (두 객체간의 통신 속도 조정, 메시지의 전송 시간 및 순서 등에 대한 특성)

 

최초의 전기 통신은 1837년 사무엘 모스가 발명한 모스 부호

1876년 알렉산더 벨이 전화 발명

 

대역폭(bandwidth)

전송매체를 지나는 최대주파수와 최저주파수의 차이

대역폭이 높으면 단위시간 당 더 많은 데이터를 전송할 수 있다.

 

모뎀

- 컴퓨터 통신의 초기에는 기존에 있는 전화망을 사용하여 이용

- 전화망은 아날로그를 전송 => 컴퓨터 통신에 사용하기 위해서는 디지털 신호로의 변환 필요

변조 : 디지털 => 아날로그

복조 : 아날로그 => 디지털

 

네트워크 인터페이스 카드(NIC) : 디지털 신호를 직접 전송

허브 : 여러 곳으로부터 들어온 데이터를 그대로 다른 여러 곳으로 보내는 역할

- 더미 허브 : 단순 전달

- 스위칭 허브 : 단순 전달 + 목적지 주소로 스위칭 기능

 

리피터 : 약해진 신호를 다시 생성하여 전송

브리지 : 프레임의 주소를 보고 같은 LAN에 포함되어 있는 주소의 프레임은 받아들이고, 다른 LAN으로 보내야 할 것들은 브리지를 통해 해당 LAN으로 보냄

라우터 : 패킷의 논리주소(IP주소)에 따라 패킷을 라우팅, 네트워크의 연결 기능 담당

라우팅 : 라우터는 라우터로 수신되는 패킷의 목적지 인터넷 주소를 보고 다음 경로를 결정

게이트웨이 : 프로토콜 변환기, 서로 다른 프로토콜의 두 개의 네트워크를 서로 연결

 

회선교환방식

- 회선이 설정되어 해제되기 전까지 데이터를 전송하지 않을 때에도 다른 컴퓨터가 회선 사용 불가

- 음성과 같은 실시간 데이터 전송에 적합

- 독점사용 => 대량의 데이터 고속 전송

 

패킷교환방식

- 각 패킷들은 네트워크의 트래픽 상태에 따라 각기 다른 전송 경로

- 동일한 경로를 다른 목적지로 가는 여러 패킷들이 공유하므로 통신회선을 보다 효율적으로 사용

패킷의 구조

 

LAN(Local)

- 전송지연시간 적음

- LAN 표준 : 이더넷

 

MAN(Metropolitan)

- 하나의 마을이나 도시를 연결하는 네트워크

 

WAN(Wide)

- 전세계 연결 인터넷

- 상대적으로 먼 거리 연결 => 구축하는데 많은 비용, 저속

 

WWW(World Wide Web)

- 클라이언트/서버 구조 방식

 

FTP : File Transfer Protocol

 

계층구조 : 각 임무들이 계층구조에서 주어진 순서대로 수행

서비스

- 각 계층은 바로 아래 계층의 서비스 이용

- 각 계층은 상위 계층에 서비스를 제공

 

하나의 계층은 자신의 고유 역할을 수행하고, 자신과 인접한 다른 계층에 무엇인가를 요청하거나 응답

타 계층은 신경 슬 필요 X => 각 계층은 자신의 역할에 충실할 수 있다.

 

장점

- 단순함

    - 설계 쉬움

    - 유지 쉬움

    - 기능에 대한 중복정의 피함

    - 표준화 가능 => 여러 회사 장비의 호환 가능

- 유연성

    - 쉬운 수정

    - 쉬운 향상

 

OSI 7 layer

물리 - 데이터링크 - 네트워크 - 전송 - 세션 - 표현 - 응용

 

데이터링크 계층

- 논리적 단위 : 프레임

- 접근 제어

- 흐름 제어

- 오류 제어

- 동기화

 

네트워크 계층

- 스위칭 & 라우팅

- 논리주소인 IP주소를 헤더에 포함하여 전송

 

TCP/IP 프로토콜

네트워크(물리 + 데이터링크) - 인터넷 - 전송 - 응용(세션 + 표현 + 응용)

 

트랜잭션

- 데이터 교환을 위해 컴퓨터 시스템이 완료해야 하는 일련의 처리 동작

- 클라이언트가 서버에게 요청을 하고 서버가 응답을 보내는 과정

 

IP주소

8비트 크기의 필드 네 개를 모아 구성한 32비트 논리 주소

표현 범위 : 0.0.0.0 ~ 255.255.255.255

 

서브네팅

하나의 큰 네트워크를 몇 개의 작은 논리적인 네트워크로 분할하여 사용하는 방식

 

IP는 전송완료까지는 보장하지 않는다. 패킷 손실 => IP는 아무런 조치도 하지 않는다.

연결형 서비스 : TCP방식

비연결형 서비스 : UDP 방식(신뢰성 있는 데이터 전송 불가)

 

패킷 교환방식의 특징 : 순서가 바뀔 수도 있다.

 

 


시간을 고려하지 못하고 계획을 작성해서 네 과목 중 두과목밖에 보지 못해서 아쉽다.

갑작스러운 계획 변경이 없도록 공부는 미리미리 해두어야겠다.

온라인으로 하는 팀미팅도 나쁘지 않다고 생각했다.