Computer Science 20

네트워크 - PDU

PDU(Protocol Data Unit)어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위PDU는 제어 관련 정보들이 포함된 ‘헤더’, 데이터를 의미하는 ‘페이로드’로 구성되어 있으며 계층마다 부르는 명칭이 다름애플리케이션 계층: 메시지 - HTTP의 헤더가 문자열인 것전송계층: 세그먼트(TCP),데이터그램(UDP)인터넷 계층: 패킷링크 계층: 프레임(데이터 링크 계층), 비트(물리 계층) curl 명령어를 이용하여 http://www.naver.com으로 HTTP 요청을 해서 PDU 테스팅PDU 중 아래 계층인 비트로 송수신하는 것이 모든 PDU 중 가장 빠르고 효율성이 높음하지만 애플리케이션 계층에서는 문자열을 기반으로 송수신을 하는데, 그 이유는 헤더에 authorization 값 등 ..

Computer Science 2025.05.02

TCP/IP 4계층 모델

인터넷 프로토콜 스위트(internet protocol suite)인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 프로토콜의 집합TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 함TCP/IP 4계층 모델은 네트워크에서 사용되는 통신 프로토콜의 집합으로 계층들은 프로토콜의 네트워킹 범위에 따라 4개의 추상화 계층으로 구성됨계층 구조TCP/IP 계층은 4개의 계층을 가지고 있으며 OSI 7계층과 많이 비교함TCP/IP 계층과 달리 OSI 계층은 애플리케이션 계층을 3개로 쪼개고링크 계층을 데이터 링크 계층, 물리 계층으로 나눠서 표현하는 것이 다르며 인터넷 계층을 네트워크 계층으로 부른다는 점이 다름이 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계되었음전..

Computer Science 2025.05.01

네트워크 프로토콜 표준화

네트워크 프로토콜다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스기업이나 개인이 발표해서 정하는 것이 아니라 IEEE 또는 IETF라는 표준화 단체가 정함 IEEE802.3은 유선 LAN 프로토콜로, 유선으로 LAN을 구축할 때 쓰이는 프로토콜이를통해 만든 기업이 다른 장치라도 서로 데이터를 수신할 수 있음웹에 접속할 때 쓰이는 HTTP서로 약속된 인터페이스인 HTTP라는 프로토콜을 통해 노드들은 웹 서비스를 기반으로 데이터를 주고 받을 수 있음구분 IEEE IETF정식 명칭Institute of Electrical and ..

Computer Science 2025.04.30

네트워크 - 처리량과 지연시간

네트워크네트워크는 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합 노드란 서버, 라우터,스위치 등 네트워크 장치를 의미 링크란 유선 또는 무선을 의미 좋은 네트워크좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크 처리량링크 내에서 성공적으로 전달된 데이터의 양 보통 얼만큼의 트래픽을 처리했는지 나타냄 많은 트래픽을 처리한다 = 많은 처리량을 가진다 단위로는 bps(bits per second) 초당 전송 또는 수신되는 비트 수 처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중..

Computer Science 2025.04.29

예상 질문 - 인터페이스 분리 원칙

인터페이스 분리 원칙인터페이스 분리 원칙(ISP, Interface Segregation Principle)은 하나의 일반적인 인터페이스보다 구체적인 여러 개의 인터페이스를 만들어야 하는 원칙interface Machine { void print(); void scan(); void fax();}class Printer implements Machine { public void print() { System.out.println("Printing"); } public void scan() { /* 필요 없는데 구현해야 함 */ } public void fax() { /* 필요 없는데 구현해야 함 */ }} ISP를 지키면, 프로그램을 고칠 때 다른 부분에 쓸데없는 영향을 ..

Computer Science 2025.04.28

프로그래밍 패러다임 - 패러다임의 혼합

