본문 바로가기

프로그래밍/Java12

SOLID 설계, 그 외 소수설 SOLID - 소프트웨어 설계를 이해하기 쉽고, 유연하고, 유지보수가 쉽게 만들기 위해 나온 원칙 SRP - Single Responsibility Principle, 단일 책임 원칙, 클래스의 존재 이유가 하나여야만 함, 클래스의 책임을 정확히, 오류 확인 쉬움 OCP - Open / Closed Priciple, 개방-폐쇄 원칙, 클래스 내부 수정 없이 동작을 확장할 수 있어야 함 LSP - Liskov Substitution Priciple, 리스코프 치환 원칙, 부모 클래스의 동작은 자식 클래스에서 모두 할 수 있어야 함 ISP - Interface Segregation Principle, 인터페이스 분리 원칙, 큰 인터페이스 몇 개보다 작은 인터페이스 많은 것이 나음 DIP - Dependenc.. 2023. 5. 16.
예외 처리, 오류 처리 try-catch-finally - catch 문은 여러개 가능, finally는 생략 가능, 부모 예외 클래스보다 자식 클래스가 먼저 나올 수 없음 try { } catch{ } catch{ } finally{ //예외 발생 여부와 상관없이 항상 실행되는 코드 } Exception 클래스 - 최상위 클래스로 모든 예외를 잡음 printStackTrace() - 현재 발생한 예외의 호출 스택을 보여줌 getMessage() - 예외가 왜 발생했는지에 대한 내용, 메시지가 없을 때는 null 반환 rethrow - 예외가 발생했을 때 상위로 예외 처리를 넘기는 방식, 호출 스택이 없어질 수 있기 때문에 주의 checked 예외 - Java에만 존재, Exception 상속, IOException, SQLE.. 2023. 5. 13.
디자인 패턴 Factory Method - 사용할 클래스를 정확히 몰라도 개체 생성을 가능하게 해주는 패턴, 클라이언트가 익숙한 인자를 통해 개체를 생성할 수 있음, 오류 시 null 반환 가능, 다형적으로 개체 생성 가능 (가상 생성자 패턴) Builder - 개체의 생성 과정을 그 개체의 클래스로부터 분리하는 방법, 개체의 부분을 만들어가다 준비되면 개체를 생성, Fluent Interface 기능, String Sequence Diagram - 개체들이 서로 통신하는 모습을 보여주는 UML 다이어그램, 동작을 시간의 흐름에 따라 나타냄 Wrapper Pattern - Adapter Pattern이라고도 함, 어떤 클래스의 메서드 시그니처를 변경할 때 사용(외부 라이브러리를 바꿀 때, 클라이언트 코드를 변경하지 .. 2023. 5. 11.
다형성 다형성(Polymorphism) - 어떤 개체가 다양한 형태로 변할 수 있는 기능이다. 많은 사람들이 OOP의 핵심이라고 생각하는 특징이다. 같은 지시를 내렸는데 다른 종류의 개체가 동작을 다르게 하는 것이다. 상속 관계가 필요하다. 다른 종류의 개체를 편하게 저장하거나 처리할 수 있다. 다형성은 상속에 기반하고 상속은 추상화에 기반한다. 늦은 바인딩 - 어떤 함수 구현이 실행될지는 실행 중에 결정된다. 동적 바인딩이라고도 한다. 이른 바인딩 - 일반적인 함수 호출이다. 컴파일 중에 결정된다. 정적 바인딩이라고도 한다. 오버라이딩 - 부모 개체에서 함수 시그니처 선언 후에 자식 개체에서 그 함수를 다르게 구현한다. 부모 함수의 동작을 유지하면서 오버라이딩도 가능하다. super를 붙여 호출하면 되는데 꼭.. 2023. 2. 2.