[Sprint Mission2 1์ฐจ]

1. ๊ธฐ๋ณธ ์š”๊ตฌ์‚ฌํ•ญ

1-1. ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”

  • IntelliJ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ์˜ ์กฐ๊ฑด์œผ๋กœ Java ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    • IntelliJ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ ์ค‘ Java๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ๋กœ๋Š” ์Šคํ”„๋ฆฐํŠธ ๋ฏธ์…˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฒฝ๋กœ์™€ ๊ฐ™๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
      • ์˜ˆ๋ฅผ ๋“ค์–ด ์Šคํ”„๋ฆฐํŠธ ๋ฏธ์…˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฒฝ๋กœ๊ฐ€ /some/path/1-sprint-mission ์ด๋ผ๋ฉด:
        • Name์€ 1-sprint-mission
        • Location์€ /some/path ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    • Create Git Repository ์˜ต์…˜์€ ์ฒดํฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • Build system์€ Gradle์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Gradle DSL์€ Groovy๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • JDK 17์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • GroupId๋Š” com.sprint.mission๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ArtifactId๋Š” ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • .gitignore์— IntelliJ์™€ ๊ด€๋ จ๋œ ํŒŒ์ผ์ด ํ˜•์ƒ๊ด€๋ฆฌ ๋˜์ง€ ์•Š๋„๋ก .idea๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    ...
    .idea
    ...
    

1-2. ๋„๋ฉ”์ธ ๋ชจ๋ธ๋ง

  • ๋””์Šค์ฝ”๋“œ ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•ด๋ณด๋ฉด์„œ ๊ฐ ๋„๋ฉ”์ธ ๋ชจ๋ธ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋„์ถœํ•˜๊ณ , Java Class๋กœ ๊ตฌํ˜„ํ•˜์„ธ์š”.
    • ํŒจํ‚ค์ง€๋ช…: com.sprint.mission.discodeit.entity

    • ๋„๋ฉ”์ธ ๋ชจ๋ธ ์ •์˜
      • ๊ณตํ†ต
        • id: ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ id๋กœ UUID ํƒ€์ž…์œผ๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.
        • createdAt, updatedAt: ๊ฐ๊ฐ ๊ฐ์ฒด์˜ ์ƒ์„ฑ, ์ˆ˜์ • ์‹œ๊ฐ„์„ ์œ ๋‹‰์Šค ํƒ€์ž„์Šคํƒฌํ”„๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ํ•„๋“œ๋กœ Long ํƒ€์ž…์œผ๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.
      • User
      • Channel
      • Message
    • ์ƒ์„ฑ์ž
      • id๋Š” ์ƒ์„ฑ์ž์—์„œ ์ดˆ๊ธฐํ™”ํ•˜์„ธ์š”.
      • createdAt๋Š” ์ƒ์„ฑ์ž์—์„œ ์ดˆ๊ธฐํ™”ํ•˜์„ธ์š”.
      • id, createdAt, updatedAt์„ ์ œ์™ธํ•œ ํ•„๋“œ๋Š” ์ƒ์„ฑ์ž์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ์ดˆ๊ธฐํ™”ํ•˜์„ธ์š”.
    • ๋ฉ”์†Œ๋“œ
      • ๊ฐ ํ•„๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” Getter ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜์„ธ์š”.
      • ํ•„๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” update ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜์„ธ์š”.

1-3. ์„œ๋น„์Šค ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„

  • ๋„๋ฉ”์ธ ๋ชจ๋ธ ๋ณ„ CRUD(์ƒ์„ฑ, ์ฝ๊ธฐ, ๋ชจ๋‘ ์ฝ๊ธฐ, ์ˆ˜์ •, ์‚ญ์ œ) ๊ธฐ๋Šฅ์„ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์„ ์–ธํ•˜์„ธ์š”.
    • ์ธํ„ฐํŽ˜์ด์Šค ํŒจํ‚ค์ง€๋ช…: com.sprint.mission.discodeit.service
    • ์ธํ„ฐํŽ˜์ด์Šค ๋„ค์ด๋ฐ ๊ทœ์น™: [๋„๋ฉ”์ธ ๋ชจ๋ธ ์ด๋ฆ„]Service
  • ๋‹ค์Œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์„œ๋น„์Šค ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„์ฒด๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.
    • ํด๋ž˜์Šค ํŒจํ‚ค์ง€๋ช…: com.sprint.mission.discodeit.service.jcf
    • ํด๋ž˜์Šค ๋„ค์ด๋ฐ ๊ทœ์น™: JCF[์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„]
    • Java Collections Framework๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ(data)๋ฅผ final๋กœ ์„ ์–ธํ•˜๊ณ  ์ƒ์„ฑ์ž์—์„œ ์ดˆ๊ธฐํ™”ํ•˜์„ธ์š”.
    • data ํ•„๋“œ๋ฅผ ํ™œ์šฉํ•ด ์ƒ์„ฑ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์„ธ์š”.

1-4. ๋ฉ”์ธ ํด๋ž˜์Šค ๊ตฌํ˜„

  • ๋ฉ”์ธ ๋ฉ”์†Œ๋“œ๊ฐ€ ์„ ์–ธ๋œ JavaApplication ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๊ณ , ๋„๋ฉ”์ธ ๋ณ„ ์„œ๋น„์Šค ๊ตฌํ˜„์ฒด๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด์„ธ์š”.
    • ๋“ฑ๋ก
    • ์กฐํšŒ(๋‹จ๊ฑด, ๋‹ค๊ฑด)
    • ์ˆ˜์ •
    • ์ˆ˜์ •๋œ ๋ฐ์ดํ„ฐ ์กฐํšŒ
    • ์‚ญ์ œ
    • ์กฐํšŒ๋ฅผ ํ†ตํ•ด ์‚ญ์ œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

2. ์‹ฌํ™” ์š”๊ตฌ ์‚ฌํ•ญ

2-1. ์„œ๋น„์Šค ๊ฐ„ ์˜์กด์„ฑ ์ฃผ์ž…

  • ๋„๋ฉ”์ธ ๋ชจ๋ธ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ๊ณ ๋ คํ•ด์„œ ๊ฒ€์ฆํ•˜๋Š” ๋กœ์ง์„ ์ถ”๊ฐ€ํ•˜๊ณ , ํ…Œ์ŠคํŠธํ•ด๋ณด์„ธ์š”.
    • ํžŒํŠธ: Message๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์—ฐ๊ด€๋œ ๋„๋ฉ”์ธ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ

Leave a comment