[Sprint Mission3]
1. ํ๋ก์ ํธ ๋ง์ผ์คํค
- Java ํ๋ก์ ํธ๋ฅผ Spring ํ๋ก์ ํธ๋ก ๋ง์ด๊ทธ๋ ์ด์
- ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ IoC Container์ ์์ํ๋๋ก ๋ฆฌํฉํ ๋ง
- ๋น์ฆ๋์ค ๋ก์ง ๊ณ ๋ํ
2. ๊ธฐ๋ณธ ์๊ตฌ์ฌํญ
2-1. Spring ํ๋ก์ ํธ ์ด๊ธฐํ
- Spring Initializr๋ฅผ ํตํด zip ํ์ผ์ ๋ค์ด๋ก๋ํ์ธ์.
- ๋น๋ ์์คํ ์ Gradle - Groovy๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ธ์ด๋ Java 17๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- Spring Boot์ ๋ฒ์ ์
3.4.0์ ๋๋ค. - GroupId๋
com.sprint.mission์ ๋๋ค. - ArtifactId์ Name์
discodeit์ ๋๋ค. - packaging ํ์์
Jar์ ๋๋ค - Dependency๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- Lombok
- Spring Web
- zip ํ์ผ์ ์์ถํด์ ํ๊ณ ์๋ ์งํ ์ค์ด๋ ํ๋ก์ ํธ์ ๋ถ์ฌ๋ฃ๊ธฐํ์ธ์. ์ผ๋ถ ํ์ผ์ ๋ฎ์ด์ฐ๊ธฐํ ์ ์์ต๋๋ค.
application.propertiesํ์ผ์yamlํ์์ผ๋ก ๋ณ๊ฒฝํ์ธ์.DiscodeitApplication์ main ๋ฉ์๋๋ฅผ ์คํํ๊ณ ๋ก๊ทธ๋ฅผ ํ์ธํด๋ณด์ธ์.
2-2. Bean ์ ์ธ ๋ฐ ํ ์คํธ
File*Repository๊ตฌํ์ฒด๋ฅผRepository์ธํฐํ์ด์ค์ Bean์ผ๋ก ๋ฑ๋กํ์ธ์.Basic*Service๊ตฌํ์ฒด๋ฅผService์ธํฐํ์ด์ค์ Bean์ผ๋ก ๋ฑ๋กํ์ธ์.JavaApplication์์ ํ ์คํธํ๋ ์ฝ๋๋ฅผDiscodeitApplication์์ ํ ์คํธํด๋ณด์ธ์.JavaApplication์main๋ฉ์๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฉ์๋๋ฅผDiscodeitApplicationํด๋์ค๋ก ๋ณต์ฌํ์ธ์.-
JavaApplication์main๋ฉ์๋์์ Service๋ฅผ ์ด๊ธฐํํ๋ ์ฝ๋๋ฅผ Spring Context๋ฅผ ํ์ฉํ์ฌ ๋์ฒดํ์ธ์.// JavaApplication public static void main(String[] args) { // ๋ ํฌ์งํ ๋ฆฌ ์ด๊ธฐํ // ... // ์๋น์ค ์ด๊ธฐํ UserService userService = new BasicUserService(userRepository); ChannelService channelService = new BasicChannelService(channelRepository); MessageService messageService = new BasicMessageService(messageRepository, channelRepository, userRepository); // ... } // DiscodeitApplication public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(DiscodeitApplication.class, args); // ์๋น์ค ์ด๊ธฐํ // TODO context์์ Bean์ ์กฐํํ์ฌ ๊ฐ ์๋น์ค ๊ตฌํ์ฒด ํ ๋น ์ฝ๋ ์์ฑํ์ธ์. UserService userService; ChannelService channelService; MessageService messageService; // ... } -
JavaApplication์main๋ฉ์๋์ ์ ์ , ํ ์คํธ ๋ถ๋ถ์ ์ฝ๋๋ฅผDiscodeitApplicationํด๋์ค๋ก ๋ณต์ฌํ์ธ์.public static void main(String[] args) { // ... // ์ ์ User user = setupUser(userService); Channel channel = setupChannel(channelService); // ํ ์คํธ messageCreateTest(messageService, channel, user); } -
์ฐธ๊ณ : ์ด์
JavaApplicationpublic 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); } }
2-3. Spring ํต์ฌ ๊ฐ๋ ์ดํดํ๊ธฐ
JavaApplication๊ณผDiscodeitApplication์์ Service๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ์์ ์ฐจ์ด์ ๋ํด ๋ค์์ ํค์๋๋ฅผ ์ค์ฌ์ผ๋ก ์ ๋ฆฌํด๋ณด์ธ์.- IoC Container
- Dependency Injection
- Bean
- ํด๋น ๋ด์ฉ์ PR์ ์ฒจ๋ถ
2-4. Lombok ์ ์ฉ
- ๋๋ฉ์ธ ๋ชจ๋ธ์ getter ๋ฉ์๋๋ฅผ
@Getter๋ก ๋์ฒดํด๋ณด์ธ์. Basic*Service์ ์์ฑ์๋ฅผ@RequiredArgsConstructor๋ก ๋์ฒดํด๋ณด์ธ์.
3. ์ถ๊ฐ ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ
3-1. ์๊ฐ ํ์ ๋ณ๊ฒฝํ๊ธฐ
- ์๊ฐ์ ๋ค๋ฃจ๋ ํ๋์ ํ์
์
Instant๋ก ํต์ผํฉ๋๋ค.- ๊ธฐ์กด์ ์ฌ์ฉํ๋
Long๋ณด๋ค ๊ฐ๋ ์ฑ์ด ๋ฐ์ด๋๋ฉฐ, ์๊ฐ๋(Time Zone) ๋ณํ๊ณผ ์ ๋ฐํ ์๊ฐ ์ฐ์ฐ์ด ๊ฐ๋ฅํด ํ์ฅ์ฑ์ด ๋์ต๋๋ค.
- ๊ธฐ์กด์ ์ฌ์ฉํ๋
3-2. ์๋ก์ด ๋๋ฉ์ธ ์ถ๊ฐํ๊ธฐ
-
๋๋ฉ์ธ ๋ชจ๋ธ ๊ฐ ์ฐธ์กฐ ๊ด๊ณ๋ฅผ ์ฐธ๊ณ ํ์ธ์.

