열심히 살아나갈 사람
명령형 프로그래밍
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

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

article thumbnail
프로그래밍 패러다임
CS/Programing Paradigms 2023. 12. 11. 14:28

프로그래밍 패러다임 개요 프로그래밍 패러다임은 프로그래밍의 방법론적 접근법을 의미합니다. 다양한 패러다임이 있으며, 각 패러다임은 문제 해결 방식에 대한 고유한 관점을 제공합니다. 선언형 프로그래밍 이 패러다임은 '어떻게'가 아닌 '무엇을'하고 싶은지를 표현하는 방식입니다. 프로그래머는 결과를 얻기 위한 과정보다 원하는 결과를 선언하는데 집중합니다. SQL과 HTML이 대표적인 선언형 언어입니다. 함수형 프로그래밍 이 패러다임은 계산을 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 피하는 방식입니다. 함수형 언어는 높은 수준의 추상화를 제공하며, 이는 코드의 간결성과 함께 병렬 컴퓨팅과 같은 복잡한 문제를 쉽게 해결할 수 있도록 합니다. 대표적으로 Haskell, Erlang, Clojure 등이..

OSI 7계층이란?
CS/Network 2023. 12. 10. 04:00

OSI 7계층이란? OSI 7계층 모델은 네트워크 통신에 대한 이해와 설명을 위한 개념적인 프레임워크입니다. 각 계층은 특정한 네트워크 기능을 수행하며, 해당 기능을 처리하는 프로토콜 집합을 정의합니다. 이 모델은 네트워크 통신 문제 해결에 도움을 주며, 각 계층에서 사용하는 주요 네트워크 장비들이 있습니다. 물리 계층(Physical Layer): 물리적 매체를 통해 비트를 전송합니다. 주요 장비로는 허브, 리피터, 케이블, 모뎀이 있습니다. 데이터 링크 계층(Data Link Layer): 에러 검출 및 물리적 주소 결정을 담당합니다. 주요 장비로는 브릿지, 스위치가 있습니다. 네트워크 계층(Network Layer): 데이터 패킷의 전송 경로를 결정합니다. 주요 장비로는 라우터, 레이어 3 스위치가..

article thumbnail
TDD(Test-Driven Development)
CS 2023. 12. 9. 22:31

TDD(Test-Driven Development)는 소프트웨어 개발 방법론 중 하나로, 테스트가 개발을 주도하는 방식을 의미합니다. TDD는 다음과 같은 순서로 진행됩니다: 실패하는 단위 테스트 작성: 먼저, 아직 구현되지 않은 기능에 대한 실패하는 테스트를 작성합니다. 이 테스트는 처음에는 실패하며, 이는 아직 해당 기능이 구현되지 않았기 때문입니다. 테스트를 통과하는 코드 작성: 그 다음, 테스트를 통과할 수 있도록 최소한의 코드를 작성합니다. 이 단계에서는 코드의 품질보다는 테스트를 통과하는 것이 목표입니다. 코드 리팩토링: 마지막으로, 코드의 품질을 향상시키기 위해 리팩토링을 진행합니다. 이 단계에서는 중복을 제거하고, 가독성을 높이며, 코드의 구조를 개선하는 작업을 진행합니다. 이 세 단계를 ..

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.
보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.