Software Development 5

[OOP] SOLID 원칙

SOLID란 클린코드의 저자 로버트 C.마틴이 2000년대 초, 객체지향 프로그래밍 및 설계의 다섯가지 원칙을 정의하였다. 이를 동료 개발자인 마이클 페더스가 앞글자를 따와서 정리한 것이 SOLID 이다. 응집도를 높이고, 결합도는 낮추는 원칙을 OOP 즉, 객체지향의 관점에서 재정립한 설계 원칙이다. 다음과 같은 다섯가지가 있다. 1. SRP (Single Responsibility Principle) : 단일 책임 원칙 2. OCP (Open Closed Principle) : 개방 폐쇄 원칙 3. LSP (Liskov Substitution Principle) : 리스코프 치환 원칙 4. ISP (Interface Segregation Principle) : 인터페이스 분리 원칙 5. DIP (De..

[Design Pattern] 여러가지 디자인 패턴과 간단한 예제

어댑터 패턴(Adapter Pattern) 호출당하는 쪽의 메소드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴 DB관련 프로그램을 작성해보면 다양한 DB시스템을 공통의 인터페이스인 JDBC를 이용해 조작한다. 이러한 JDBC는 어댑터 패턴을 이용해 다양한 DB 시스템을 단일한 인터페이스로 조작할 수 있게 해 준다. 자바의 JRE 또한 어댑터 패턴의 일종이다. JDBC와 JRE는 개방 폐쇄 원칙(OCP)의 예이기도 하다. 결국 어댑터 패턴은 개방 폐쇄 원칙을 활용한 설계 패턴이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 //어댑터 패턴 미적용 class ServiceA { vo..

[CI/CD] Jenkins란

[CI/CD] CI/CD란 [CI/CD] CI/CD란 CI/CD란? CI/CD란 지속적인 통합(Continuos Integration), 지속적인 서비스 제공(Continous Delivery), 지속적인 배포(Continous Deployment)의 약자이다. CI/CD는 새로운 코드 통합 문제를 해결하기 위한 솔루션.. minkwon4.tistory.com Jenkins란? Jenkins는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 CI/CD 툴이다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 git등의 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 도와준다. Jenkins의 장점 Build 자동화의 확립 : Ja..

[CI/CD] CI/CD란

CI/CD란? CI/CD란 지속적인 통합(Continuos Integration), 지속적인 서비스 제공(Continous Delivery), 지속적인 배포(Continous Deployment)의 약자이다. CI/CD는 새로운 코드 통합 문제를 해결하기 위한 솔루션으로써, 애플리케이션의 개발 단계를 자동화하여 애필리케이션을 보다 짧은 주기로 고객에게 제공하는 방법이다. 즉, 다시 말해 짧은 주기로 개발중인 애플리케이션을 배포하고 그 과정을 자동화 하는 것이다. CI/CD의 가장 큰 특징은 애플리케이션의 통합 및 테스트 단계에서부터 애플리케이션의 제공 및 배포까지 전체에 걸친 지속적인 자동화와 지속적인 모니터링이다. 대표적인 CI/CD tool로는 Jenkins, Travis CI, Bamboo 등이 있..

[Test] 테스트 케이스(Test Case)란

테스트 케이스란? 테스트 케이스(Test Case)란 명세 기반 테스트의 설계 산출물로 설계된 입력값, 실행조건, 기대 결과로 구성되어 있는 테스트 항목의 명세서를 의미한다. 보통 테스트 케이스를 활용하는 이유는 크게 두가지이다. 테스트 누락 방지와 테스트 투명화이다. 테스트 케이스 종류 기능 테스트 요구하는 목적을 만족하는지를 검증하는 테스트 도메인 테스트 경계값 분석 등 관계성을 지닌 복수의 변수를 동시에 검증하는 테스트 사양기반 테스트 설계서 및 메뉴얼과 같은 문서 상에 기술된 내용과 소프트웨어가 똑같은 지능을 가진지 검증하는 테스트 부하 테스트 최대 설계 부하와 그 이상의 부하를 검증하는 테스트 회귀 테스트 프로그램이 변경 되었을 때의 이상을 검증하는 테스트 사용자 테스트 사용자에게 실제로 사용하..