분류 전체보기

· cs 공부
**테스트 주도 개발(Test-Driven Development, TDD)**는 소프트웨어를 개발하는 방법 중 하나로, 개발자가 코드를 작성하기 전에 테스트를 먼저 작성하고, 그 후에 해당 테스트를 통과시키는 코드를 작성하는 접근 방식입니다. TDD는 주기적인 테스트 실행을 통해 안정적이고 견고한 소프트웨어를 개발하는 데 도움을 줍니다. TDD 주기는 일반적으로 "Red-Green-Refactor"라고 알려져 있습니다. Red (빨간 단계): 새로운 기능이나 변경사항을 수용하는 테스트를 작성합니다. 이 시점에서 해당 테스트는 실패해야 합니다. 왜냐하면 아직 구현되지 않은 코드이기 때문입니다. Green (초록 단계): 테스트가 실패한 상태에서, 해당 테스트를 통과시키는 최소한의 코드를 작성합니다. 목표는..
· cs 공부
도메인 주도 설계(Domain-Driven Design, DDD)은 소프트웨어 개발에서 비즈니스 도메인을 중심으로 설계하는 개발 방법론입니다. 핵심은 비즈니스 도메인의 복잡성을 이해하고 이를 모델링하여 소프트웨어를 개발하는 것으로, 도메인 모델을 중심으로 개발하고 비즈니스 요구사항을 명확히 이해하며 해결합니다. Q: DDD에서 '도메인 모델'이란 무엇인가요? A: 도메인 모델은 비즈니스 도메인을 표현하고 해석하기 위한 개념적 모델입니다. 업무 규칙, 개체(Entity), 값 객체(Value Object), 서비스(Service) 등을 포함하며, 소프트웨어에서 도메인을 구현하는 핵심입니다. Q: 도메인 주도 설계 원칙 이란? A. DDD의 원칙 유비쿼터스 언어 (Ubiquitous Language): 모든..
· cs 공부
프레임워크는 개발에 필요한 구조와 규칙을 정의해 제어를 역전시켜 개발자는 프레임워크에 따라 동작하는 코드를 작성합니다. 반면, 라이브러리는 개발자가 필요에 따라 호출하여 사용하며, 제어는 개발자에게 남아 있습니다. 1. 프레임워크 (Framework) 프레임워크는 애플리케이션의 구조를 제어하기 위한 미리 정의된 규칙과 구조를 제공하는 도구 모음입니다. 개발자는 프레임워크가 정의한 규칙을 따라 코드를 작성하고, 프레임워크가 제공하는 기능을 활용하여 개발합니다. 일반적으로 프레임워크는 제어 역전(Inversion of Control)이라는 개념을 사용하여 개발자가 아닌 프레임워크가 애플리케이션의 흐름을 제어합니다. 예시) express, nest , spring , Django 등 2. 라이브러리 (Libr..
· cs 공부
동기와 비동기의 주된 차이는 작업의 진행 방식에 있습니다. 동기는 순차적이고 블록킹되는 방식으로 작업을 처리하며, 비동기는 비블록킹되고 병렬적으로 작업을 처리합니다. 동기는 주로 의존성이 높은 상황에서 사용되고, 비동기는 의존성이 낮거나 병렬 처리가 필요한 상황에서 사용됩니다. 1. 동기 (Synchronous): 동기적인 작업은 순차적으로 진행됩니다. 한 작업이 시작되면 해당 작업이 완료될 때까지 다음 작업이 기다립니다. 작업 간에 의존성이 있고, 순서가 중요한 경우 주로 사용 동기 코드는 간단하고 직관적일 수 있지만, 여러 작업이 순차적으로 실행되므로 전체 시스템의 성능이 저하 2. 비동기 (Asynchronous): 비동기적인 작업은 한 작업이 시작되더라도 다음 작업이 기다리지 않고 계속 진행 작업..
· cs 공부
물리 계층 (Physical Layer): 목적: 하드웨어와 전기적인 신호를 다룸. 예시: 케이블, 허브 데이터 링크 계층 (Data Link Layer): 목적: 프레임 단위로 데이터 전송과 오류 검출 및 수정, 주소 지정 및 흐름 제어 수행. 예시: 이더넷 등 네트워크 계층 (Network Layer): 목적: 패킷의 경로 설정, 라우팅 수행. 예시: IP(Internet Protocol) 등 전송 계층 (Transport Layer): 목적: 데이터 전송 관리, 에러 복구 및 흐름 제어 수행. 예시: TCP(Transmission Control Protocol), UDP(User Datagram Protocol) 등 세션 계층 (Session Layer): 목적: 통신 중의 오류 복구, 데이터 표현..
· cs 공부
객체 지향 프로그래밍(OOP) 은 소프트웨어를 객체 단위로 나누고 이 객체들 간의 상호 작용을 통해 프로그램을 설계하는 프로그래밍 패러다임입니다. OOP의 특징 1. 캡슐화(Encapsulation) 데이터와 메서드를 하나의 단위로 묶어 캡슐화함으로써 객체의 내부 구현을 숨깁니다. 객체는 자체적으로 데이터를 관리하고 외부에서는 접근이 제한 2. 상속(Inheritance) 부모 클래스의 특징을 자식 클래스가 물려받아 재사용할 수 있게 해주는 개념입니다. 코드의 재사용성을 높이고 구조를 단순화 3. 다형성(Polymorphism) 동일한 메서드나 인터페이스를 서로 다른 방식으로 구현할 수 있는 능력을 의미합니다. 이는 코드의 유연성을 향상시키고 객체 간의 교환이 용이 객체지향 프로그래밍의 다섯 가지 원칙(..
늘곰's
'분류 전체보기' 카테고리의 글 목록