목록JAVA (15)
코딩 이래요래

1. 자료구조의 구분 기준🔹 선형 구조 (Linear Data Structure)정의: 데이터가 일렬로 나열된 형태로 저장특징: 순차 접근이 가능하며, 앞뒤 요소의 관계가 명확함예시:Array (배열)LinkedListStackQueue🔹 비선형 구조 (Non-Linear Data Structure)정의: 데이터 간 계층 또는 복잡한 연결 관계를 가지는 형태특징: 부모-자식 관계 또는 다대다 관계 표현 가능예시:TreeGraph2. 정적 구조와 동적 구조🔹 정적 구조 (Static Structure)정의: 메모리 크기와 구조가 컴파일 타임에 고정됨예시:Array장점:구현이 간단접근 속도가 빠름 (인덱스를 통한 직접 접근 가능)단점:크기 변경 불가 → 메모리 낭비 또는 부족 가능성🔹 동적 구조 (D..

Sprint Mission Part-1 (Java) 요구사항 및 구현 정리본 글에서는 스프린트 미션 Part-1에서 진행한Java를 활용한 디스코드(Discord) 서비스 도메인 모델링 및 CRUD 서비스 구현 내용을 정리함✅ 미션 요구사항 개요Java 기반 디스코드 서비스 도메인 모델링Java Collections Framework를 활용한 CRUD 기능 구현도메인 간 관계 검증 로직 설계 및 구현(심화)📌 목차1️⃣ 도메인 모델링① 도메인 모델 정의공통 필드id (UUID 타입)createdAt, updatedAt (Unix 타임스탬프)UserChannelMessage② Java 클래스 구현클래스별 필드 및 생성자 구현Getter 메소드 구현필드 수정 메소드(update) 구현 예시2️⃣ 서비스 설..
객체지향 설계의 SOLID 원칙객체지향 설계에서 유지보수성과 확장성을 높이기 위해 지켜야 하는 5가지 원칙🔸 1. SRP (단일 책임의 원칙, Single Responsibility Principle)한 클래스는 오직 하나의 책임만 가져야 한다.클래스가 하나 이상의 책임을 가지면 변경에 취약해지고 유지보수가 어렵다.❌ 잘못된 예시 (책임 혼합):class Product { String name; int price; void payment(); // 결제 기능 void printReceipt(); // 영수증 출력 기능} ✅ SRP를 적용한 예시 (책임 분리):class Product { String name; int price;}class PaymentService { ..
📌 1. 추상화 (Abstraction)추상화: 공통적인 특징을 추출하고, 불필요한 세부사항은 생략하여 핵심만 표현하는 방법.예시: 리모컨의 버튼을 사용하면서 내부의 복잡한 구조는 알 필요 없음.장점:코드 재사용성 향상 → 유지보수성 증가유연한 설계 가능복잡성 감소로 이해와 설계가 쉬워짐🔸 행위 중심 추상화 vs 데이터 중심 추상화 구분행위 중심 추상화데이터 중심 추상화핵심객체의 행위 및 메소드객체의 데이터 및 속성정의 방식수행 가능한 행동으로 정의포함된 데이터 구조로 정의특징메소드 기반 설계데이터 구조 관리 중심 설계일반적으로 객체 지향 프로그래밍(OOP)은 행위 중심의 추상화를 사용함.(단, DTO 등 특정 경우에는 데이터 중심도 가능)🔸 추상클래스와 인터페이스 비교구분추상클래스(Abstract..