[์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 4. ํšŒ์› ๋„๋ฉ”์ธ ๊ฐœ๋ฐœ

2023. 1. 31. 14:44ยทSpring/Spring ๊ธฐ๋ณธ

 

ํšŒ์› ๋„๋ฉ”์ธ ๊ฐœ๋ฐœ

 

 

ํšŒ์› ๋“ฑ๊ธ‰ (Grade.class)

๋”๋ณด๊ธฐ
package hello2.demo.member;

public enum Grade {
    BASIC,
    VIP
}

 

ํšŒ์› ์—”ํ‹ฐํ‹ฐ, ๋ฉค๋ฒ„ (Member)

๋”๋ณด๊ธฐ

id, ์ด๋ฆ„, ๋“ฑ๊ธ‰

package hello2.demo.member;

public class Member {
    private Long id;
    private String name;
    private Grade grade;

    public Member(Long id, String name, Grade grade) {
        this.id = id;
        this.name = name;
        this.grade = grade;
    }

    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 Grade getGrade() {
        return grade;
    }

    public void setGrade(Grade grade) {
        this.grade = grade;
    }
}

 

 

 

ํšŒ์› ์ €์žฅ์†Œ

 

ํšŒ์› ์ €์žฅ์†Œ ์ธํ„ฐํŽ˜์ด์Šค 

ํšŒ์›์„ ์ €์žฅํ•˜๊ณ 

id๋ฅผ ์กฐํšŒํ•ด์„œ Member ๋ฐ˜ํ™˜

๋”๋ณด๊ธฐ
package hello2.demo.member;

public interface MemberRepository {

    void save(Member member);

    Member findById(Long memberId);
}

 

๋ฉ”๋ชจ๋ฆฌ ํšŒ์› ์ €์žฅ์†Œ ๊ตฌํ˜„์ฒด

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์•„์ง ํ™•์ •์ด ์•ˆ๋˜์—ˆ๋‹ค. 

๊ทธ๋ž˜๋„ ๊ฐœ๋ฐœ์€ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๋‹ˆ ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ, ๋ฉ”๋ชจ๋ฆฌ ํšŒ์› ์ €์žฅ์†Œ๋ฅผ ๊ตฌํ˜„ํ•ด์„œ ์šฐ์„  ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜์ž.

 

ํšŒ์›์„ ์ €์žฅ์†Œ(map๊ตฌ์กฐ)์— ์ €์žฅํ•˜๊ธฐ - put()

ํšŒ์›์„ ์ €์žฅ์†Œ์—์„œ ์กฐํšŒํ•˜๊ธฐ - get()

์ฐธ๊ณ : HashMap ์€ ๋™์‹œ์„ฑ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ConcurrentHashMap์„ ์‚ฌ์šฉํ•˜์ž.

๋”๋ณด๊ธฐ
package hello2.demo.member;

import java.util.HashMap;
import java.util.Map;

public class MemoryMemberRepository implements MemberRepository {

    private static Map<Long, Member> store = new HashMap<>();   // ๊ตฌํ˜„์ฒด์˜ ์ €์žฅ์†Œ ๋งŒ๋“ค๊ธฐ

    @Override
    public void save(Member member) {
        store.put(member.getId(), member);
    }

    @Override
    public Member findById(Long memberId) {
        return store.get(memberId);
    }
}

 

 

๋งต (Map)

๋”๋ณด๊ธฐ

"์‚ฌ๋žŒ"์„ ์˜ˆ๋กœ ๋“ค๋ฉด ๋ˆ„๊ตฌ๋“ ์ง€

"์ด๋ฆ„" = "ํ™๊ธธ๋™",

"์ƒ์ผ" = "๋ช‡ ์›” ๋ฉฐ์น " 

 

key                  value

people ์‚ฌ๋žŒ
baseball ์•ผ๊ตฌ

๋งต(Map)์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์ด๋ผ๋ฉด key๋กœ value๋ฅผ ์–ป์–ด๋‚ธ๋‹ค๋Š” ์ ์ด๋‹ค.

 

put

key์™€ value๊ฐ€ String ํ˜•ํƒœ์ธ HashMap์„ ๋งŒ๋“ค๊ณ  ์œ„์—์„œ ๋ณด์•˜๋˜ ์˜ˆ์ œ์˜ ํ•ญ๋ชฉ๊ฐ’๋“ค์„ ์ž…๋ ฅํ•ด ๋ณด์ž.

HashMap<String, String> map = new HashMap<>();
        map.put("people", "์‚ฌ๋žŒ");
        map.put("baseball", "์•ผ๊ตฌ");

key์™€ value๋Š” ์œ„ ์˜ˆ์ œ์—์„œ ๋ณด๋“ฏ์ด put ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ถ”๊ฐ€

 

get

key์— ํ•ด๋‹นํ•˜๋Š” value๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” get ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

System.out.println(map.get("people"));  // "์‚ฌ๋žŒ" ์ถœ๋ ฅ

map ๊ฐ์ฒด์˜ ํ‚ค(Key) "people"์— ๋Œ€์‘ํ•˜๋Š” ๊ฐ’(Value) "์‚ฌ๋žŒ"์ด ์ถœ๋ ฅ๋œ๋‹ค.

 

ํšŒ์› ์„œ๋น„์Šค

 

ํšŒ์› ์„œ๋น„์Šค ์ธํ„ฐํŽ˜์ด์Šค

๋”๋ณด๊ธฐ
package hello2.demo.member;

public interface MemberService {

    void join(Member member);

    Member findMember(Long memberId);
}

 

ํšŒ์› ์„œ๋น„์Šค ๊ตฌํ˜„์ฒด

 

๋”๋ณด๊ธฐ
package hello2.demo.member;

public class MemberServiceImpl implements MemberService {

    private final MemberRepository memberRepository = new MemoryMemberRepository();

    @Override
    public void join(Member member) {

    }

    @Override
    public Member findMember(Long memberId) {
        return memberRepository.findById(memberId);
    }
}

 

 

์ถœ์ฒ˜ : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

 

์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

์Šคํ”„๋ง ์ž…๋ฌธ์ž๊ฐ€ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋ฉด์„œ ์Šคํ”„๋ง์˜ ํ•ต์‹ฌ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ , ์Šคํ”„๋ง ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํ™•์‹คํžˆ ๋‹ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค., - ๊ฐ•์˜ ์†Œ๊ฐœ | ์ธํ”„๋Ÿฐ...

www.inflearn.com

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Spring > Spring ๊ธฐ๋ณธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 6. ์ฃผ๋ฌธ๊ณผ ํ• ์ธ ๋„๋ฉ”์ธ  (0) 2023.01.31
[์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 5. ํšŒ์› ๋„๋ฉ”์ธ ์‹คํ–‰๊ณผ ํ…Œ์ŠคํŠธ  (0) 2023.01.31
[์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 3. ํšŒ์› ๋„๋ฉ”์ธ ์„ค๊ณ„  (0) 2023.01.31
[์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 2. ์ข‹์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์˜ 5๊ฐ€์ง€ ์›์น™(SOLID)  (0) 2023.01.30
[์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 1. ์Šคํ”„๋ง์ด๋ž€? / ์ข‹์€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋ญ˜๊นŒ?  (0) 2023.01.30
'Spring/Spring ๊ธฐ๋ณธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 6. ์ฃผ๋ฌธ๊ณผ ํ• ์ธ ๋„๋ฉ”์ธ
  • [์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 5. ํšŒ์› ๋„๋ฉ”์ธ ์‹คํ–‰๊ณผ ํ…Œ์ŠคํŠธ
  • [์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 3. ํšŒ์› ๋„๋ฉ”์ธ ์„ค๊ณ„
  • [์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 2. ์ข‹์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์˜ 5๊ฐ€์ง€ ์›์น™(SOLID)
hello_u
hello_u
  • hello_u
    ๐Ÿ˜œ
    hello_u
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ˜œ (345)
      • Hardware (2)
        • BMC (2)
      • Spring (109)
        • Spring ์ž…๋ฌธ (20)
        • Spring ๊ธฐ๋ณธ (27)
        • Spring MVC (18)
        • Spring DB (22)
        • Spring JPA ๊ธฐ๋ณธ (16)
        • Spring JPA ํ™œ์šฉ (6)
      • Develop (27)
        • DB (8)
        • JAVA (4)
        • Web (2)
        • Python (7)
        • OSS (2)
        • Git (2)
        • API (2)
      • Algorithm (155)
        • CodeUp ๊ธฐ์ดˆ (44)
        • ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (64)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (4)
        • SWEA (30)
        • Softeer (10)
        • BOJ (2)
      • CS (9)
        • ์ปดํ“จํ„ฐ์ผ๋ฐ˜ (3)
        • ์šด์˜์ฒด์ œ (3)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
        • ์ •๋ณดํ†ต์‹  (1)
        • ์ž๋ฃŒ๊ตฌ์กฐ (1)
        • ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ (1)
        • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (0)
        • ์ตœ์‹  ๋””์ง€ํ„ธ, ์ผ๋ฐ˜์ƒ์‹ (0)
      • ์ž๊ฒฉ์ฆ (41)
        • ์ •๋ณด๋ณด์•ˆ๊ธฐ์‚ฌ (9)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (22)
        • ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 1๊ธ‰ (3)
        • SQLD (7)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
hello_u
[์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 4. ํšŒ์› ๋„๋ฉ”์ธ ๊ฐœ๋ฐœ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”