어떤 패러다임이 가장 좋을까?그런 건 없다 비즈니스 로직이나 서비스의 특징을 고려해서 패러다임을 정하는 것이 좋음 하나의 패러다임을 기반으로 통일하여 서비스를 구축하는 것도 좋지만 여러 패러다임을 조합하여 상황과 맥락에 따라 패러다임 간의 장점만 취해 개발하는 것이 좋음 예를 들어 백엔드에 머신러닝 파이프라인과 거래 관련 로직이 있다면 머신러닝 파이프라인은 절차지향형 패러다임, 거래 관련 로직은 함수형 프로그래밍을 적용하는 것이 좋음 옵저버 패턴 구현프록시 객체를 써서 하곤 함프록시 객체를 통해 객체의 속성이나 메서드 변화 등을 감지하고 이를 미리 서정해 놓은 옵저버들에게 전달하는 방법 프록시 서버 설명 및 사용 사례클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 서버..

Computer Science 2025.04.28

프로그래밍 패러다임 - 절차형 프로그래밍

절차형 프로그래밍로직이 수행되어야 할 연속적인 계산 과정으로 이루어져 있음일이 진행되는 방식으로 그저 코드만 구현하면 됨순차 실행코드는 작성한 순서대로 위→아래로 실행함수(메서드) 사용작업을 작은 조각(함수)으로 나눠서 관리 가능상태 관리프로그램은 변수(데이터)를 수정하면서 진행구조적 흐름조건문(if), 반복문(for/while) 같은 기본 제어 구조를 사용명확한 흐름코드 읽을 때 "이 다음에 이거 한다"가 바로 보임 장점가독성이 좋고 실행 속도가 빠르므로 계산이 많은 작업에 쓰임대표적으로 포트란을 이용한 대기 과학 관련 연산작업, 머신 러닝의 배치 작업배우기 쉬움코드를 순서대로 따라가기만 하면 되니까 초보자에게 유리명확한 실행 흐름어떤 일이 먼저 일어나는지 명확빠른 개발작은 프로그램은 절차형이 빠르게 ..

Computer Science 2025.04.28

디자인 패턴 - MVVM 패턴

MVVM 패턴MVC의 C에 해당하는 컨트롤러가 뷰모델(view model)로 바뀐 패턴뷰모델은 뷰를 더 추상화한 계층이며, MVVM 패턴은 MVC 패턴과는 다르게 커맨드와 데이터 바인딩을 가지는 것이 특징뷰와 뷰모델 사이의 양방향 데이터 바인딩을 지원UI를 별도의 코드 수정 없이 재사용 가능단위테스팅 쉬움 MVVM 패턴의 예: 뷰MVVM 패턴을 가진 대표적인 프레임워크로는 뷰(Vue.js)반응형이 특징인 프런트엔드 프레임워크watch와 computed 등으로 쉽게 반응형 적인 값들을 구축할 수 있음 함수를 사용하지 않고 값 대입만으로 변수가 변경됨양방향 바인딩, html을 토대로 컴포넌트 구축 가능재사용 가능한 컴포넌트 기반으로 UI 구축 가능 커맨드여러 가지 요소에 대한 처리를 하나의 액션으로 처리할..

Computer Science 2025.04.24

디자인 패턴 - MVP 패턴

MVP 패턴MVP 패턴은 MVC 패턴으로부터 파생되었으며 MVC에서 C에 해당하는 컨트롤러가 프레젠터(presenter)로 교체된 패턴뷰와 프레젠터는 일대일 관계이기 때문에 MVC 패턴보다 더 강한 결합을 지님 동작사용자의 Action들은 View를 통해 들어옴View는 데이터를 Presenter에 요청Presenter는 Model에게 데이터를 요청Model은 Presenter에서 요청받은 데이터를 응답Presenter는 View에게 데이터를 응답View는 Presenter가 응답한 데이터를 이용하여 화면을 나타냄 특징Presenter는 View와 Model의 인스턴스를 가지고 있어 둘을 연결하는 접착제 역할Presenter와 View는 1:1 관계입니다. 장점MVP 패턴의 장점은 View와 Mode..

Computer Science 2025.04.24