728x90
반응형

전체 글 168

TDD(Test Driven Development)

테스트 주도 개발(Test-driven development, TDD)은 테스트 우선 개발 방법론을 사용하는 소프트웨어 개발 방식입니다. 이 방식에서는 소프트웨어를 개발하기 전에 소프트웨어 요구 사항을 유닛 테스트 케이스(특정 기능 또는 기능을 검증하는 일련의 동작)로 변환합니다. TDD는 개발이 시작되기 전에 테스트 케이스를 미리 정의하기 때문에 종종 테스트 주도 설계(Test-driven design)라고도합니다. TDD의 원칙 1. 제품 코드를 작성하기 전에 실패하는 테스트를 작성해야 합니다. 2. 실패하거나 컴파일되지 않을 만큼 충분하지 않은 테스트를 작성해서는 안 됩니다. 3. 현재 실패하는 테스트를 통과하기에 충분한 만큼만 제품 코드를 작성해야 합니다. TDD 개발 방법이 어떻게 동작하는지 더..

CS 2023.04.07

함수형 프로그래밍(Functional Programming)

함수형 프로그래밍(Functional Programming)은 프로그래밍 패러다임 중 하나로, 수학적인 함수 개념을 기반으로 하는 프로그래밍 방법입니다. 함수형 프로그래밍에서는 변수의 값을 변경시키지 않고, 함수의 조합으로 문제를 해결합니다. 이를 통해 복잡한 문제를 간단하게 표현할 수 있고, 코드의 가독성과 재사용성이 높아집니다. 함수형 프로그래밍의 마크(?) 함수와 값의 관계를 표현하는 수학적 기호입니다. 수학에서는 함수를 표현할 때 f(x)와 같이 표기합니다. 이 때, f는 함수의 이름이며, x는 함수에 인자로 전달되는 값입니다. 이와 비슷하게 함수형 프로그래밍에서는 보통 λ(lambda) 기호를 사용하여 함수를 표현합니다. 이를 람다식(lambda expression)이라고 부릅니다. 람다식은 익..

CS 2023.04.07

객체 지향 프로그래밍(Object-Oriented Programming, OOP)

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍 패러다임 중 하나로, 현실 세계의 객체들을 모델링하여 프로그래밍하는 방법입니다. 객체지향 프로그래밍의 주요 특징 1. 캡슐화: 데이터와 그 데이터를 다루는 코드를 함께 묶어서 외부의 접근을 제한하는 것을 의미합니다. public class Car { private String model; private int price; // getter, setter public String getModel() { return model; } public void setModel(String model) { this.model = model; } public int getPrice() { return price; } p..

CS 2023.04.07

클린코드 & 리팩토링 & 시큐어코딩

클린코드 클린코드는 의도를 명확하게 드러내며, 가독성이 뛰어나며, 유지보수하기 쉬우며, 재사용성이 높은 코드를 작성하는 것을 지향하는 개발 방법론입니다. 클린코드의 가장 중요한 요소 중 하나는 가독성이라고 볼 수 있습니다. 즉, 모든 팀원이 이해(understandability)하기 쉽도록 작성된 코드입니다. 만약 클린 코드를 실천하지 않고 복사&붙여넣기와 같은 방법을 택한다면 Technical dept가 생길것입니다. 현 시점에서 더 나은 접근방식보다 더 쉬운 솔루션을 채택함으로써 발생되는 추가적인 재작업의 비용입니다. ⭐ Technical dept이란 기술 부채를 의미합니다. 🌈 클린 코드의 주요원칙 1️⃣ Follow Standard Conventions 코딩 표준, 아키텍쳐 표준 및 설계 가이드를..

CS 2023.04.07

시스템 콜(System Call)

시스템 콜이란? 시스템 콜(System Call)은 운영체제 커널의 서비스를 사용하기 위한 인터페이스로, 응용 프로그램이 하드웨어나 운영체제 자원에 접근하기 위해 사용됩니다. fork( ), exec( ), wait( )와 같은 것들은 Process 생성과 제어를 위한 System Call fork, exec는 새로운 Process 생성과 관련이 되어 있다. wait는 Process (Parent)가 만든 다른 Process(child) 가 끝날 때까지 기다리는 명령어. 시스템 콜의 목적 추상화된 하드웨어 인터페이스를 유저 프로세스에게 제공한다. 시스템의 보안과 안정성을 보장한다. 가상화된 유저 프로세스와 시스템이 소통할 수 있는 유일하고 공통적인 소통수단 시스템 콜의 이해 예를 들어 printf 함수를..

CS 2023.04.06

인터럽트(Interrupt)

인터럽트(Interrupt)란? CPU가 프로그램을 실행하는 도중에 입출력(I/O) 요청, 예외상황, 하드웨어 인터럽트 등의 이벤트가 발생하면 해당 이벤트에 대한 처리를 위해 CPU의 실행 흐름을 중단하고, 우선순위가 높은 이벤트에 대한 처리를 수행하는 메커니즘입니다. 인터럽트의 구분 하드웨어 인터럽트 : 하드웨어 디바이스가 CPU에게 신호를 보내는 것 소프트웨어 인터럽트 : 프로그램에서 명령어를 실행하는 도중에 소프트웨어적으로 인터럽트를 발생시키는 것 인터럽트 동작 순서 1. 인터럽트 요청 2. 프로그램 실행 중단: 현재 실행중이던 Micro operation 까지 수행한다. 3. 현재의 프로그램 상태 보존: PCB(Process Control Block), PC(Program Counter) 등 4...

CS 2023.04.06
728x90
반응형