- ๊ณตํต: ์์ ์ ์ํ ๋๋ฉ์ธ ๋ชจ๋ธ๊ณผ ๋์ผํ๊ฒ ๊ณตํต ํ๋(
id,createdAt,updatedAt)๋ฅผ ํฌํจํฉ๋๋ค. ReadStatus- ์ฌ์ฉ์๊ฐ ์ฑ๋ ๋ณ ๋ง์ง๋ง์ผ๋ก ๋ฉ์์ง๋ฅผ ์ฝ์ ์๊ฐ์ ํํํ๋ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋๋ค. ์ฌ์ฉ์๋ณ ๊ฐ ์ฑ๋์ ์ฝ์ง ์์ ๋ฉ์์ง๋ฅผ ํ์ธํ๊ธฐ ์ํด ํ์ฉํฉ๋๋ค.
UserStatus- ์ฌ์ฉ์ ๋ณ ๋ง์ง๋ง์ผ๋ก ํ์ธ๋ ์ ์ ์๊ฐ์ ํํํ๋ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋๋ค. ์ฌ์ฉ์์ ์จ๋ผ์ธ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํด ํ์ฉํฉ๋๋ค.
- ๋ง์ง๋ง ์ ์ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ํ์ฌ ๋ก๊ทธ์ธํ ์ ์ ๋ก ํ๋จํ ์ ์๋ ๋ฉ์๋๋ฅผ ์ ์ํ์ธ์.
- ๋ง์ง๋ง ์ ์ ์๊ฐ์ด ํ์ฌ ์๊ฐ์ผ๋ก๋ถํฐ 5๋ถ ์ด๋ด์ด๋ฉด ํ์ฌ ์ ์ ์ค์ธ ์ ์ ๋ก ๊ฐ์ฃผํฉ๋๋ค.
BinaryContent- ์ด๋ฏธ์ง, ํ์ผ ๋ฑ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋๋ค. ์ฌ์ฉ์์ ํ๋กํ ์ด๋ฏธ์ง, ๋ฉ์์ง์ ์ฒจ๋ถ๋ ํ์ผ์ ์ ์ฅํ๊ธฐ ์ํด ํ์ฉํฉ๋๋ค.
- ์์ ๋ถ๊ฐ๋ฅํ ๋๋ฉ์ธ ๋ชจ๋ธ๋ก ๊ฐ์ฃผํฉ๋๋ค. ๋ฐ๋ผ์
updatedAtํ๋๋ ์ ์ํ์ง ์์ต๋๋ค. User,Message๋๋ฉ์ธ ๋ชจ๋ธ๊ณผ์ ์์กด ๊ด๊ณ ๋ฐฉํฅ์ฑ์ ์ ๊ณ ๋ คํ์ฌid์ฐธ์กฐ ํ๋๋ฅผ ์ถ๊ฐํ์ธ์.
-
๊ฐ ๋๋ฉ์ธ ๋ชจ๋ธ ๋ณ ๋ ํฌ์งํ ๋ฆฌ ์ธํฐํ์ด์ค๋ฅผ ์ ์ธํ์ธ์.
- ๋ ํฌ์งํ ๋ฆฌ ๊ตฌํ์ฒด(File, JCF)๋ ์์ง ๊ตฌํํ์ง ๋ง์ธ์. ์ด์ด์ง๋ ์๋น์ค ๊ณ ๋ํ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ๋ ํฌ์งํ ๋ฆฌ ์ธํฐํ์ด์ค์ ๋ฉ์๋๊ฐ ์ถ๊ฐ๋ ์ ์์ด์.
3-3. DTO ํ์ฉํ๊ธฐ
1) UserService ๊ณ ๋ํ
- ๊ณ ๋ํ
create- ์ ํ์ ์ผ๋ก ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ด ๋ฑ๋กํ ์ ์์ต๋๋ค.
- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
- ์ ์ ๋ฅผ ๋ฑ๋กํ๊ธฐ ์ํด ํ์ํ ํ๋ผ๋ฏธํฐ, ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๋ฑ๋กํ๊ธฐ ์ํด ํ์ํ ํ๋ผ๋ฏธํฐ ๋ฑ
username๊ณผemail์ ๋ค๋ฅธ ์ ์ ์ ๊ฐ์ผ๋ฉด ์๋ฉ๋๋ค.UserStatus๋ฅผ ๊ฐ์ด ์์ฑํฉ๋๋ค.
find,findAll- DTO๋ฅผ ํ์ฉํ์ฌ:
- ์ฌ์ฉ์์ ์จ๋ผ์ธ ์ํ ์ ๋ณด๋ฅผ ๊ฐ์ด ํฌํจํ์ธ์.
- ํจ์ค์๋ ์ ๋ณด๋ ์ ์ธํ์ธ์.
- DTO๋ฅผ ํ์ฉํ์ฌ:
update- ์ ํ์ ์ผ๋ก ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๋์ฒดํ ์ ์์ต๋๋ค.
- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
- ์์ ๋์ ๊ฐ์ฒด์ id ํ๋ผ๋ฏธํฐ, ์์ ํ ๊ฐ ํ๋ผ๋ฏธํฐ
delete- ๊ด๋ จ๋ ๋๋ฉ์ธ๋ ๊ฐ์ด ์ญ์ ํฉ๋๋ค.
BinaryContent(ํ๋กํ),UserStatus
- ๊ด๋ จ๋ ๋๋ฉ์ธ๋ ๊ฐ์ด ์ญ์ ํฉ๋๋ค.
- ์์กด์ฑ
-
๊ฐ์ ๋ ์ด์ด ๊ฐ ์์กด์ฑ ์ฃผ์ ์ ์ํ ์ฐธ์กฐ ๋ฐฉ์ง๋ฅผ ์ํด ์ง์ํฉ๋๋ค. ๋ค๋ฅธ Service ๋์ ํ์ํ Repository ์์กด์ฑ์ ์ฃผ์ ํด๋ณด์ธ์.

