DevOps/Docker2024. 5. 17. 15:11[Docker] MySQL ๋กœ๊ทธ์ธ ์‹œ 'Access denied for user' ์—๋Ÿฌ

๋„์ปค๋ฅผ ํ†ตํ•ด MySQL ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋กœ๊ทธ์ธ์„ ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ 'Access denied for user'๋ผ๋Š” ์—๋Ÿฌ๊ฐ€ ๋œจ๋ฉฐ ์‹คํŒจํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๊ฒช๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฒ˜์Œ ์ ‘์†์„ ์‹œ๋„ํ•  ๋•Œ localhost๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ์„ ํ–ˆ์—ˆ๋Š”๋ฐ, ์•Œ๊ณ  ๋ณด๋‹ˆ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.์ผ๋ฐ˜์ ์œผ๋กœ ๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์œ„ํ•œ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋ฅผ ์„ค์ •ํ•˜๊ณ , ๊ฐ ์ปจํ…Œ์ด๋„ˆ์—๋Š” ๊ณ ์œ ํ•œ IP ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํžˆ localhost๋ฅผ ํ†ตํ•œ ์ ‘๊ทผ์œผ๋กœ๋Š” ๋„์ปค ๋‚ด ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•  ์ˆ˜ ์—†๊ณ  ๋„์ปค๊ฐ€ ๋ถ€์—ฌํ•œ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘์†ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ํ• ๋‹น๋œ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜์—ฌ์•ผ ํ•˜๋Š”๋ฐ, ์ผ๋ฐ˜์ ์œผ๋กœ MySQL ์ปจํ…Œ์ด๋„ˆ์—๋Š” 172.17.0.1์ด๋ผ๋Š” ์ฃผ์†Œ๊ฐ€ ๋ถ€์—ฌ๋˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.do..

