Skip to content

Latest commit

Β 

History

History
112 lines (84 loc) Β· 3 KB

POJO(Plain Old Java Object).md

File metadata and controls

112 lines (84 loc) Β· 3 KB

POJO(Plain Old Java Object)

μˆœμˆ˜ν•œ μžλ°” μ˜€λΈŒμ νŠΈλΌλŠ” 뜻
λ³΅μž‘ν•œ μ—”ν„°ν”„λΌμ΄μ¦ˆ μžλ°” 빈즈(EJB)와 같은 무거운 μ»΄ν¬λ„ŒνŠΈλ‚˜ ν”„λ ˆμž„μ›Œν¬λ₯Ό ν”Όν•˜κ³ ,
μˆœμˆ˜ν•œ μžλ°” 객체둜 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ κ΅¬ν˜„ν•˜λŠ” 것을 지ν–₯

객체지ν–₯적인 원리에 μΆ©μ‹€ν•˜λ©΄μ„œ, ν™˜κ²½κ³Ό κΈ°μˆ μ— μ’…μ†λ˜μ§€ μ•Šκ³  
ν•„μš”μ— 따라 μž¬ν™œμš©λ  수 μžˆλŠ” λ°©μ‹μœΌλ‘œ μ„€κ³„λœ 였브젝트

POJO νŠΉμ§•, μ‚¬μš©μ΄μœ 

  • 간단함: νŠΉλ³„ν•œ 클래슀λ₯Ό μƒμ†λ°›κ±°λ‚˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜μ§€ μ•ŠμŒ.
  • μΊ‘μŠν™”: 일반적인 μžλ°” 객체처럼 ν•„λ“œ, λ©”μ„œλ“œλ₯Ό κ°€μ§ˆ 수 있음.
  • 독립적(μœ μ—°μ„±): νŠΉμ • ν”„λ ˆμž„μ›Œν¬λ‚˜ κΈ°μˆ μ— μ’…μ†λ˜μ§€ μ•ŠμŒ(λ‹€λ₯Έ ν™˜κ²½μœΌλ‘œμ˜ μ „ν™˜μ΄ 용이).
  • ν…ŒμŠ€νŠΈ μš©μ΄μ„±: κ°„λ‹¨ν•œ κ°μ²΄μ΄λ―€λ‘œ μœ λ‹› ν…ŒμŠ€νŠΈ μž‘μ„±μ΄ 쉬움.
  • λ‹¨μˆœμ„±: λ³΅μž‘ν•œ 상속 κ΅¬μ‘°λ‚˜ νŠΉμ • ν”„λ ˆμž„μ›Œν¬μ— μ˜μ‘΄ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— μ½”λ“œκ°€ λ‹¨μˆœν•˜κ³  직관적이닀.
  • μž¬μ‚¬μš©μ„±: 독립적이기 λ•Œλ¬Έμ— μ—¬λŸ¬ ν”„λ‘œμ νŠΈλ‚˜ λͺ¨λ“ˆμ—μ„œ μž¬μ‚¬μš©ν•  수 μžˆλ‹€.
  • ν‘œμ€€ν™”λœ μ ‘κ·Ό:μžλ°”μ˜ ν‘œμ€€μ„ λ”°λ₯΄κΈ° λ•Œλ¬Έμ— μžλ°” 개발자라면 λˆ„κ΅¬λ‚˜ μ‰½κ²Œ μ΄ν•΄ν•˜κ³  μ‚¬μš©ν•  수 μžˆλ‹€.

POJO μ€‘μš”μ„±

    νŠΉμ • 기술과 ν™˜κ²½μ— μ’…μ†λ˜μ–΄ μ˜μ‘΄ν•˜κ²Œ 된 μžλ°” μ½”λ“œλŠ” 가독성이 λ–¨μ–΄μ Έ μœ μ§€λ³΄μˆ˜κ°€ νž˜λ“€λ‹€
    그것은 μžλ°”μ˜ 객체지ν–₯ μ„€κ³„μ˜ μž₯점듀을 μžƒμ–΄λ¦¬λŠ”κ²ƒμ΄λ‹€.

POJOκ°€ μ μš©λœμ½”λ“œ vs μ μš©μ•ˆλœμ½”λ“œ

μˆœμˆ˜ν•œ μžλ°” 객체둜 νŠΉμ • ν”„λ ˆμž„μ›Œν¬λ‚˜ κΈ°μˆ μ— μ˜μ‘΄ν•˜μ§€μ•ŠλŠ”λ‹€.

public class Person {
    private String name;
    private int age;

    // κΈ°λ³Έ μƒμ„±μž
    public Person() {}

    // λ§€κ°œλ³€μˆ˜ μžˆλŠ” μƒμ„±μž
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getter와 Setter λ©”μ„œλ“œ
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

@Entity 및 @Id와 같은 JPA μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜μ—¬ νŠΉμ • ν”„λ ˆμž„μ›Œν¬μ— μ˜μ‘΄ν•˜κ³ μžˆλ‹€.

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Person {
    @Id
    private Long id;
    private String name;
    private int age;

    // κΈ°λ³Έ μƒμ„±μž
    public Person() {}

    // λ§€κ°œλ³€μˆ˜ μžˆλŠ” μƒμ„±μž
    public Person(Long id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    // Getter와 Setter λ©”μ„œλ“œ
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}