소프트웨어 설계(응집도, 결합도)
·
IT Dictionary/Software
1. 개요훌륭한 설계는 대개 높은 응집도(High Cohesion)와 낮은 결합도(Low Coupling)를 지향 2. 응집도 (Cohesion)응집도는 하나의 모듈(클래스, 함수 등) 내부의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타냄높은 응집도 (Good): 모듈 하나가 단 하나의 기능(단일 책임)에만 집중합니다. 코드를 이해하기 쉽고, 수정이 필요할 때 해당 모듈만 고치면 됨낮은 응집도 (Bad): 서로 관련 없는 기능들이 하나의 모듈에 섞여 있습니다. 코드가 복잡해지고 재사용하기 어려움응집도의 단계 (높을수록 좋음)기능적(Functional): 모든 요소가 하나의 기능을 수행함. (최상)순차적(Sequential): 한 요소의 출력이 다음 요소의 입력으로 사용됨.교환적(Communicatio..
객체지향 언어의 핵심 특징
·
IT Dictionary/Software
1. 캡슐화 (Encapsulation)데이터(변수)와 그 데이터를 처리하는 기능(메서드)을 하나의 단위로 묶는 것을 의미정보 은닉: private 같은 접근 제어자를 사용해 내부 구현을 감추고 필요한 부분만 외부에 노출장점: 외부의 잘못된 조작으로부터 데이터를 보호하고, 내부 코드가 바뀌어도 외부 코드에 영향을 주지 않아 유지보수가 용이 2. 상속 (Inheritance)기존 클래스(부모 클래스)의 특성과 기능을 그대로 물려받아 새로운 클래스(자식 클래스)를 만드는 것재사용성: 공통된 기능을 부모 클래스에 한 번만 정의해두면 자식 클래스에서 다시 만들 필요가 없음확장성: 부모의 기능을 그대로 쓰면서 자식 클래스만의 새로운 기능을 추가하기 용이 3. 다형성 (Polymorphism)하나의 객체나 메서드가..
오버로딩(Overloading), 오버라이딩(Overriding) 차이
·
IT Dictionary/Software
1. 오버로딩 (Overloading)한 클래스 내에서 이름은 같지만 매개변수의 타입이나 개수가 다른 메서드를 여러 개 만드는 것성립 조건:메서드 이름이 같아야 함.매개변수의 개수 또는 타입이 달라야 함.(주의: 리턴 타입만 다른 것은 오버로딩으로 인정되지 않음)목적: 같은 기능을 수행하지만 다양한 형태의 입력을 처리해야 할 때 사용예시: System.out.println()은 정수, 실수, 문자열 등 어떤 값을 넣어도 출력되는데, 이것이 대표적인 오버로딩의 결과 2. 오버라이딩 (Overriding)부모 클래스로부터 상속받은 메서드를 자식 클래스에서 자신에 맞게 내용을 변경하는 것성립 조건:부모 클래스의 메서드와 이름, 매개변수, 리턴 타입이 모두 같아야 함.접근 제어자는 부모 클래스보다 좁은 범위로 ..
자바 연산자 종류와 접근 제어자
·
IT Dictionary/Software
1. 자바 연산자 종류 및 우선 순위산술 > 비교 > 논리 > 대입 순서로 우선순위가 결정순위연산자 종류주요 연산자1최우선 연산자., [], ()2단항 연산자++, --, !, ~, (type)3산술 연산자 (곱셈류)*, /, %4산술 연산자 (덧셈류)+, -5쉬프트 연산자>, >>>6비교 연산자 (크기), =, instanceof7비교 연산자 (동등)==, !=8비트 연산자&, ^, |9논리 연산자&&, ||10삼항 연산자?:11대입 연산자=, +=, -=, *=, /= 등 2. 접근 제어자(Access Modifier)제어자같은 클래스같은 패키지자식 클래스이지만 다른 패키지인 클래스전체 (모두)privateOXXXdefaultOOXXprotectedOOOXpublicOOOO
애플리케이션 테스트 종류(화이트박스 테스트, 블랙박스 테스트, 알파 테스트, 베타 테스트)
·
IT Dictionary/Software
1. 애플리케이션 테스트 기본 원리완벽한 테스트는 불가능하며, 결함을 줄일 수는 있지만 완전히 제거는 불가능파레토 법칙 : 결함이 특정 모듈(20%)에 집중되는 경향살충제 패러독스 : 동일 테스트 케이스 반복 시 새로운 결함 발견이 어려움테스트는 소프트웨어 특성, 환경 등 상황에 따라 다르게 수행해야 함 2. 화이트박스 테스트 (White-Box Test)개발자가 코드의 내부 구조와 논리 흐름을 직접 보면서 수행하는 테스트즉, 개발자 관점특징: 모든 실행 경로를 확인하며, 코드의 복잡성을 점검방법: 제어 흐름 테스트, 데이터 흐름 테스트, 기초 경로 검사 등. 3. 블랙박스 테스트 (Black-Box Test)코드 내부 구조는 모른 채, 입력에 따른 출력 결과가 명세서와 일치하는지 확인하는 테스트즉, 사..
UML(Unified Modeling Language) 다이어그램
·
IT Dictionary/Software
1. 개요소프트웨어 공학에서 시스템의 구조와 동작을 시각적으로 표현하기 위해 사용하는 표준화된 모델링 언어 2. UML의 주요 목적시각화: 시스템의 설계와 논리적 흐름을 그림으로 명확히 표현명세화: 시스템의 구성 요소가 가져야 할 특징과 기능을 규정문서화: 프로젝트 아카이브를 위해 시스템의 결정 사항과 세부 내용을 기록의사소통: 팀원 간의 언어 장벽(개발 언어 차이 등)을 넘어 공통된 이해를 도움 3. UML 다이어그램의 분류구조적(정적) 다이어그램 (Structural Diagram)시스템의 정적인 물리적 구조를 표현. 즉, "무엇이 있는가"에 집중클래스 다이어그램 (Class Diagram): 시스템 내 클래스들의 속성, 메서드 및 클래스 간의 관계를 표현함. 가장 많이 사용되는 핵심 다이어그램객체 ..