본문 바로가기

[IT] 프로그래밍 개발론 간략 정리 소개

이미지 출저 : https://www.tcpschool.com

 

1. 소프트웨어 개발 모델 3가지

 

폭포수 모델(Waterfall Model): 개발 단계를 선형으로 진행하는 전통적인 방식. 각 단계는 이전 단계의 결과물을 기반으로 진행됨.


반복 및 증분 모델(Iterative and Incremental Model): 개발을 단계적으로 나누고, 각 단계를 반복하거나 증분적으로 개선해가는 방식.


스파이럴 모델(Spiral Model): 위험을 관리하면서 점진적으로 개발하는 방식. 반복과 평가를 반복적으로 수행함.

 

2. 애자일 개발 방식

 

스크럼(Scrum): 작은 팀이 짧은 주기로 작업하며, 주기마다 제품의 작은 부분을 개발하는 방식. Daily Standup Meetings, Sprint, Backlog 등이 중요.


익스트림 프로그래밍(XP): 작은 팀이 빠르게 개발하면서도 품질을 유지하는 방식. 테스트 주도 개발(TDD), 짝 프로그래밍 등이 특징.

 

3. 소프트웨어 개발 원칙

 

DRY (Don't Repeat Yourself): 중복을 최소화하고 코드 재사용을 권장하는 원칙.
KISS (Keep It Simple, Stupid): 간단한 설계가 복잡성을 줄이고 유지보수를 용이하게 함.
YAGNI (You Ain't Gonna Need It): 현재 시점에서 필요하지 않은 기능을 구현하지 말고 필요할 때 추가하도록 하는 원칙.

 

4. 테스트 주도 개발(TDD)

 

코드를 작성하기 전에 테스트 케이스를 먼저 작성하고, 이를 통과시키는 방식. 코드 품질을 향상시키고 버그를 줄이는 데 기여.

 

5. 지속적 통합 및 지속적 배포(CI/CD)

 

지속적 통합(CI): 코드 변경 사항이 자동으로 빌드 및 테스트되어 공유 레포지토리에 통합되는 것.
지속적 배포(CD): 지속적 통합을 기반으로 코드가 자동으로 배포되어 프로덕션 환경에 적용되는 것.

※ GIT RUNNER, BAMBOO, 젠킨스 등 참고

 

6. 디자인 패턴

 

싱글톤(Singleton): 특정 클래스의 인스턴스가 하나만 생성되도록 하는 패턴.
팩토리 메서드(Factory Method): 객체 생성을 하위 클래스로 미루는 패턴.
추상 팩토리(Abstract Factory): 여러 관련 객체의 생성을 담당하는 팩토리를 제공하는 패턴.
빌더(Builder): 복잡한 객체의 생성 과정을 단순화하는 패턴.
프로토타입(Prototype): 객체의 복사를 통해 새로운 객체를 생성하는 패턴.

 

어댑터(Adapter): 서로 인터페이스가 다른 클래스들을 함께 동작할 수 있도록 변환해주는 패턴.
데커레이터(Decorator): 객체에 동적으로 기능을 추가할 수 있도록 하는 패턴.
퍼사드(Facade): 복잡한 서브시스템에 대한 통합된 인터페이스를 제공하는 패턴.
컴포지트(Composite): 객체들을 트리 구조로 구성하여 개별 객체와 복합 객체를 동일하게 다룰 수 있도록 하는 패턴.
프록시(Proxy): 다른 객체에 대한 접근을 제어하거나 추가적인 동작을 제공하는 객체를 제공하는 패턴.

 

옵저버(Observer): 객체 간에 일대다 의존 관계를 정의하여 한 객체의 상태가 변경될 때 그 객체에 종속된 모든 객체에게 알림을 보내는 패턴.
스트래티지(Strategy): 알고리즘군을 정의하고 각각을 캡슐화하여 교체 가능하도록 만드는 패턴.
커맨드(Command): 요청을 객체의 형태로 캡슐화하여 매개변수화된 것, 큐, 로그로 저장하거나 연산을 지원하는 패턴.
스테이트(State): 객체의 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀 수 있게 만드는 패턴.
체인 오브 리스폰시빌리티(Chain of Responsibility): 요청을 처리할 수 있는 객체를 연쇄적으로 연결하고, 각 객체가 요청을 처리하거나 다음 객체로 전달하도록 하는 패턴.

 

MVC(Model-View-Controller): 사용자 인터페이스와 비즈니스 로직을 분리하여 유지보수성과 확장성을 높이는 패턴.
DAO(Data Access Object): 데이터베이스 액세스를 위한 객체를 추상화하여 제공하는 패턴.
DTO(Data Transfer Object): 여러 레이어 간에 데이터 전달을 단순화하기 위한 패턴.

 

7. 버전 관리 시스템

 

Git: 분산형 버전 관리 시스템으로, 협업 및 소스 코드의 변경 이력을 관리하는 데 사용.

※ 한때 SVN도 많이 사용하였음.

 

 

반응형
그리드형