2025년 7월 11일 금요일(33일차)

Jeonghoon·2025년 7월 11일

jeonghoon's Study

목록 보기
35/128

🧠 Java 복습 정리 (접근제한자 · 싱글톤 · MVC 패턴)


🔑 [ 주요 키워드 ]

키워드설명예시
public모든 클래스에서 접근 가능public class Example {}
private현재 클래스 내에서만 접근 가능private int age;
(default)동일 패키지 내에서만 접근 가능 (생략 가능)int count;
protected동일/하위 패키지 및 상속 관계에서 접근 가능protected String name;

📦 기타 키워드

키워드의미설명
import클래스 불러오기다른 패키지의 클래스를 가져올 때 사용
final수정 불가능상수 선언 시 사용, 반드시 초기화 필요
static객체 없이 사용 가능프로그램 시작 시 메모리 로드, 종료 시 삭제

💡 예시 코드

public static void main(String[] args) {
    System.out.println("Hello");
}

📘 [ 관례적인 사용법 ]

항목설명
getter/setterprivate 멤버변수 접근을 위한 메소드
public static final상수 선언 시 사용

🧩 [ 변수의 종류 ]

구분설명예시
🧠 멤버변수클래스 내 전역 변수private int age;
⚙️ 지역변수메소드 내부 변수int num = 0;
📨 매개변수메소드 호출 시 전달받는 변수void test(int a)
🧱 정적변수static이 붙은 변수 (공유됨)static int count;

🏗️ [ 클래스 / 객체 / 인스턴스 ]

구분설명예시
클래스(Class)객체 생성을 위한 설계도class Car {}
객체(Object)속성과 기능을 가진 실체new Car()
인스턴스(Instance)생성된 객체가 메모리에 존재하는 상태Car myCar = new Car();

🎨 [ 디자인 패턴 (Design Pattern) ]

항목설명
📖 정의소프트웨어 설계 시 자주 발생하는 문제를 효율적으로 해결하기 위한 설계 유형
🎯 목적협업 및 유지보수 효율성 향상

🔁 [ 싱글톤 패턴 (Singleton Pattern) ]

항목설명
📘 정의프로그램 내 객체가 단 하나만 존재하도록 설계
🎯 목적메모리 절약, 공유 객체 관리, 중복 생성 방지
⚙️ 특징private 생성자 + static 인스턴스 + getInstance()

🧱 구현 순서

public class Example {
    private static final Example instance = new Example(); // 유일한 객체
    private Example() {} // private 생성자
    public static Example getInstance() { // 접근 메소드
        return instance;
    }
}
단계설명
private 기본 생성자 선언
private static final 객체 생성
getInstance() 메소드로 외부 접근 허용

📌 호출 방법 → 클래스명.getInstance();


🧱 [ MVC 패턴 ]

구분설명
📘 정의Model, View, Controller로 분리하여 효율적 설계
🎯 목적모듈화 / 협업 효율성 / 유지보수 향상
⚙️ 장점코드 재사용, 유지보수 용이
⚠️ 단점구조가 복잡해질 수 있음
💼 사용처Spring, Django 등 주요 프레임워크

🧩 [ MVC 구성 요소 ]

역할담당 기능주요 영역
View 👀입출력 담당 (UI)프론트엔드
Controller ⚙️View ↔ Model 제어 / 데이터 전달 / 유효성 검사백엔드
Model 💾데이터 관리 및 DB 연동백엔드

🔹 Model 구성

구분역할
DAO (Data Access Object)데이터 접근 객체, DB 조작
DTO (Data Transfer Object)데이터 이동 객체, 정보 전달용

🔄 [ MVC 데이터 흐름 ]

과정흐름
📨 주문 요청View → Controller → Model(DAO)
📤 주문 응답Model(DAO) → Controller → View

📂 패키지 구조 예시

📁 controller
📁 model
 ┣ 📁 dao
 ┗ 📁 dto
📁 view

0개의 댓글