-
2) AuthService ๊ตฌํ
loginusername,password๊ณผ ์ผ์นํ๋ ์ ์ ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.- ์ผ์นํ๋ ์ ์ ๊ฐ ์๋ ๊ฒฝ์ฐ: ์ ์ ์ ๋ณด ๋ฐํ
- ์ผ์นํ๋ ์ ์ ๊ฐ ์๋ ๊ฒฝ์ฐ: ์์ธ ๋ฐ์
- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
- ์์กด์ฑ
-
๊ฐ์ ๋ ์ด์ด ๊ฐ ์์กด์ฑ ์ฃผ์ ์ ์ํ ์ฐธ์กฐ ๋ฐฉ์ง๋ฅผ ์ํด ์ง์ํฉ๋๋ค. ๋ค๋ฅธ Service ๋์ ํ์ํ Repository ์์กด์ฑ์ ์ฃผ์ ํด๋ณด์ธ์.

-
3) ChannelService ๊ณ ๋ํ
- ๊ณ ๋ํ
create- PRIVATE ์ฑ๋๊ณผ PUBLIC ์ฑ๋์ ์์ฑํ๋ ๋ฉ์๋๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค.
- ๋ถ๋ฆฌ๋ ๊ฐ๊ฐ์ ๋ฉ์๋๋ฅผ DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
- PRIVATE ์ฑ๋์ ์์ฑํ ๋:
- ์ฑ๋์ ์ฐธ์ฌํ๋
User์ ์ ๋ณด๋ฅผ ๋ฐ์User๋ณReadStatus์ ๋ณด๋ฅผ ์์ฑํฉ๋๋ค. name๊ณผdescription์์ฑ์ ์๋ตํฉ๋๋ค.
- ์ฑ๋์ ์ฐธ์ฌํ๋
- PUBLIC ์ฑ๋์ ์์ฑํ ๋์๋ ๊ธฐ์กด ๋ก์ง์ ์ ์งํฉ๋๋ค.
find- DTO๋ฅผ ํ์ฉํ์ฌ:
- ํด๋น ์ฑ๋์ ๊ฐ์ฅ ์ต๊ทผ ๋ฉ์์ง์ ์๊ฐ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
- PRIVATE ์ฑ๋์ธ ๊ฒฝ์ฐ ์ฐธ์ฌํ
User์id์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
- DTO๋ฅผ ํ์ฉํ์ฌ:
findAll- DTO๋ฅผ ํ์ฉํ์ฌ:
- ํด๋น ์ฑ๋์ ๊ฐ์ฅ ์ต๊ทผ ๋ฉ์์ง์ ์๊ฐ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
- PRIVATE ์ฑ๋์ธ ๊ฒฝ์ฐ ์ฐธ์ฌํ
User์id์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
- ํน์
User๊ฐ ๋ณผ ์ ์๋ Channel ๋ชฉ๋ก์ ์กฐํํ๋๋ก ์กฐํ ์กฐ๊ฑด์ ์ถ๊ฐํ๊ณ , ๋ฉ์๋ ๋ช ์ ๋ณ๊ฒฝํฉ๋๋ค.findAllByUserId - PUBLIC ์ฑ๋ ๋ชฉ๋ก์ ์ ์ฒด ์กฐํํฉ๋๋ค.
- PRIVATE ์ฑ๋์ ์กฐํํ
User๊ฐ ์ฐธ์ฌํ ์ฑ๋๋ง ์กฐํํฉ๋๋ค.
- DTO๋ฅผ ํ์ฉํ์ฌ:
update- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
- ์์ ๋์ ๊ฐ์ฒด์ id ํ๋ผ๋ฏธํฐ, ์์ ํ ๊ฐ ํ๋ผ๋ฏธํฐ
- PRIVATE ์ฑ๋์ ์์ ํ ์ ์์ต๋๋ค.
- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
delete- ๊ด๋ จ๋ ๋๋ฉ์ธ๋ ๊ฐ์ด ์ญ์ ํฉ๋๋ค.
Message,ReadStatus
- ๊ด๋ จ๋ ๋๋ฉ์ธ๋ ๊ฐ์ด ์ญ์ ํฉ๋๋ค.
- ์์กด์ฑ
- ๊ฐ์ ๋ ์ด์ด ๊ฐ ์์กด์ฑ ์ฃผ์ ์ ์ํ ์ฐธ์กฐ ๋ฐฉ์ง๋ฅผ ์ํด ์ง์ํฉ๋๋ค. ๋ค๋ฅธ Service ๋์ ํ์ํ Repository ์์กด์ฑ์ ์ฃผ์ ํด๋ณด์ธ์.

