[카테고리:] 소프트웨어공학

객체지향 모델의 상속 (Inheritance)

1. 코드 재사용성 구현, 객체지향 모델의 상속의 개념 및 목적 (1) 상속 (Inheritance)의 개념 개념도 개념 부모 클래스의 특성을 물려받아 코드 재사용성을 높이고, 기능을 확장하여 다형성을 구현하는 객체지향 모델의 특성 (2) 상속의 특징 코드 재사용성 (Code Reusability) – 기존 속성과 메서드를 하위 클래스에서 그대로 물려받아 사용 – 동일한 코드를 중복해서 작성할 필요가 없어 효율적 개발/유지보수

객체지향 모델의 다형성 (Polymorphism)

1. 코드 유연성 극대화, 객체지향 모델의 다형성의 개념/특징 (1) 다형성 (Polymorphism)의 개념 개념도 개념 같은 메시지(메서드 호출)에 대해 객체의 타입에 따라 다른 동작을 수행하는 객체지향 모델의 특성 (2) 다형성의 특징 동적바인딩 – 프로그램이 실행되는 시점에 호출할 번지나 함수 연결 확장성 지원 – 수평적 확장성인 Overloading과 수직적 확장성인 Overriding 지원 재사용성 지원 – 기존에 구현된 부분은

객체지향 모델의 추상화 (Abstraction)

1. 핵심 개념 모델링, 객체지향 모델의 추상화의 개념 및 목적 (1) 추상화 (Abstraction)의 개념 개념도 개념 복잡한 시스템의 핵심 기능을 모델링하고, 불필요 세부 사항은 감추어 단순화하는 객체지향 모델의 특성 (2) 추상화의 목적 핵심에 집중 – 복잡한 구현 세부 사항을 숨기고, 중요한 인터페이스만을 노출하여 사용자가 쉽게 이해 유연한 설계 – 내부 구현이 변경되더라도 외부 인터페이스는 그대로

객체지향 모델의 캡슐화 (Encapsulation)

1. 객체 정보 은닉, 객체지향 모델의 캡슐화의 개념 및 목적 (1) 캡슐화 (Encapsulation)의 개념 개념도 개념 관련 있는 데이터(속성)와 기능(메서드)을 하나의 클래스로 묶고, 구현 내용을 외부에 숨겨 외부의 직접적인 접근을 제한하는 객체지향 모델의 특성 (2) 캡슐화의 목적 내부 데이터 보호 – 외부에서 클래스 내부의 데이터/기능에 직접 접근 및 조작 차단 모듈 독립성 향상 – 객체의 

CI (Continuous Integration), CD (Continuous Delivery)

1. 기존 개발 환경의 문제점과 CI/CD 도입 필요성 전통적인 개발 환경의 코드 통합과 배포 문제들을 해결하기 위해 작게, 자주, 자동화 적용하는 개발/배포 철학인 CI (Continuous Integration)와 CD (Continuous Delivery or Continuous Deployment)가 등장   2. CI (Continuous Integration)의 개념 및 단계 별 활동 (1) CI의 개념 및 주요 단계 개념 소프트웨어 품질 확보를 위해 코드

소프트웨어 무중단 배포 전략

1. 소프트웨어 무중단 배포의 개념 및 필요성 Software Zero Downtime Deployment Strategies 개념 실행 중인 소프트웨어의 변경 사항 적용을 위해 서비스 중단 없이 시스템에 새로운 버전을 배포하는 방식 필요성 사용자 경험 향상 중단 없는 서비스 사용을 통한 사용자 경험/만족도 향상 비즈니스 연속성 보장 중단 없이 배포 가능하므로 서비스 운영 영향 최소화 빠른 피드백 제공 신규

소프트웨어 기술 부채 (Technical Debt)

1. 소프트웨어 기술 부채 (Technical Debt)의 개요 (1) 기술 부채의 개념 및 특징 개념 특징 현 시점에서 장기적으로 더 나은 접근 방식 대신 쉽고 제한된 솔루션을 채택함으로써 발생되는 추가적인 재작업의 비용을 반영하는 소프트웨어 개발 관점 – 단기적 이익, 장기적 불이익 – 부채 측정이 어려움 – 부채 채무자 ≠ 상환자 – 누적 시 품질 비용 급상승

바이브 코딩 (Vibe Coding)

1. 바이브 코딩의 개요 (1) 바이브 코딩이 소프트웨어 개발에 미치는 영향 (2) 바이브 코딩의 개념 원하는 기능을 자연어로 입력하여 생성형 AI를 통해 코드를 자동으로 생성, 개선 및 디버깅하는 인공지능 기반 소프트웨어 개발 방식 (3) 바이브 코딩의 특징 SW 개발 접근성 향상 – 로우 코딩, 노 코딩과 유사하게 소프트웨어 개발의 진입 장벽을 낮추고 비개발자의 소프트웨어 개발

플랫폼 엔지니어링 (Platform Engineering)

1. 플랫폼 엔지니어링 (Platform Engineering)의 개요 개념 기업 문화와 생산성 및 수익성 개선 위해 내부 플랫폼(IDP, Internal Developer Platform)의 워크플로우 및 도구를 설계, 구축, 유지관리하는 활동 목적 – IDE, CI/CD 등 도구를 활용하여 개발자 경험 최적화 – 기능 및 프로세스 제공하여 최종 사용자 생산성 향상 데브옵스에서 얻은 경험적 지식을 더 구체적이고 재현 가능한 형식으로 적용하는

카오스 테스트 (Chaos Test)

1. 카오스 테스트 (Chaos Test) 시스템 신뢰성 확인을 위해 운영 시스템에 각종 장애를 주입하여 문제 발생 여부를 테스트하는 기법   2. 카오스 테스트 단계 별 수행 절차 및 세부 절차 설명 (1) 단계 별 수행 절차 (2) 단계 별 세부 절차 설명 단계 세부 절차 사례 정상 상태 – 시스템의 측정 가능한 값을 이용하여 정상