본문 바로가기

OOP3

[SW 설계 원칙] SOLID 원칙과 그 진정한 의미 ㅁSOLID 원칙: 객체지향 설계의 핵심 원칙 소프트웨어 개발에서 유지보수성과 확장성을 높이기 위해서는 올바른 설계 원칙을 따르는 것이 중요하다. SOLID 원칙은 이러한 객체지향 설계를 효과적으로 수행할 수 있도록 돕는 다섯 가지 핵심 원칙을 의미한다. 이 원칙들은 로버트 C. 마틴(Robert C. Martin)에 의해 정립되었으며, 특히 객체지향 프로그래밍(OOP)에서 널리 사용된다. 1. SRP(Single Responsibility Principle, 단일 책임 원칙)"클래스는 단 하나의 책임만 가져야 한다."단일 책임 원칙은 하나의 클래스가 하나의 역할만 수행하도록 설계해야 한다는 원칙이다. 즉, 하나의 클래스는 변경이 필요한 이유가 단 하나뿐이어야 한다. 이를 통해 코드의 응집도를 높이고, .. 2025. 3. 17.
[OOP] 리플렉션(reflection) ㅇ리플렉션(reflection): OOP에서 런타임에 프로그램의 구조를 검사하고 조작할 수 있는 메커니즘프로그램이 실행 중에 자신에 대한 정보를 탐색하거나, 구조를 동적으로 변경할 수 있다. 예를 들어, 클래스의 메타 정보를 기반으로 클래스에 정의된 메서드, 필드, 생성자 등을 조회하고, 이들을 통해 객체 인스턴스를 생성하거나 메서드를 호출하는 작업을 할 수 있다. 이런 작업을 리플렉션이라 한다. 또 추가로 애노테이션 정보를 읽어서 특별한 기능을 수행할 수도 있다. 최신 프레임워크들은 이런 기능을 적극 활용한다. ※ reflection은 자아성찰이라는 뜻을 갖고 있다 리플렉션의 기본 개념메타데이터 접근: 리플렉션을 사용하면 클래스, 인터페이스, 메서드, 필드 등의 메타데이터(데이터에 대한 데이터)에 접근.. 2024. 8. 23.
[OOP] 객체 vs 인스턴스 객체는 인스턴트스를 포함하는 개념이다 ㅇ객체(object)객체는 클래스에서 정의한 속성과 기능을 가진 실체이다. 객체는 서로 독립적인 상태를 가진다.예를 들어 위 코드에서 student1은 학생 1의 속성을 가지는 객체이고, student2는 학생 2의 속성을 가지는 객체이다. student1과 student2는 같은 클래스에서 만들어졌지만, 서로 다른 객체이다.   ㅇ인스턴스(instance)인스턴스는 특정 클래스로부터 생성된 객체를 의미한다. 그래서 객체와 인스턴스라는 용어는 자주 혼용된다. 인스턴스는 주로 객체가 어떤 클래스에 속해 있는지 강조할 때 사용한다. 예를 들어서 "student1 객체는 Student 클래스의 인스턴스다"라고  표현한다.  [객체 vs 인스턴스]둘 다 클래스에서 나온 실체.. 2024. 8. 5.