4) MessageService ๊ณ ๋ํ
- ๊ณ ๋ํ
create- ์ ํ์ ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ์ฒจ๋ถํ์ผ์ ๊ฐ์ด ๋ฑ๋กํ ์ ์์ต๋๋ค.
- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
findAll- ํน์
Channel์ Message ๋ชฉ๋ก์ ์กฐํํ๋๋ก ์กฐํ ์กฐ๊ฑด์ ์ถ๊ฐํ๊ณ , ๋ฉ์๋ ๋ช ์ ๋ณ๊ฒฝํฉ๋๋ค.findallByChannelId
- ํน์
update- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
- ์์ ๋์ ๊ฐ์ฒด์ id ํ๋ผ๋ฏธํฐ, ์์ ํ ๊ฐ ํ๋ผ๋ฏธํฐ
- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
delete- ๊ด๋ จ๋ ๋๋ฉ์ธ๋ ๊ฐ์ด ์ญ์ ํฉ๋๋ค.
- ์ฒจ๋ถํ์ผ(
BinaryContent)
- ์ฒจ๋ถํ์ผ(
- ๊ด๋ จ๋ ๋๋ฉ์ธ๋ ๊ฐ์ด ์ญ์ ํฉ๋๋ค.
- ์์กด์ฑ
- ๊ฐ์ ๋ ์ด์ด ๊ฐ ์์กด์ฑ ์ฃผ์ ์ ์ํ ์ฐธ์กฐ ๋ฐฉ์ง๋ฅผ ์ํด ์ง์ํฉ๋๋ค. ๋ค๋ฅธ Service ๋์ ํ์ํ Repository ์์กด์ฑ์ ์ฃผ์ ํด๋ณด์ธ์.

5) ReadStatusService ๊ตฌํ
create- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
- ๊ด๋ จ๋
Channel์ด๋User๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ์์ธ๋ฅผ ๋ฐ์์ํต๋๋ค. - ๊ฐ์
Channel๊ณผUser์ ๊ด๋ จ๋ ๊ฐ์ฒด๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ฉด ์์ธ๋ฅผ ๋ฐ์์ํต๋๋ค.
findid๋ก ์กฐํํฉ๋๋ค.
findAllByUserIduserId๋ฅผ ์กฐ๊ฑด์ผ๋ก ์กฐํํฉ๋๋ค.
update- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
- ์์ ๋์ ๊ฐ์ฒด์
idํ๋ผ๋ฏธํฐ, ์์ ํ ๊ฐ ํ๋ผ๋ฏธํฐ
- ์์ ๋์ ๊ฐ์ฒด์
- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
deleteid๋ก ์ญ์ ํฉ๋๋ค.
- ์์กด์ฑ
- ๊ฐ์ ๋ ์ด์ด ๊ฐ ์์กด์ฑ ์ฃผ์ ์ ์ํ ์ฐธ์กฐ ๋ฐฉ์ง๋ฅผ ์ํด ์ง์ํฉ๋๋ค. ๋ค๋ฅธ Service ๋์ ํ์ํ Repository ์์กด์ฑ์ ์ฃผ์ ํด๋ณด์ธ์.

