Posts
Q&A
ํ ์คํธ ์ฝ๋ ์์ฑ์ ๋ํ ์ง๋ฌธ
#๋ ํ์งํ ๋ฆฌ package groupware.board.repository; import groupware.board.domain.Category; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import javax.annotation.PostConstruct; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Repository public class CategoryRepository { private static final Map store = new HashMap(); private static Long sequence = 0L; public Map getStore() { return store; } public Long getSequence() { return ++sequence; } public void save(Category category) { store.put(category.getId(), category); } /** * sample data */ @PostConstruct public void init() { save(new Category(++sequence, "SampleCategory1")); save(new Category(++sequence, "SampleCategory2")); } /** * for test */ public void clear() { store.clear(); } }#์๋น์ค package groupware.board.service; import groupware.board.domain.Category; import groupware.board.repository.CategoryRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service @RequiredArgsConstructor public class CategoryServiceImpl implements CategoryService { private final CategoryRepository categoryRepository; public Category save(Category category) { category.setId(categoryRepository.getSequence()); categoryRepository.save(category); return category; } public List findAll() { return new ArrayList(categoryRepository.getStore().values()); } public Category findById(Long id) { List categories = findAll(); for (Category category : categories) { if (category.getId().equals(id)) { return category; } } return null; } /** * for test */ public void clearStore() { categoryRepository.clear(); } }#ํ ์คํธ package groupware.board.service; import groupware.board.domain.Category; import org.junit.jupiter.api.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; import static org.assertj.core.api.Assertions.*; @SpringBootTest class CategoryServiceImplTest { @Autowired CategoryService categoryService; @Test void init() { //given //when List categories = categoryService.findAll(); //then assertThat(categories.size()).isEqualTo(2); assertThat(categories.get(0).getCategoryName()).isEqualTo("SampleCategory1"); assertThat(categories.get(1).getCategoryName()).isEqualTo("SampleCategory2"); } @Test void findById() { //given //when Category findCategory1 = categoryService.findById(1L); Category findCategory2 = categoryService.findById(2L); //then assertThat(findCategory1.getCategoryName()).isEqualTo("SampleCategory1"); assertThat(findCategory2.getCategoryName()).isEqualTo("SampleCategory2"); } @Test void save() { //given Category newCategory = categoryService.save(new Category("newCategory")); //when Category savedCategory = categoryService.findById(newCategory.getId()); //then assertThat(savedCategory).isEqualTo(newCategory); } }๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ณต์ตํ๋ ๊ฒธ DB ์ฐ๊ฒฐ ํ๊ธฐ ์ ์ ๊ฐ์ฌ๋์ด ํ์ ๊ฒ์ฒ๋ผ map์ผ๋ก ์ ์ฅ์๋ฅผ ๋ง๋ค๊ณ , ๋์ ์ ๋ ์๋น์ค๊น์ง ์ถ๊ฐํด์ ํด๋ดค๋๋ฐ..๋ ํ์งํ ๋ฆฌ์ ์๋ ๋ฉ์๋๋ค์ ์๋น์ค๋ก ์ฎ๊ธฐ๋ ค๋ ์ค๋ณต์ด ์๊ธฐ๊ณ ์ข ์ ๋งคํด์ง ๊ฒ ๊ฐ์์ ์ฝ๋์ ๋ํ ํผ๋๋ฐฑ๋ ํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค..ํ ์คํธ๋ ์ ์ฒด, ๊ฐ๊ฐ ๋๋ ค๋ ๋ชจ๋ ์ฑ๊ณต์ด๊ธด ํ๋ฐ..์ค์ค๋ก ์ ๋๋ก ์์ฑํ ๊ฒ์ธ์ง ํ์ ์ด ์๋ญ๋๋ค ใ ์ง๋ฌธ์ ๋ช ํํ๊ฒ ๋๋ฆฌ์๋ฉด,init() ๋ฉ์๋๋ฅผ ํ ์คํธ ํ ํ์์ฑ์ด ์๋์งfindById() ๋ฉ์๋๋ฅผ ํ ์คํธํ ๋, ์ ๋ ์ด๊ธฐ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ์คํธํ์๋๋ฐ ์๋ก์ด ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ถ๊ฐํ ๋ค์ ํ ์คํธํด์ผํ๋์ง2๋ฒ์ ๋๋ต์ด yes ๋ผ๋ฉด findById() ํ ์คํธ๋ save()๊ฐ ์ ์ ๋์ํ๋ค๋ ๊ฐ์ ํ์ ์ด๋ฃจ์ด์ง๋ ๊ฑด์ง๊ถ๊ธํฉ๋๋ค..ํ ์คํธ ์ฝ๋๋ ๋ ๋ฆฝ์ ์ผ๋ก ์์ฑํด์ผ ํ๋ค๊ณ ๋ฐฐ์ ๋๋ฐ ์ ๊ฐ ์ดํด๊ฐ ๋ถ์กฑํ์ง ๊ฐ์ฌ๋์ด ํ์ค ๋ ์ดํด๊ฐ ์ ๋๋ ๊ฒ ๊ฐ์๋๋ฐ ๊ฐ์๊ธฐ ๋๋ฌด ํท๊ฐ๋ฆฝ๋๋ค
- Likes
- 0
- Comments
- 2
- Viewcount
- 384
Q&A
Connection is closed ์๋ฌ๋ฐ์(ํด๊ฒฐ)
๊ฐ์ฌํฉ๋๋ค! ๋๋ถ์ ํด๊ฒฐํ์ด์
- Likes
- 2
- Comments
- 4
- Viewcount
- 6.7K




