[Sprint Mission2 2์ฐจ]
1. ๊ธฐ๋ณธ ์๊ตฌ์ฌํญ
1-1. File IO๋ฅผ ํตํ ๋ฐ์ดํฐ ์์ํ
- ๋ค์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๋น์ค ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ฅผ ์์ฑํ์ธ์.
- ํด๋์ค ํจํค์ง๋ช
:
com.sprint.mission.discodeit.service.file - ํด๋์ค ๋ค์ด๋ฐ ๊ท์น:
File[์ธํฐํ์ด์ค ์ด๋ฆ] - JCF ๋์ FileIO์ ๊ฐ์ฒด ์ง๋ ฌํ๋ฅผ ํ์ฉํด ๋ฉ์๋๋ฅผ ๊ตฌํํ์ธ์.
- ๊ฐ์ฒด ์ง๋ ฌํ/์ญ์ง๋ ฌํ ๊ฐ์ด๋
- ํด๋์ค ํจํค์ง๋ช
:
Application์์ ์๋น์ค ๊ตฌํ์ฒด๋ฅผFile*Service๋ก ๋ฐ๊พธ์ด ํ ์คํธํด๋ณด์ธ์.
1-2. ์๋น์ค ๊ตฌํ์ฒด ๋ถ์
JCF*Service๊ตฌํ์ฒด์File*Service๊ตฌํ์ฒด๋ฅผ ๋น๊ตํ์ฌ ๊ณตํต์ ๊ณผ ์ฐจ์ด์ ์ ๋ฐ๊ฒฌํด๋ณด์ธ์.- โ๋น์ฆ๋์ค ๋ก์งโ๊ณผ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ์๋ณํด๋ณด์ธ์.
- โ์ ์ฅ ๋ก์งโ๊ณผ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ์๋ณํด๋ณด์ธ์.
1-2. ๋ ํฌ์งํ ๋ฆฌ ์ค๊ณ ๋ฐ ๊ตฌํ
์ฐธ๊ณ : ๋ ํฌ์งํ ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ก์ง์ ๊ฐ์ง
- โ์ ์ฅ ๋ก์งโ๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ ๋๋ฉ์ธ ๋ชจ๋ธ ๋ณ ์ธํฐํ์ด์ค๋ก ์ ์ธํ์ธ์.
- ์ธํฐํ์ด์ค ํจํค์ง๋ช
:
com.sprint.mission.discodeit.repository - ์ธํฐํ์ด์ค ๋ค์ด๋ฐ ๊ท์น:
[๋๋ฉ์ธ ๋ชจ๋ธ ์ด๋ฆ]Repository
- ์ธํฐํ์ด์ค ํจํค์ง๋ช
:
- ๋ค์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ ํฌ์งํ ๋ฆฌ ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ฅผ ์์ฑํ์ธ์.
- ํด๋์ค ํจํค์ง๋ช
:
com.sprint.mission.discodeit.repository.jcf - ํด๋์ค ๋ค์ด๋ฐ ๊ท์น:
JCF[์ธํฐํ์ด์ค ์ด๋ฆ] - ๊ธฐ์กด์ ๊ตฌํํ
JCF*Service๊ตฌํ์ฒด์ โ์ ์ฅ ๋ก์งโ๊ณผ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ๊ตฌํํ์ธ์.
- ํด๋์ค ํจํค์ง๋ช
:
- ๋ค์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ ํฌ์งํ ๋ฆฌ ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ฅผ ์์ฑํ์ธ์.
- ํด๋์ค ํจํค์ง๋ช
:
com.sprint.mission.discodeit.repository.file - ํด๋์ค ๋ค์ด๋ฐ ๊ท์น:
File[์ธํฐํ์ด์ค ์ด๋ฆ] - ๊ธฐ์กด์ ๊ตฌํํ
File*Service๊ตฌํ์ฒด์ โ์ ์ฅ ๋ก์งโ๊ณผ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ๊ตฌํํ์ธ์.
- ํด๋์ค ํจํค์ง๋ช
:
2. ์ฌํ ์๊ตฌ ์ฌํญ
2-1. ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ฅผ ํตํ ๋ ์ด์ด ๊ฐ ์์กด์ฑ ์ฃผ์
- ๋ค์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๋น์ค ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ฅผ ์์ฑํ์ธ์.
- ํด๋์ค ํจํค์ง๋ช
:
com.sprint.mission.discodeit.service.basic - ํด๋์ค ๋ค์ด๋ฐ ๊ท์น:
Basic[์ธํฐํ์ด์ค ์ด๋ฆ] - ๊ธฐ์กด์ ๊ตฌํํ ์๋น์ค ๊ตฌํ์ฒด์ โ๋น์ฆ๋์ค ๋ก์งโ๊ณผ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ๊ตฌํํ์ธ์.
- ํ์ํ Repository ์ธํฐํ์ด์ค๋ฅผ ํ๋๋ก ์ ์ธํ๊ณ ์์ฑ์๋ฅผ ํตํด ์ด๊ธฐํํ์ธ์.
- โ์ ์ฅ ๋ก์งโ์ Repository ์ธํฐํ์ด์ค ํ๋๋ฅผ ํ์ฉํ์ธ์. (์ง์ ๊ตฌํํ์ง ๋ง์ธ์.)
- ํด๋์ค ํจํค์ง๋ช
:
-
Basic*Service๊ตฌํ์ฒด๋ฅผ ํ์ฉํ์ฌ ํ ์คํธํด๋ณด์ธ์.public class JavaApplication { static User setupUser(UserService userService) { User user = userService.create("woody", "woody@codeit.com", "woody1234"); return user; } static Channel setupChannel(ChannelService channelService) { Channel channel = channelService.create(ChannelType.PUBLIC, "๊ณต์ง", "๊ณต์ง ์ฑ๋์ ๋๋ค."); return channel; } static void messageCreateTest(MessageService messageService, Channel channel, User author) { Message message = messageService.create("์๋ ํ์ธ์.", channel.getId(), author.getId()); System.out.println("๋ฉ์์ง ์์ฑ: " + message.getId()); } public static void main(String[] args) { // ์๋น์ค ์ด๊ธฐํ // TODO Basic*Service ๊ตฌํ์ฒด๋ฅผ ์ด๊ธฐํํ์ธ์. UserService userService; ChannelService channelService; MessageService messageService; // ์ ์ User user = setupUser(userService); Channel channel = setupChannel(channelService); // ํ ์คํธ messageCreateTest(messageService, channel, user); } }JCF*Repository๊ตฌํ์ฒด๋ฅผ ํ์ฉํ์ฌ ํ ์คํธํด๋ณด์ธ์.File*Repository๊ตฌํ์ฒด๋ฅผ ํ์ฉํ์ฌ ํ ์คํธํด๋ณด์ธ์.
- ์ด์ ์ ์์ฑํ๋ ์ฝ๋(
JCF*Service๋๋File*Service)์ ๋น๊ตํด ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ์ ๋ฆฌํด๋ณด์ธ์.
Leave a comment