6) UserStatusService ๊ณ ๋ํ
create- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
- ๊ด๋ จ๋
User๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ์์ธ๋ฅผ ๋ฐ์์ํต๋๋ค. - ๊ฐ์
User์ ๊ด๋ จ๋ ๊ฐ์ฒด๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ฉด ์์ธ๋ฅผ ๋ฐ์์ํต๋๋ค.
findid๋ก ์กฐํํฉ๋๋ค.
findAll- ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ์กฐํํฉ๋๋ค.
update- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
- ์์ ๋์ ๊ฐ์ฒด์
idํ๋ผ๋ฏธํฐ, ์์ ํ ๊ฐ ํ๋ผ๋ฏธํฐ
- ์์ ๋์ ๊ฐ์ฒด์
- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
updateByUserIduserId๋ก ํน์ User์ ๊ฐ์ฒด๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
deleteid๋ก ์ญ์ ํฉ๋๋ค.
- ์์กด์ฑ
- ๊ฐ์ ๋ ์ด์ด ๊ฐ ์์กด์ฑ ์ฃผ์ ์ ์ํ ์ฐธ์กฐ ๋ฐฉ์ง๋ฅผ ์ํด ์ง์ํฉ๋๋ค. ๋ค๋ฅธ Service ๋์ ํ์ํ Repository ์์กด์ฑ์ ์ฃผ์ ํด๋ณด์ธ์.

