좋은 설계란 무엇일까?좋은 설계란 요구하는 기능을 정확하게 수행하면서, 추후 변경을 매끄럽게 수용할 수 있는 설계! 코드의 변경이 필요할 때, 해당 코드가 이해하기 쉬워야 변경이 간편하다. 따라서, 변경하기 쉬운 코드는 그 자체로도 이해하기 쉬운 코드를 의미한다. 대개는 이러한 코드를 지향하며 코드를 작성하게 된다. 이를 위해 다양한 프로그래밍 패러다임과 아키텍처 패턴을 프로젝트에 도입하여, 체계적이고 깔끔한 코드 구조를 구현할 수 있게 되는 것이다. 객체?객체(Object)는 현실 세계의 물체나 개념을 소프트웨어 세계로 옮긴 것! 여기서 객체는 여러 속성과 행동[메서드]으로 구성된다. 객체는 정보[데이터]와 그 정보를 처리하는 행동[함수 또는 메서드]을 가지고 있고, 각 객체들은 서로 메서드 호출을 통..
성능 최적화 네트워크 I/O비동기 I/O 사용: IOCP와 같은 비동기 I/O 모델을 사용하면 클라이언트 요청을 효율적으로 처리할 수 있다. 이는 블로킹을 최소화하고, 높은 동시성을 유지하는 데 도움이 된다.데이터 패킷 크기 조절: 전송하는 데이터 패킷의 크기를 최적화하여 네트워크 오버헤드를 줄일 수 있다. 너무 큰 패킷은 분할 전송으로 인한 지연을 유발할 수 있다.프로토콜 최적화: 필요한 정보만 전송하고, 불필요한 데이터는 제거하여 통신 효율성을 높인다. 예를 들어, HTTP 대신 WebSocket을 사용하여 지속적인 연결을 유지하는 것이 유리할 수 있다.압축 및 캐싱: 데이터를 압축하여 전송하면 대역폭 사용을 줄일 수 있다. 또한 자주 요청되는 데이터는 캐시하여 네트워크 요청 수를 줄이는 것도 효과적..
메모리 컴퓨터 시스템에서 데이터를 저장하고 처리하기 위해 사용되는 구성 요소로, 크게 주기억장치와 보조기억장치로 나뉜다. 주기억장치 (RAM)전원이 꺼지면 저장된 데이터가 사라지는 휘발성 메모리이며 CPU가 빠르게 접근할 수 있는 고속 메모리로, 현재 실행 중인 프로그램과 데이터를 임시로 저장한다. RAM의 종류에는, 주기적으로 재충전해야 하며 일반적인 컴퓨터의 RAM인 DRAM(Dynamic RAM) 과 DRAM에 비해 더 빠르지만 비싼, 주로 캐시 메모리에서 사용되는 SRAM(Static RAM) 이 존재한다. 보조기억장치 전원이 꺼져도 데이터가 유지되는 비휘발성 메모리로, 대량의 데이터를 영구적으로 저장하는 용도로 사용된다. 종류더보기ROM (Read-Only Memory): 읽기 전용 메모리..
컴퓨터의 구조 컴퓨터의 구조는 일반적으로 하드웨어와 소프트웨어로 나눌 수 있다. 하드웨어 컴퓨터의 물리적인 부품. 주요 구성 요소로는 CPU, 메모리(RAM, ROM), 저장 장치(HDD, SSD), 입출력 장치, 메인 보드, 전원 공급 장치(PSU) 등이 있다. 소프트웨어 컴퓨터에서 수행되는 프로그램이나 명령어의 집합으로, 하드웨어를 운영하고 관리하는 역할을 한다. 주요 구성 요소로는 운영 체제(OS), 응용 프로그램, 드라이버, 시스템 소프트웨어 등이 존재한다. CPU (중앙처리장치 - Central Processing Unit) CPU(중앙 처리 장치)는 컴퓨터의 두뇌로, 모든 연산과 명령을 처리하는 핵심 부품이다! 주요 기능명령어 실행: 프로그램이 제공하는 명령어를 해석하고 실행한다. 명령어는 ..
IP의 개념과 주소 체계, 서브넷 마스크IP(Internet Protocol)는 인터넷 상에서 데이터를 주고 받기 위해 사용하는 프로토콜. 네트워크에서 장치의 주소를 지정하고 데이터를 전송하는 방법을 정의한다. IP 주소는 네트워크에 연결된 각 장치의 고유한 식별자로써 기능을 한다. 더보기프로토콜이란, 네트워크에서 데이터 통신을 위해 정해진 규칙이나 표준을 의미한다. (형식이나 전송 방법, 오류 처리 등을 명시.) ex) HTTP는 웹페이지 전송을 위한 프로토콜이고, TCP는 신뢰성있는 데이터 전송을 위한 프로토콜이다. IPv432비트 주소체계. 일반적으로 4개의 옥텟(8bit - 1byte)으로 구성된다. 주소 범위는 대략 42억개로 방대하나, 급속한 인터넷 성장으로 주소가 고갈되는 문제가 발생하였다...
2계층. 데이터 링크 계층OSI 7계층의 두 번째 계층으로, 네트워크 노드끼리 데이터를 전송하는 기능과 절차를 제공.한 노드에서 다른 노드로 데이터가 올바르게 전송되도록 보장.물리적 전송 중 발생할 수 있는 오류(물리계층에서 발생 가능한 오류)를 감지하고 수정. 구성 데이터 링크 계층은 2개의 부 계층으로 구성된다. MAC : 물리적 부분으로 매체간 연결 방식을 제어하고 1계층과 연결되어 있다. 48-bit(6-byte)로 구성, 각 바이트마다 16진수로 표현. 그 중 앞의 세 자리는 OUI(Organization Unique Identifier)로 제조사 식별 코드가 있고, 나머지 3자리는 제조사의 일련번호가 들어있다. 따라서 MAC으로 어떤 제조사가 만들었는지 구분할 수 있고 주소가 Unique 하다..