컴퓨터 용어 정리 76
-
디자인 패턴은 소프트웨어 공학에서 재사용 가능한 문제 해결 방법을 말하는 것으로, 특정한 상황에서 해결이 어려운 문제를 다양한 상황에서 적용할 수 있는 효율적인 해결책을 제공하는 방법이다. 디자인 패턴은 일반적인 문제 해결방법 임으로, 특정한 프로그래밍 언어나 플랫폼에 종속되지 않는다. 디자인 패턴은 크게 생성패턴, 구조패턴, 행동패턴 으로 나눌 수 있다. 각각의 패턴은 특정한 상황에서 효율적인 해결책을 제공한다. 생성패턴 생성 패턴은 객체를 생성하는 방법과 관련된 패턴으로, 객체를 생성하고 조합하는 방법에 대한 문제를 해결하는데 사용된다. 객체 생성과 관련된 문제를 추상화하여, 코드의 재사용성과 유지보수성을 높인다. 구조패턴 구조 패턴은 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴이다. 클래스와 ..
-
객체지향의 설계원칙은 객체지향 프로그래밍에서 가장 중요한 코드의 유연성과 확장성 을 높이기 위해 만들어졌다. 코드의 유연성과 확장성을 높이기 위해 코드의 구조를 명확하게 설계해야 하고, 각 클래스와 모듈 간 관계를 잘 조절해야 하기 떄문에 만들어졌고.. 이를 따르면 코드의 중복을 최소화하고 의존성을 추상화하여 코드의 결합도를 낮출 수 있다. 또한, SOLID 원칙은 객체지향 설계의 기본 원리들을 추상화 하여 코드를 더욱 일관성 있고 예측 가능하게 만들어준다. 즉, SOLID 원칙은 코드의 유지보수성, 확장성, 재사용성, 가독성, 유연성 등을 높여주는 효과가 있다. 그럼으로, SOLID 원칙은 객체지향 개발에서 반드시 따라야할 중요한 가이드라인 이라고 할 수 있다. 이러한 SOLID 원칙은 다음과 같다. ..
-
mutable은 C++에서 클래스멤버 변수 중 상수멤버 함수 내에 값이 변경될 수 있는 변수를 나타내는 키워드 이다. mutable 키워드가 멤버 변수 선언 앞에 붙으면, 이 멤버 변수는 const로 선언되어도, 상수 멤버 함수 내에서 변경될 수 있다. 장점const 함수 내에서 변경되는 변수를 표현할 수 있다.멤버 변수의 값을 상수 멤버 함수에서 변경해야 하는 경우. 매우 쉬운 해결책으로 사용할 수 있다.단점mutable을 남용하면 코드의 가독성을 떨어뜨릴 수 있다. 객체의 상태를 변경하는 변수를 나타냄으로, 과도한 사용은 코드를 난잡하게 만들기 때문.다음은 mutalbe을 사용한 예시이다.다음과 같이 선언된것의 , private으로 선언된 부분인 mutable int mutable_variable은..
-
Inline 은 C++에서 선언된 함수가 인라인 함수 임을 컴파일러에 알리는 역할을 한다. inline 키워드가 함수 선언 앞에 붙으면, 컴파일러는 그 함수를 인라인 함수로 취급한다. 컴파일러가 해당 함수를 호출하는 코드를( 일반적으로 함수를 호출할 때 에는 오버헤드가 발생하여 메모리를 끌어다 쓴다 ) 그 함수의 코드 본문으로 대체하도록 한다. 즉, 함수를 호출하는것 이 아니라 애초에 그 함수의 원문이 같이 코드에 삽입되서 돌아가도록 만들어버린다. 장점 함수 호출의 오버헤드가 사라져서 빠른 실행이 가능하다. 함수 호출 대신 코드의 복사가 일어남으로 함수호출로 인한 스택 메모리 사용량도 줄어든다. 일반 함수보다 약간 더 빠른 속도를 보장한다. 단점 코드의 크기가 커지는 단점이 있다 함수를 인라인으로 전환하..
-
생성자는 객체가 생성될 때 호출되는 함수이다. 생성자 함수는 클래스의 맴버 변수를 초기화하거나 객체가 생서오디 ㄹ떄 수행되어야 하는 기타 작업을 수행한다. 생성자 함수의 이름은 클래스의 이름과 동일하며, 반환형식은 존재하지 않는다 생성자는 클래스의 모든 객체에 대해 한 번만 호출된다. 장점 생성자의 가장 큰 장점은 클래스의 멤버 변수를 초기화 할수 있다는 것 이다. 생성자를 사용하면 프로그래머는 변수를 초기화하기 위해 별도의 초기화 함수를 호출할 필요가 없어진다. 생성자는 객체가 생성될 때 자동으로 호출됨으로 객체가 항상 초기화된 상태로 시작된다. 단점 클래스의 구현을 복잡하게 만들 수 있다. 객체가 생성될 떄 항상 호출됨으로 객체 생성시간이 느려질 수 있다. 생성자에서 수행되는 작업이 많아질수록 객체 ..
-
Class는 객체지향 프로그래밍(OOP)에서 사용되는 구조체의 한 종류로 Clas는 데이터와 함수를 함꼐 묶어서 사용할 수 있도록 해주며, 객체를 생성하여 사용할 수 있다. Class의 장점 캡슐화(Encapsulation) 데이터와 관련된 함수를 하나로 묶어서 외부에서 함부로 접근하지 못하게 해 데이터의 손상을 방지하고 코드의 동작성을 보장한다. 상속성(Inheritance) 다른 클래스로부터 기존 함수와 데이터를 물려받아 사용할 수 있으며, 코드의 재사용성을 높인다. 다형성(Polymorphism) 같은 이름의 함수를 다양한 방법으로 사용할 수 있다. 유지보수성(Maintainability) Class는 코드의 재사용성과 가독성을 높여 유지보수가 용이하다. Class의 단점 구현의 복잡성 (Imple..