7) BinaryContentService ๊ตฌํ
create- DTO๋ฅผ ํ์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค.
findid๋ก ์กฐํํฉ๋๋ค.
findAllByIdInid๋ชฉ๋ก์ผ๋ก ์กฐํํฉ๋๋ค.
deleteid๋ก ์ญ์ ํฉ๋๋ค.
- ์์กด์ฑ
- ๊ฐ์ ๋ ์ด์ด ๊ฐ ์์กด์ฑ ์ฃผ์ ์ ์ํ ์ฐธ์กฐ ๋ฐฉ์ง๋ฅผ ์ํด ์ง์ํฉ๋๋ค. ๋ค๋ฅธ Service ๋์ ํ์ํ Repository ์์กด์ฑ์ ์ฃผ์ ํด๋ณด์ธ์.

8) ์๋ก์ด ๋๋ฉ์ธ Repository ๊ตฌํ์ฒด ๊ตฌํ
- ์ง๊ธ๊น์ง ์ธํฐํ์ด์ค๋ก ์ค๊ณํ ๊ฐ๊ฐ์ Repository๋ฅผ JCF, File๋ก ๊ฐ๊ฐ ๊ตฌํํ์ธ์.

4. ์ฌํ ์๊ตฌ์ฌํญ
4-1. Bean ๋ค๋ฃจ๊ธฐ
-
Repository ๊ตฌํ์ฒด ์ค์ ์ด๋ค ๊ตฌํ์ฒด๋ฅผ Bean์ผ๋ก ๋ฑ๋กํ ์ง Java ์ฝ๋์ ๋ณ๊ฒฝ ์์ด
application.yaml์ค์ ๊ฐ์ ํตํด ์ ์ดํด๋ณด์ธ์.# application.yaml discodeit: repository: type: jcf # jcf | filediscodeit.repository.type์ค์ ๊ฐ์ ๋ฐ๋ผ Repository ๊ตฌํ์ฒด๊ฐ ์ ํด์ง๋๋ค.- ๊ฐ์ด
jcf์ด๊ฑฐ๋ ์์ผ๋ฉด JCF*Repository ๊ตฌํ์ฒด๊ฐ Bean์ผ๋ก ๋ฑ๋ก๋์ด์ผ ํฉ๋๋ค. - ๊ฐ์ด
file์ด๋ฉด File*Repository ๊ตฌํ์ฒด๊ฐ Bean์ผ๋ก ๋ฑ๋ก๋์ด์ผ ํฉ๋๋ค.
- ๊ฐ์ด
-
File*Repository ๊ตฌํ์ฒด์ ํ์ผ์ ์ ์ฅํ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ฅผ
application.yaml์ค์ ๊ฐ์ ํตํด ์ ์ดํด๋ณด์ธ์.# application.yaml discodeit: repository: type: jcf # jcf | file file-directory: .discodeit
Leave a comment