열심히 살아나갈 사람
[Programmers][Java]최대공약수와 최소공배수

Programmers_Level_1 2023.12.15 - [코딩테스트/프로그래머스] - [Programmers][Java]최대공약수와 최소공배수 2023.12.16 - [코딩테스트/프로그래머스] - [Programmers][Java]같은 숫자는 싫어 2023.12.16 - [코딩테스트/프로그래머스] - [Programmers][Java]3진법 뒤집기 2023.12.17 - [코딩테스트/프로그래머스] - [Programmers][Java]예산 2023.12.18 - [코딩테스트/프로그래머스] - [Programmers][Java]이상한 문자 만들기 2023.12.18 - [코딩테스트/프로그래머스] - [Programmers][Java]크기가 작은 부분문자열 2023.12.21 - [코딩테스트/프로그래머스..

article thumbnail
TCP/IP 4계층
CS/Network 2023. 12. 14. 19:12

인터넷 프로토콜 스위트(Internet Protocl Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합이며, 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 합니다. 이번 글에서는 TCP/IP 4계층 모델에 대해 다룰것이며, 이 계층 모델은 네트워크에서 사용되는 통신프로토콜의 집합으로 계층들은 프로토콜의 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성됩니다. 계층구조 네트워크 인터페이스 계층(링크 계층) 네트워크 인터페이스 계층(Network Interface Layer)은 데이터를 물리적인 네트워크 매체를 통해 전송하는 역할을 담당합니다. 이를 물리 계층과 데이터 링크 계층으로 나누기도 하는데 물리 계층은 무선 LAN과 유선 LAN을 통해..

article thumbnail
네트워크 기초
CS/Network 2023. 12. 12. 18:24

네트워크란? 네트워크는 여러 개의 컴퓨터, 서버, 통신 장비 등의 디바이스(노드)들이 통신 매체(링크)를 통해 연결되어 서로 데이터를 주고받거나 리소스를 공유하는 시스템을 말합니다. 처리량과 지연시간 처리량(Throughput): 네트워크가 단위 시간 동안 전송할 수 있는 데이터의 양을 말합니다. 일반적으로 비트/초(bit/s) 단위로 측정됩니다. 대역폭(Bandwidth): 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수입니다. 지연시간(Latency): 데이터가 송신지에서 수신지까지 도달하는 데 걸리는 시간을 말합니다. 네트워크의 성능을 평가하는 데 중요한 요소이며, 일반적으로 밀리초(ms) 단위로 측정됩니다. 네트워크 토폴로지와 병목 현상 네트워크 토폴로지: 네트워크의 물리적 또..

절차지향형 프로그래밍
카테고리 없음 2023. 12. 11. 17:22

절차지향형 프로그래밍(Procedural Programming)은 프로그래밍 패러다임 중 하나로, 프로그램을 일련의 절차나 루틴으로 보고 이들을 순차적으로 실행하여 결과를 도출하는 방법입니다. 이 패러다임은 명령형 프로그래밍의 한 형태로, 가장 오래되고 전통적인 프로그래밍 방식 중 하나입니다. 절차지향 프로그래밍의 주요 특징과 장점 절차와 순차적 실행: 프로그램은 일련의 절차로 구성되며, 이들 절차는 주어진 순서에 따라 실행됩니다. 각 절차는 특정한 작업을 수행하며, 이들을 조합하여 복잡한 작업을 수행합니다. 모듈화: 프로그램의 복잡성을 관리하기 위해, 작업을 수행하는 절차를 모듈로 구분합니다. 이를 통해 코드의 재사용성을 높이고, 유지 관리를 용이하게 합니다. 명료성: 절차지향 프로그래밍은 프로그램의 ..

객체지향형 프로그래밍
CS/Programing Paradigms 2023. 12. 11. 17:20

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그래밍 패러다임 중 하나로, 프로그램을 객체들의 모임으로 보고, 이들 간의 상호작용으로 프로그램을 구현하는 방법론입니다. 객체는 데이터와 그 데이터를 처리하는 함수(메서드)를 하나의 묶음으로 취급합니다. 이런 객체들이 서로 상호작용하며 프로그램이 동작합니다. 객체지향 프로그래밍의 주요 특징 추상화(Abstraction) 추상화는 복잡한 시스템을 단순한 개념으로 변환하는 메커니즘입니다. 이를 통해 프로그램의 복잡성을 관리하며, 필요한 특성만을 고려하고 불필요한 세부 정보는 무시할 수 있습니다. 객체지향 프로그래밍에도 단점이 있습니다. 예를 들어, 설계 단계에서 많은 시간과 노력이 필요하며, 객체 간의 관계가 복잡해질수록 ..

명령형 프로그래밍
CS/Programing Paradigms 2023. 12. 11. 16:39

명령형 프로그래밍은 프로그래밍 패러다임 중 하나로, 컴퓨터에게 수행할 명령을 순차적으로 전달하는 방식을 사용합니다. 이 패러다임은 프로그램이 상태의 변화를 통해 계산을 수행함을 가정하며, 대부분의 일반적인 프로그래밍 언어가 이 패러다임을 따릅니다. 명령형 프로그래밍의 주요 특징과 장점 명령문(Statements): 명령형 프로그래밍에서는 변수 할당, 제어 흐름(if, for, while 등), 서브루틴 호출 등의 명령문을 사용하여 프로그램을 구성합니다. 상태 변화(State Changes): 명령형 프로그래밍에서는 프로그램의 상태를 변경하는 것이 중요합니다. 예를 들어, 변수에 값을 할당하거나 데이터 구조를 수정하는 것이 이에 해당합니다. 직관적인 접근 방식: 명령형 프로그래밍은 컴퓨터가 내부적으로 작동..

함수형 프로그래밍
CS/Programing Paradigms 2023. 12. 11. 16:17

함수형 프로그래밍은 프로그래밍 패러다임 중 하나로, 계산을 수학적 함수의 계산으로 보고, 상태와 변경 가능한 데이터를 피하는 방법론입니다. 이 패러다임은 부작용(side effects)을 최소화하려는 목표를 가지고 있습니다. 함수형 프로그래밍의 주요 특징과 장점 불변성(Immutability): 함수형 프로그래밍에서는 데이터의 상태가 변하지 않습니다. 즉, 한 번 생성된 데이터는 변하지 않으며, 필요한 경우 새로운 데이터를 생성합니다. 순수 함수(Pure Functions): 순수 함수는 같은 입력에 대해 항상 같은 출력을 반환하며, 외부 상태에 영향을 미치지 않습니다. 이는 테스트와 디버깅을 용이하게 합니다. 고차 함수(Higher-Order Functions): 함수형 프로그래밍에서는 함수를 다른 함..

선언형 프로그래밍
CS/Programing Paradigms 2023. 12. 11. 14:40

선언형 프로그래밍은 프로그래밍의 한 패러다임으로, 프로그램의 구조와 동작을 묘사하는 방식입니다. 이 패러다임은 애플리케이션의 상태 변화를 기술하는 대신, 애플리케이션의 로직을 표현합니다. 즉, '어떻게'가 아닌 '무엇을' 하고 싶은지를 선언하는 방식입니다. 선언형 프로그래밍의 장점 간결성: 선언형 프로그래밍은 애플리케이션의 상태 변화를 기술하는 대신, 애플리케이션의 로직을 표현함으로써 코드의 양을 줄일 수 있습니다. 이로 인해 코드의 가독성이 향상됩니다. 추상화 수준: 선언형 프로그래밍은 프로그래머가 문제를 해결하는 방법에 대해 생각하는 대신, 문제 자체에 집중할 수 있도록 해줍니다. 이는 프로그램의 추상화 수준을 높여, 복잡한 문제를 더 쉽게 풀 수 있게 해줍니다. 재사용성: 선언형 프로그래밍에서는 코..