Language & Framework/Spring2024. 5. 17. 14:10[JUnit 5] No ParameterResolver registered for parameter ์—๋Ÿฌ

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ๋’ค ์‹คํ–‰์„ ํ•˜๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.No ParameterResolver registered for parameter [repository.SolutionWriteRepository arg0] in constructor [public SolutionRepositoryTest(repository.SolutionWriteRepository,repository.EducatorWriteRepository,repository.LearnerWriteRepository)].org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [repository...

Language & Framework/Spring2023. 3. 22. 15:07[์Šคํ„ฐ๋””][์Šคํ”„๋ง ๋ถ€ํŠธ ํ•ต์‹ฌ ๊ฐ€์ด๋“œ] ์„œ๋น„์Šค, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ฐ์ฒด ํ…Œ์ŠคํŠธ

์„œ๋น„์Šค ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ํ™œ์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์ œ๊ณต ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ class ProductServiceTest { private ProductRepository productRepository = Mockito.mock(ProductRepository.class); private ProductServiceImpl productService; @BeforeEach public void setUpTest() { productService = new ProductServiceImpl(productRepository); } @Test void saveProduct() { Mockito.when(productRepository.save(any(Product.class))) .then(retu..

Language & Framework/Spring2023. 3. 22. 10:08[์Šคํ„ฐ๋””][์Šคํ”„๋ง ๋ถ€ํŠธ ํ•ต์‹ฌ ๊ฐ€์ด๋“œ] ์ปจํŠธ๋กค๋Ÿฌ ๊ฐ์ฒด ํ…Œ์ŠคํŠธ

์ปจํŠธ๋กค๋Ÿฌ์˜ ์—ญํ•  ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•„ ์š”์ฒญ์— ๋งž๋Š” ์„œ๋น„์Šค ์ปดํฌ๋„ŒํŠธ๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ด๊ฐ’์„ ๊ฐ€๊ณตํ•˜์—ฌ ์‘๋‹ต; ์›น์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์ด ์žˆ๋Š” ๋ชจ๋“ˆ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ @RestController @RequestMapping("/product") @RequiredArgsConstructor public class ProductController { private final ProductServiceImpl productService; @GetMapping() public ResponseEntity getProduct(Long number) { ProductResponseDto productResponseDto = productService.getProduct(number); return ResponseEn..

Language & Framework/Spring2023. 3. 22. 10:06[์Šคํ„ฐ๋””][์Šคํ”„๋ง ๋ถ€ํŠธ ํ•ต์‹ฌ ๊ฐ€์ด๋“œ] ๋ฐ˜๋ณต๋˜๋Š” ์ฝ”๋“œ์˜ ์ž‘์„ฑ์„ ์ƒ๋žตํ•˜๋Š” ๋ฐฉ๋ฒ• - ๋กฌ๋ณต

๋กฌ๋ณต(Lombok)์€ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์• ๋…ธํ…Œ์ด์…˜์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์• ๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋ฏ€๋กœ ๋ฐ˜๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๋กฌ๋ณต ์ ์šฉ @Data @NoArgsConstructor @AllArgsConstructor public class Member { private String memberId; private int money; } public class Member { private String memberId; private int money; public Member(String memberId, int money) { this.memberId = memberId; this.money = mo..

Language & Framework/Spring2023. 3. 22. 10:04[์Šคํ„ฐ๋””][์Šคํ”„๋ง ๋ถ€ํŠธ ํ•ต์‹ฌ ๊ฐ€์ด๋“œ] ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„

Spring Data JPA๋Š” JpaRepository๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋”์šฑ ์‰ฝ๊ฒŒ DB๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์Šคํ”„๋ง ๋ถ€ํŠธ๋กœ JpaRepository๋ฅผ ์ƒ์†๋ฐ›๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๊ธฐ์กด์˜ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์†์‰ฝ๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ ์—”ํ‹ฐํ‹ฐ๋ฅผ DB ํ…Œ์ด๋ธ”๊ณผ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด, Spring Data JPA๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(Repository)๋Š” ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์ƒ์„ฑํ•œ DB์— ์ ‘๊ทผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ ‘๊ทผํ•˜๋ ค๋Š” ํ…Œ์ด๋ธ”๊ณผ ๋งคํ•‘๋˜๋Š” ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , JpaRepository๋ฅผ ์ƒ์†๋ฐ›์œผ๋ฉด ๋œ๋‹ค. public interface ProductRepository extends JpaRepository { }..

Language & Framework/Spring2023. 3. 15. 09:10[์Šคํ„ฐ๋””][์Šคํ”„๋ง ๋ถ€ํŠธ ํ•ต์‹ฌ ๊ฐ€์ด๋“œ] ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ

์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์˜ ์—ญํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ DB ์‚ฌ์ด์—์„œ ์—”ํ‹ฐํ‹ฐ์™€ ๋ ˆ์ฝ”๋“œ์˜ ๊ดด๋ฆฌ๋ฅผ ํ•ด์†Œํ•˜๋Š” ๊ธฐ๋Šฅ ๊ฐ์ฒด๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๊ธฐ๋Šฅ ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๊ฐ€ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ๋“ค์–ด์˜ค๋ฉด JPA๋Š” ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด์˜ ๋งคํ•‘ ์ •๋ณด๋ฅผ DB์— ๋ฐ˜์˜ํ•˜๋Š” ์ž‘์—… ์ˆ˜ํ–‰ → ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๊ฐ€ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ๋“ค์–ด์™€ JPA์˜ ๊ด€๋ฆฌ ๋Œ€์ƒ์ด ๋˜๋Š” ์‹œ์ ์˜ ๊ฐ์ฒด๋ฅผ ์˜์† ๊ฐ์ฒด(Persistence Object)๋ผ๊ณ  ํ•จ. ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ ์„ธ์…˜ ๋‹จ์œ„์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ, ์ด๋Š” DB์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์„ธ์…˜์ด ์ƒ์„ฑ๋˜๋ฉด ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ  ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜๋ฉด ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋„ ์—†์–ด์ง์„ ์˜๋ฏธ ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ € ์—”ํ‹ฐํ‹ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด๋กœ, ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์™€ DB๋ฅผ ๋น„๊ตํ•˜๋ฉด์„œ ์‹ค์ œ DB์— CRUD ์ž‘์—… ์ˆ˜ํ–‰ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ถ”๊ฐ€ํ•ด์„œ ์˜์† ๊ฐ์ฒด๋กœ ๋งŒ๋“œ๋Š” ์ž‘์—… ์ˆ˜ํ–‰..

Language & Framework/Java2023. 3. 12. 11:22[์Šคํ„ฐ๋””][๋ชจ๋˜ ์ž๋ฐ” ์ธ ์•ก์…˜] 3.2 ์–ด๋””์—, ์–ด๋–ป๊ฒŒ ๋žŒ๋‹ค๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

๊ฒฐ๋ก ์ ์œผ๋กœ๋Š” ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋ผ๋Š” ๋ฌธ๋งฅ์—์„œ ๋žŒ๋‹ค ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค ํ•˜๋‚˜์˜ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์ •ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. public interface Predicate { boolean test(T t); } public interface Comparator { //java.util.Comparator int compare(T o1, T o2); } public interface Runnable { //java.lang.Runnable void run(); } ์ฐธ๊ณ ๋กœ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฒฝ์šฐ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ(์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์€ ํด๋ž˜์Šค๋ฅผ ๊ณ ๋ คํ•ด์„œ ๊ธฐ๋ณธ ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ”๋””๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฉ”์„œ๋“œ)๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋งŽ์€ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋”๋ผ๋„ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๊ฐ€ ์˜ค์ง ํ•˜๋‚˜๋ฉด ํ•จ์ˆ˜ํ˜• ์ธ..

image