들어가며이번 포스트에서는 디자인 패턴에 대해서 알아보겠습니다.글이 길어 패턴의 자세한 내용은 다음 포스트에서 다룹니다.디자인 패턴이란?소프트웨어 설계에서 자주 발생하는 문제들을 해결하기 위한 일반적인 해결책입니다.개발자들이 반복적으로 발생하는 설계 문제들을 해결하기 위해 미리 만들어 놓은 청사진과 같다고 생각하면 됩니다.에초에 디자인 - 설계 라는 의미로 사용되니까요.이전에 포스팅한 내용들과도 연관되어 설명해볼 수 있습니다.자바란? 객체지향을 잘 하기 위한 언어이런 자바를 잘 만들기 위한 도구 : OOP의 4대 특성 , 캡슐화 , 상속, 추상화 , 다형성그리고 이런 도구를 잘 다루기 위한 사용법 : SOLID - 단일 책임, 오픈 클로즈 , 리스코프 치환 , 인터페이스 분리 , 의존 역전 원칙그리고 이런..
들어가며이번 포스트에서는 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이전 포스트에서도 언급하였듯이 추상에 대한 개념입니다.추상은 간..