본문 바로가기

컴퓨터/소프트웨어 공학6

[OOP] 올바른 DTO 객체를 만들어 보자/+github DTO Data Transfer Objects는 소프트웨어 개발에서 흔한 디자인 패턴이다. dto는 레이어 사이, 혹은 시스템 사이 데어터를 전달할 때 사용된다. 이를테면 Spring의 경우 컨트롤러에서 서비스 레이어로 값을 전달할 때 dto를 사용할 수 있다. 스프링의 레이어 프레젠테이션 계층 클라이언트의 요청 및 응답을 처리한다 @Controller 어노테이션이 사용된 클래스는 스프링 MVC에서 웹 요청을 처리하는 역할을 하게 된다. 비즈니스 계층 어플리케이션의 핵심 비즈니스가 위치하는 곳이다. 트랜잭션, 보안, 데이터 처리 등 주요 비즈니스 로직이 포함된다. 데이터 액세스 계층 데이터베이스와의 상호작용을 담당한다. JDBC나 ORM 기술을 사용하여 DB와 통신한다. DTO DTO를 사용하는 이유? .. 2023. 11. 24.
[OOP] 객체 지향 설계를 잘하는 방법 객체 지향 설계 객체 지향 설계란? 객체 지향 설계(Object-Oriented Design, OOD)는 소프트웨어를 개발할 때 객체 지향 프로그래밍 (OOP) 원칙을 기반으로 하는 설계 접근 방식이다. 이러한 설계는 소프트웨어 시스템을 여러 객체로 나누고, 각 객체가 협력하여 기능을 수행하도록 하는 것을 중요시한다. 이를 위해서는 객체를 큰 관계 속에서 파악하는 것이 필요하다. 객체 지향의 목적은 유지 보수가 가능한 좋은 코드를 작성하는 데에 있다. 객체란? 객체는 현실 세계의 객체의 은유이다. 즉 현실 속 객체처럼 말하고 달리고 밥을 먹는다. 현실의 객체와의 차이점은 객체 지향 세계의 객체들은 모두 능동적이라는 것이다. 현실에서는 펀치를 치면 사람에 의해 샌드백이 터진다. 그러나 객체 지향 세계의 샌.. 2023. 11. 22.
[소프트웨어공학] Error와 Defect와 Failure의 차이점/소프트웨어 품질 보증 소프트웨어 품질 보증 목차 소프트웨어 품질 비용 오류, 결함, 장애 정적/동적 테스팅 소프트웨어 품질 보증이란 고객의 요구사항(requirement)와 개발된 산출물이 일치하는지 확인하기 위한 체계이다. 이는 개발단계 전체에 걸쳐 진행된다. 소프트웨어의 품질 수준을 높이려면 적잖은 비용이 들어간다. 이 비용을 나누자면 아래와 같다. 소프트웨어 품질 비용 예방 비용 - 오류를 방지하기 위한 비용 - 프로젝트 관리, 교육, 품질 보증, 형상관리, 기술 지원 등이 포함 - 제품이 실제로 만들어지기 이전에 모두 소요되는 비용 평가 비용 - 요구사항을 모두 포함하는가를 검토하기 위한 비용 - 검토, 테스트, 감사 등이 포함 - 평가 비용은 제품이 완성 된 후, 사용자에게 배포되기 이전에 소요되는 비용 내부 실패 .. 2022. 12. 19.
[소프트웨어공학] OOD와 SOLID/객체지향프로그래밍(OOP)의 5대 원리 OOD와 SOLID 목차 단일책임 원칙 개방-폐쇄 원칙 리스코프치환 원칙 인터페이스 분리 원칙 의존관계 역전 원칙 일반적으로 소프트웨어 개발에서, 개발 비용보다 유지 보수 비용이 2배가 넘어간다.소프트웨어 개발의 최종 목적은 개발 그 자체가 아닌, 지속적인 운영이기 때문이다. 만약 개발 완료가 다 되어갈 무렵 새로운 버튼 하나를 추가하라는 명령을 들으면 어떨까? 만일 모든 클래스, 객체가 심하게 연동되어있으며 다양한 기능이 단 하나의 함수에 들어가 있다면 변경 작업 중 문제가 생길 확률이 크다. 이러한 것들을 해결하기 위한(유지 보수와 확장을 쉽게 하기 위한) OOD(객체 지향 디자인)의 원칙이 바로 SOLID이다. 이 SOLID를 이용하여 소스코드를 고쳐나가면 코드에서 smell을 제거할 수 있다. 또.. 2022. 12. 17.