들어가며디자인 패턴이란, 클래스들 간의 관계를 어떻게 잘 연결할 것인지에 대해 이야기하는 것입니다.생성 패턴이러한 패턴들은 기존 코드의 유연성과 재사용을 증가시키는 다양한 객체 생성 메커니즘들을 제공합니다.구조 패턴이러한 패턴들은 객체들과 클래스들을 구조를 유연하고 효율적으로 유지하면서 더 큰 구조로 조립하는 방법을 설명합니다.행동 패턴이러한 패턴들은 알고리즘들 및 객체 간의 책임 할당과 관련이 있습니다.SingleTone어떤 클래스가 최대 한 번의 인스턴스만을 갖도록 보장하는 패턴입니다. 이 패턴을 사용하면 특정 클래스의 인스턴스가 오직 하나만 존재하도록 제한할 수 있으므로, 리소스의 낭비를 방지하고 객체 간의 일관성을 유지할 수 있습니다.Private Constructor(비공개 생성자): 클래스 내..
들어가며이번 포스트에서는 자바에서 String 에 대해 이해해 보려고합니다.String은 기본적으로 제공되는 변수 - 원시타입들과는 다릅니다.원시타입기본적으로 제공 하는 변수형 들을 말합니다.정수 : btye short int long - 1 , 2 , 4 , 8 바이트로 이루어져있습니다.사용저는 특별한 제약조건이 있는 경우가 아니라면 int 와 long을 사용하고 있습니다.int의 경우 21억 정도 까지의 값들을 저장할 수 있는데 만약 저장 될 값이20억이 넘어갈 것같은 경우에는 long으로 아닌 경우에는 int를 사용하고 있습니다.실수 : float Double - 4 ,8문자 : char - 2논리 : boolean - 1이렇게 원시타입이 이루어져 있습니다.그리고 String은 불변하는 객체입니다...
들어가며이번 포스트에서는 디자인 패턴에 대해서 알아보겠습니다.글이 길어 패턴의 자세한 내용은 다음 포스트에서 다룹니다.디자인 패턴이란?소프트웨어 설계에서 자주 발생하는 문제들을 해결하기 위한 일반적인 해결책입니다.개발자들이 반복적으로 발생하는 설계 문제들을 해결하기 위해 미리 만들어 놓은 청사진과 같다고 생각하면 됩니다.에초에 디자인 - 설계 라는 의미로 사용되니까요.이전에 포스팅한 내용들과도 연관되어 설명해볼 수 있습니다.자바란? 객체지향을 잘 하기 위한 언어이런 자바를 잘 만들기 위한 도구 : 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는 이전 세대인 절차적..