들어가며이번 포스트에서는 SOLID 에 대하여 정리합니다.SOLID?SOLID는 객체 지향 설계에서 중요한 5가지 원칙을 의미합니다각 글자는 이름의 첫글자를 따와서 지은 이름입니다.이것을 잘 지키면 결합도는 낮추고 응집도는 올릴 수 있습니다.결국 모듈, 클래스간의 상호 의존성은 낮춰 재사용성 , 수정 , 유지보수의 용의해집니다.또한, 구성요소들의 기능적 관련성이 높아짐으로 책임이 집중되고 , 독립성이 높아져재사용성 , 수정 , 유지보수가 용의해집니다.SRP - Single Responsibility Principle - 단일 책임 원칙클래스는 하나의 변경 이유만 가져야 합니다.클래스는 단일 기능에 집중해야 하며 여러 가지 책임을 갖지 않도록 해야 합니다.다양한 경우가 있지만사람과 주식을 예로 들어보겠습..
들어가며이번 포스트에서는 어노테이션에 대해서 이야기 합니다.Spring 프레임워크를 쓰다보면 정말 많이 어노테이션을 쓰게 되는데요이때 어노테이션이 무엇인지 잘 이해하고 쓰기보다는 단순히 붙여야 돌아가던데라는 생각으로 처음에 접근하였습니다.이전 포스트에서 OverLiding 에대한 이야기를 하며 @Override에 대해 이야기를 잠깐 했는데 이번 포스트에서 잘 알아보십니다.어노테이션이 뭔데?Anotation 은 주석 이라는 의미입니다.보통 우리가 쓰는 주석은 이런식으로 쓰죠?//여기서 이렇게 돌아가서 이렇게 설정됩니다!우리가 쓰는 @도 같은 의미라고 볼 수 있습니다. 그러면 누가 보느냐?컴파일러 지시자어노테이션을 사용하여 컴파일러에게 특정 작업을 수행하도록 지시할 수 있습니다.예를 들어, @Override..
들어가며이번 포스트에서는 결합도에 대하여 이야기 해보겠습니다.결합도?정보처리기사의 단골 문제이자 개념인 결합도 입니다.결합도(Coupling)는 소프트웨어의 구성 요소들 간에 서로 얼마나 의존적인지를 나타내는 개념입니다. 높은 결합도는 코드를 변경하기 어렵게 만들고 유지보수를 어렵게 할 수 있으며, 재사용성과 유연성을 저하시킬 수 있습니다. 반면에 낮은 결합도는 코드를 이해하기 쉽고 변경하기 쉽게 만들며, 구성 요소 간의 독립성을 높여 재사용성과 유연성을 향상시킵니다. 출처 (wmasterj and Fabrice TIERCELIN - wikipedia:en:File:Coupling sketches cropped 1.jpg) 이전 포스트에서 언급 하였듯이 객체지향 프로그래밍 OOP는 이전 세대인 절차적..
들어가며이번 포스트에서는 Interface에 대하여 정리합니다.Interface?기존의 인터페이스가 가르키는 말은 다음과 같습니다.서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면즉, 사용자가 기기를 쉽게 동작 시키는데 도움을 주는 시스템을 의미합니다. 이런 화면들도 인터페이스 화면입니다.Java에서 Interface클래스가 가져야 하는 메서드의 명세(specification)를 정의합니다.즉, 인터페이스는 어떤 클래스가 특정한 메서드를 반드시 구현해야 한다는 것을 보장합니다. 인터페이스는 클래스가 아닌, 구현되지 않은 메서드의 집합을 나타냅니다.// 동물의 소리를 나타내는 인터페이스interface Animal { void makeSound();}// 각..
들어가며이번 포스트에서는 OOP와 자바에서 활용하는 방법을 정리합니다.원래 어노테이션에 대해 정리해보려고 했는데 해당 개념을 먼저 공부해보는 것이 이해하기 더좋다고 생각이 들어 먼저 정리했습니다.JAVA , C++ , Python 등의 많은 소프트웨어에서 지원하는 프로그래밍 방법입니다.이번 포스트에서는 자바에서 어떤식으로 OOP 즉, 객체 지향을 사용하고확장하여 개발자들이 사용하게 하였는지에 대한 정리를 하며 공부한 내용을 공유합니다.OOP는 이전 포스트에서 정리하여서 관련 링크를 함께 첨부합니다.OOP?OOP는 Object-Oriented Programming(객체 지향 프로그래밍)자세한 설명은 아래 링크를 통해 확인해보세요 Abstract이전 포스트에서도 언급하였듯이 추상에 대한 개념입니다.추상은 간..
들어가며이번 포스트에서는 overLoding 과 OverRiding에 대한 이야기를 해보려고 합니다.OOP 에서 다형성을 구현하는 두 가지의 중요한 개념입니다.OOP - 다형성 Polymorphism다형성 (Polymorphism)은 이전 포스트에서 간단하게 정리하여서 개념만 집고 넘어가면같은 이름의 메서드 or 연산자를 다양한 객체에 대해 서로 다른 방식으로 동작하도록 하는 원리를 말합니다. 당연히 재사용성과 유연성이 높아지는 결과를 가지고 옵니다.OverLoding오버로딩은 같은 이름의 연산자나 메서드를 여러개 정의하는 것을 말합니다.보통 이름은 같지만 매개변수의 타입, 갯수, 순서가 다른 경우를 파악해 구현합니다.이것을 파악하는 것은 정적 바인딩 (정적 다형성)에 의해 결정됩니다.특징으로는 컴파일 ..