YTCW
아주 간략하게 용어 정리 본문
클래스 (Class)
객체를 찍어내는 틀과 같다
기본 구조
class 클래스명 {
// 필드
// 생성자
// 메서드
}
사용방법: 클래스의 객체를 생성하여 사용
객체 (Object)
클래스의 인스턴스로, 실제로 메모리에 할당된 실체이다
기본구조: 클래스에서 정의한 필드와 메서드를 포함 할 수 있다
사용방법:
클래스명 객체명 = new 클래스명();
객체명.메서드명();
필드 (Field)
개념: 클래스 내에서 데이터를 저장하는 변수를 선언하는 곳
기본구조:
class 클래스명 {
접근제어자 데이터타입 필드명;
}
사용방법: 객체를 통해 접근 (예: 객체명.필드명)
메서드 (Method)
개념: 클래스 내에서 특정 작업을 수행하는 함수
기본구조:
접근제어자 반환타입 메서드명(매개변수) {
// 메서드 내용
}
사용방법: 객체를 통해 호출
(예: 객체명.메서드명())
생성자 (Constructor)
개념: 객체가 생성될 때 초기화를 담당한다
기본구조:
class 클래스명 {
클래스명(매개변수) {
// 초기화 코드
}
}
사용방법: 객체 생성 시 자동으로 호출됨
(예: new 클래스명())
인스턴스 (Instance)
개념: 클래스를 바탕으로 생성된 구체적인 객체
기본구조: 클래스의 구조를 가지고 있다
사용방법:
클래스명 인스턴스명 = new 클래스명();
인스턴스명.메서드명();
인터페이스 (Interface)
개념:객체를 정의하는 추상타입
기본구조:
public interface 인터페이스이름 {
// 상수 선언
// 추상 메서드 선언
public void 메소드() {}
}
사용방법:
상속받고 {
@오버라이드
public void 메소드() {
// 구현부
}
}
임플리먼트 (implements)
개념:클래스가 인터페이스를 구현할 때 사용
기본구조:
public class 클래스이름 implements 인터페이스이름1, 인터페이스이름2 {
// 인터페이스의 모든 메서드 구현
}
사용방법:
public interface 인터페이스이름{
void 메소드() {
}
public class 클래스이름 implements 인터페이스이름 {
@Override
public void 메소드() {
// 구현
}
}
익스텐드(extends)
개념: 클래스와 인터페이스에게 상속 가능
사용방법:
// 클래스 상속
public class ChildClass extends ParentClass { }
// 인터페이스 상속
public interface ChildInterface extends ParentInterface1, ParentInterface2 { }
사용방법:
public class Animal {
void eat() {
System.out.println("동물이 먹습니다.");
}
}
public class Dog extends Animal {
void bark() {
System.out.println("개가 짖습니다.");
}
}
스태틱(static)
개념: 인스턴스 객체 생성없이 사용이 가능하다.
기본구조:
public class 클래스네임 {
public 타입 변수명;
public static 타입 메소드() {
// 구현
}
}
사용방법:
클래스네임.변수명
클래스네임.메소드
final
개념 : 변하지 않는 상수 선언, 상속되지않는 클래스
기본구조:
final class 클래스네임 {
}
public class 클래스네임 {
final 타입 대문자변수명 = 값;
}
사용방법:
public class 클래스네임 {
final 타입 대문자변수명 = 값;
final void 메소드 () {
// 구현
}
}
mvc패턴
개념:
기본구조:
Model: 데이터와 비즈니스 로직 처리
View: 사용자 인터페이스
Controller: Model과 View 사이의 중재자 역할
사용방법:
service, controller, repository, entity, dto 의 역할, 요청, 응답 구조
클라이언트 ㅡ> HTTP 요청 ㅡ> Controller ㅡ> 요청 처리 ㅡ> Service ㅡ> 비지니스 로직 ㅡ> Repository ㅡ> 데이터 접근 ㅡ> Database ㅡ> 데이터 반환 ㅡ> repository ㅡ> 엔티티 반환 ㅡ> Service ㅡ> DTO(변환) ㅡ> Controller ㅡ> HTTP응답 ㅡ> 클라이언트
Controller
클라이언트의 HTTP 요청을 받아 처리하고, 적절한 Service를 호출합니다. 주로 @RestController 어노테이션을 사용합니다.
Service
비즈니스 로직을 처리하며, Repository를 사용하여 데이터를 조작합니다. @Service 어노테이션을 사용합니다.
Repository
데이터베이스에 접근하여 CRUD(Create, Read, Update, Delete) 연산을 수행합니다. 주로 JPA Repository를 extends 하여 사용합니다.
Entity
데이터베이스 테이블과 매핑되는 Java 객체입니다. @Entity 어노테이션을 사용하여 정의합니다.
DTO (Data Transfer Object)
계층 간 데이터 전송에 사용되는 객체입니다. 주로 Controller와 클라이언트 간의 데이터 교환에 사용됩니다.
요청/응답 구조
클라이언트에서 HTTP 요청이 Controller로 전달됩니다.
Controller는 요청을 처리하고 필요한 Service 메소드를 호출합니다.
Service는 비즈니스 로직을 수행하고 필요한 데이터를 Repository에서 가져옵니다.
Repository는 데이터베이스에서 Entity 객체를 조회하거나 저장합니다.
Service는 Entity를 DTO로 변환하여 Controller에 반환합니다.
Controller는 DTO를 HTTP 응답으로 클라이언트에게 전송합니다.