2026/01/26 5

[06] UML을 활용한 객체 지향 설계 시각화

01. UML (Unified Modeling Language) 개요 및 필요성UML이란 시스템을 시각적으로 표현하기 위한 표준화된 모델링 언어, 문서화, 기획을 의미한다. 즉, UML이란 소프트웨어 개발 과정에서 복잡한 구조나 동작을 그림으로 표현함으로써 설계의 이해도와 팀원들 간 의사소통을 향상시키는 도구를 뜻한다. 이러한 UML은 구조(Struct)와 동적 행동(Behavior)을 모두 다룰 수 있다. 1. UML을 사용하는 이유UML 사용 이유 시각적 이해복잡한 시스템을 시각적인 그림으로 표현함으로써 직관적인 이해를 도움팀 간 소통 및 협업 향상개발자, 기획자, 디자이너, QA 등 다양한 직군이 이해할 수 있는 공통 언어 역할 수행설계 오류 조기 발견코드 작성 전, 구조를 검증하여 논리적인 오류나..

[05] 예외 처리 (Exception Handling)

01. 예외1. 오류 vs 예외 오류(Error)예외(Exception)의미시스템 레벨에서 발생하는 치명적인 문제개발자가 처리할 수 있는 문제예시메모리 부족(OutOfMemoryError),스택 오버플로우(StackOverflowError)NullPointerException,IllegalArgumentException복구 가능 여부거의 불가능비교적 복구 가능처리 방법JVM 차원 처리개발자가 try-catch 등으로 처리 2. 예외 처리의 중요성예외 처리는 모든 프로그래밍 언어에서 매우 중요한 개념이다. 프로그램이 실행되는 동안 파일 부재, 네트워크 연결 실패, 잘못된 입력 제공, DB 연결 문제 등 다양한 상황이 발생하는데 이때 예외 처리가 없다면 프로그램은 즉시 종료되기 때문이다. 하지만 자바는 체계..

[04] 내부 클래스와 익명 클래스, 그리고 열거 타입(ENUM)의 활용

01. 내부 클래스 (Inner Class)1. 내부 클래스내부 클래스란 클래스 내부에 선언된 또 다른 클래스를 뜻한다. 내부 클래스는 외부 클래스 멤버에 자유롭게 접근할 수 있으며, 밀접하게 관련된 기능을 함께 묶어 설계하는 것을 돕는다. 또한 내부 클래스를 활용하면 코드의 응집도를 높이고 캡슐화를 강화할 수 있다. class Outer { // 외부 클래스 class Inner { // 인스턴스 내부 클래스 }} 2. 내부 클래스를 사용하는 이유내부 클래스를 사용하는 이유 외부 클래스와 밀접한 기능을 묶기 위해두 클래스가 강하게 연관된 관계라면 외부 클래스 내부에 클래스를 선언하는 것이 자연스러움캡슐화 (정보 은닉) 강화내부 클래스를 private, protected 로 선언하면 외부에서 접..

[03] SOLID 원칙

01. SOLID 원칙SOLID 원칙이란 객체 지향 설계에서 유지보수 가능하고 확장 가능한 코드를 만들기 위한 5가지 설계 원칙의 앞 글자를 모은 약어이다. 이러한 SOLID 원칙은 유지보수가 쉬운 코드 설계, 변경에 유연한 설계, 테스트하기 좋은 구조, 협업 시 충돌 최소화에 있어서 막대한 영향을 끼치기에 중요하다. 설계 원칙의 종류 단일 책임 원칙(SRP)하나의 클래스는 하나의 책임만 가져야 한다개방 / 폐쇄 원칙(OCP)확장에는 열려있고, 수정에는 닫혀있어야 한다.리스코브 치환 원칙(LSP)자식 클래스는 반드시 부모 클래스를 대체할 수 있어야 한다.인터페이스 분리 원칙(ISP)하나의 범용 인터페이스보다 다수의 구체적인 인터페이스가 낫다.클라이언트는 사용하지 않는 메서드에 의존하면 안 된다.의존성 역..

[02] 객체 지향 프로그래밍의 4가지 핵심 개념

01. 상속 (Inheritance)1. 상속상속이란 하위 클래스가 상위 클래스의 멤버(필드, 메서드 등)를 물려받아 사용할 수 있게 하는 구조를 의미한다. 즉, 상속이란 하위 클래스는 상위 클래스의 공통된 속성과 기능을 그대로 상속받고, 필요에 따라 자신의 고유한 기능을 추가로 정의하여 확장하거나 상위 메서드를 재정의(Override)할 수 있음을 뜻한다. 이러한 상속 관계는 자바에서 extends라는 키워드를 통해 명시하며, 상속의 구조상 하위 클래스는 상위 클래스의 모든 멤버를 포함하기 때문에, 하위 클래스가 가진 멤버의 개수는 언제나 상위 클래스보다 같거나 더 많다. // 1. 기본 형태class 상위클래스명 { // 필드와 메서드}class 하위클래스명 extends 상위클래스명 { ..