디자인 패턴은 무엇이며 어떤 것들이 있을까? 디자인 패턴 (Design Pattern) --디자인 패턴은소프트웨어 설계에서 자주 발생하는 문제들을 해결하기 위한 일종의 "표준화된 해결 방법"이다.(프로그램을 설계할 때 발생했던 문제점들을 특정 방법을 통해 해결할 수 있도록 하나의 "규약", "템플릿" 형태) 특징주로 객체지향 프로그래밍에서 사용한다.코드를 더욱 유지보수하기 쉽고, 확장 가능하게 만든다.주로 객체 생성, 구조 설계, 객체 간 상호작용 등을 효과적으로 처리하는 방법이 있다.다른 개발자들과 더욱 쉽게 소통이 가능해지며, 시스템을 이해하는 데 도움을 준다.즉, 프로그램 구조를 체계적이고 재사용 가능하게 만들며, 개발자들과 소통하기 편리해진다. 디자인 패턴을 사용하면 왜 소통이 편리해지..
전체 글
DI는 무엇이고 어떻게 구현하는 것일까? 의존성 (의존 관계, Dependency) --의존성은객체 지향 프로그래밍에서한 객체가 다른 객체에 대해 얼마나 의존적인지를 나타내는 개념이다. class A { int a = 10; public void test() { System.out.println(a); }}class B { A aaa = new A(); aaa.test();} 위 코드를 보면B 클래스 내부에서 A 클래스의 객체를 직접 생성하여 사용하는 구조로B 클래스는 A 클래스에 의존하고 있는 형태가 된다.A 클래스의 내용이 변하면 B 클래스도 이에 따라 변하게 되는 것이다. 즉, 의존 관계라는 것은B가 A를 의존하고 있을 때, A가 변하면 B에도..
SOLID 원칙은 무엇이며, 왜 지켜야 하는가? SOLID 원칙 --SOLID는객체 지향 프로그래밍에서 유지보수성과 확장성이 좋은 소프트웨어를 설계하기 위한 5가지 원칙의 약자다. SOLID 종류SRP : 단일 책임 원칙OCP : 개방 폐쇄 원칙LSP : 리스코프 치환 원칙ISP : 인터페이스 분리 원칙DIP : 의존 역전 원칙 SOLID의 목적소프트웨어의 품질을 높임코드의 유연성과 재사용성을 증가 시킴복잡성을 제거하여 리팩토링에 소요되는 시간 줄임개발의 생산성 증가 SOLID 개념은OOP의 특징인 "캡슐화", "추상화", "다형성", "상속" 등의 개념들을 다시 재정의한 원칙으로 생각하면 된다.그래서 프로젝트에 SOLID의 원칙을 모두 적용해야 할 필요가 없으며, 상황에 따라..
OOP는 무엇일까? 객체지향 프로그래밍 (OOP) --OOP는말 그대로 "객체" 지향적인 프로그래밍을 의미하는데이는 프로그램을 "객체(Object)"의 집합으로 보는 방식이다.즉, 각 객체들이 서로 상호작용하는 구조로 동작을 수행하게 된다. 간단하게 설명하자면전체적으로 수행할 동작들 중에서 각 역할에 알맞게 "객체(클래스)"를 여러 공간에 분리하고프로그램을 동작할 때는 특정 동작에 필요한 객체들을 원하는 순서대로 불러다가 동작시켜 프로그램의 동작을 완수하는 것이다. 즉, 각 역할(동작)을 수행할 모듈들을 먼저 설계한 다음 해당 모듈들을 가지고 실행할 흐름을 짜서 동작시키는 방식이다. 비유를 하자면각각의 도구와 재료(인스턴스 변수)를 가지고 자신이 맡은 역할(메서드)만 수행하는 여러 요리사(객체)..
예외 처리는 어떻게 할까? 프로그램 오류 --오류 종류컴파일 에러 : 컴파일 시 발생하는 에러런타임 에러 : 실행 시 발생하는 에러논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 상황 런타임 에러의 종류에러 (Error) : 프로그램 코드에 의해 수습이 불가능한 오류예외 (Exception) : 프로그램 코드에 의해 수습이 가능한 오류 예외 클래스의 계층 구조에러와 예외 역시 최종 부모 클래스가 Object 클래스다. 위 그림처럼예외 클래스는 두 그룹으로 나눌 수 있다.Exception 클래스와 해당 자식 클래스들RuntimeException 클래스와 해당 자식 클래스들-- 예외 처리 ( try-catch, try-catch-finally문 ) --오류가 아..
내부 클래스와 익명 클래스는 무엇이고 어떻게 사용할까? 내부 클래스 (Inner Class) --내부 클래스는클래스 내부에 선언된 클래스를 의미한다. 내부 클래스를 감싸고 있는 (겉에 있는) 클래스를 "외부 클래스"라고 부른다. 내부 클래스 종류인스턴스 내부 클래스static 내부 클래스지역 내부 클래스익명 내부 클래스 인스턴스 내부 클래스는외부 클래스의 인스턴스에 종속되는 클래스로외부 클래스의 멤버(필드) 중 하나라고 생각하면 된다.class OuterClass { private String message = "Hello from OuterClass"; // 인스턴스 내부 클래스 class InnerClass { public void displayMessage(..
인터페이스는 무엇일까? 인터페이스 (Interface) --인터페이스는클래스가 구현해야 할 메서드의 집합을 정의하는 일종의 추상적인 틀이다. 추상 클래스처럼 추상 메서드를 가지고 있지만추상 클래스보다 추상화 정도가 높아서추상 크래스와 달리 몸통을 갖춘(구현된) 일반 메서드나 멤버변수를 구성원으로 가질 수 없다.오직 "추상 메서드"와 "상수"만을 멤버로 가진 틀이다. 추상 클래스는일반 클래스에 추상 메서드가 하나라도 있는 경우를 의미하고인터페이스는구성원이 전부 추상 메서드나 상수로 이루어진 경우를 의미한다. 인터페이스 기본 형식interface 인터페이스명 { 추상 메서드 or 상수}interface Test { public static final double PI = 3.14; //..
다형성은 무엇이며, 어떻게 사용할까? 다형성 (Polymorphism) --다형성은하나의 객체가 여러 가지 형태를 가질 수 있는 성질을 의미한다.즉, 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 하는 것이다. 부모클래스 타입의 참조변수로 자식클래스의 인스턴스를 참조하는 것이다. 부모클래스명 객체명 = new 자식클래스생성자();class Parent { ... }class Child extends Parent { ... }Parent op = new Child(); // 부모타입의 참조변수로 자식 인스턴스를 참조 다형성을 이용하면해당 객체의 구성은 부모타입(부모클래스)으로 이루어져 있으며내용(데이터)은 자식 객체를 참조하는 것으로 간단하게 구성은 부모 클래스고, 데이터는 자식 클..