Spring ๐ŸŒฑ 13

๋นŒ๋” ํŒจํ„ด(Builder Pattern)

Entity, Dto์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” @Builder ์–ด๋…ธํ…Œ์ด์…˜์˜ ์—ญํ• ๊ณผ ์˜๋ฏธ๋ฅผ ํ™•์‹คํžˆ ์ดํ•ดํ•˜๊ณ  ์‹ถ์–ด ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ๋นŒ๋” ํŒจํ„ด - ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค. ์ƒ์„ฑ์ž์—์„œ ์ธ์ž๊ฐ€ ๋งŽ์„ ๋•Œ ๋นŒ๋” ํŒจํ„ด์˜ ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. - ํด๋ž˜์Šค๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ํ•„์ˆ˜๋กœ ๋ฐ›์•„์•ผ ํ•  ์ธ์ž์™€ ์„ ํƒ์ ์œผ๋กœ ๋ฐ›์•„์•ผ ํ•  ์ธ์ž๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋””์ž์ธ ํŒจํ„ด์€ ์ ์ธต์  ์ƒ์„ฑ์ž ํŒจํ„ด, ์ž๋ฐ” ๋นˆ์ฆˆ ํŒจํ„ด, ๋นŒ๋” ํŒจํ„ด์œผ๋กœ ์ด 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋จผ์ € ์ ์ธต์  ์ƒ์„ฑ์ž ํŒจํ„ด๋ถ€ํ„ฐ ์•Œ์•„๋ณด์ž ์ ์ธต์  ์ƒ์„ฑ์ž ํŒจํ„ด - ์ƒ์„ฑ์ž๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. - User ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ, ํ•„์ˆ˜ ๊ฐ’์€ id, userName์ด๋ฉฐ ์„ ํƒ ๊ฐ’์€ nickName, age๋‹ค. public class User { pri..

Spring ๐ŸŒฑ 2023.07.17

[Spring] ์˜์กด์„ฑ ์ฃผ์ž…(DI)์ด๋ž€?

1. ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ž€? 2. ์˜์กด์„ฑ ์ฃผ์ž…์˜ ํ•„์š”์„ฑ 3. ์˜์กด์„ฑ ์ฃผ์ž… ์˜ˆ 4. ์˜์กด์„ฑ ์ฃผ์ž…์˜ ์žฅ์  5. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ์Šคํ”„๋ง ๋นˆ 6. ์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ž€? - ๊ฐ์ฒด ๊ฐ„ ์˜์กด๊ด€๊ณ„๋ฅผ ์™ธ๋ถ€์—์„œ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ - ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ(=IoC ์ปจํ…Œ์ด๋„ˆ)์— ์ •์˜๋œ ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋ก ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ์˜์กด๊ด€๊ณ„๋ฅผ ์ž๋™์œผ๋กœ ์ฃผ์ž…ํ•ด์ค€๋‹ค. - ๊ฐ์ฒด์˜ ๋Œ€ํ•œ ์ œ์–ด ๊ถŒํ•œ์€ ๋ชจ๋‘ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์œ„์ž„๋˜๋ฉฐ, ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์—์„œ๋Š” ์ธ์Šคํ„ด์Šค๋“ค์„ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค์ง€ ์•Š๊ณ , ๋‹จ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•˜๋Š” ์‹ฑ๊ธ€ํ†ค ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์˜ ํšจ์œจ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์˜ ํ•„์š”์„ฑ 1. ํด๋ž˜์Šค๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋Š์Šจํ•ด์ง„๋‹ค. ( = ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ๋ณ€๊ฒฝ๋  ํ•„์š”์„ฑ์ด ์ ์–ด์ง„๋‹ค) 2. ์‹ฑ๊ธ€ํ†ค์˜ ๊ฐ์ฒด ๊ณต์šฉ์œผ๋กœ ์‚ฌ..

Spring ๐ŸŒฑ 2023.07.13

[Spring] JUnit5์™€ assertJ๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ

* JUnit5๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ์ข‹์€ ํ…Œ์ŠคํŠธ์˜ ์กฐ๊ฑด ํ…Œ์ŠคํŠธ๋Š” ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค. ํ…Œ์ŠคํŠธ ์ˆœ์„œ์— ์˜์กด๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๋ฉด ์ข‹์€ ํ…Œ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋‹ค! given, when, then์„ ์ด์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ธ๋‹ค. 1. ๊ฐ’์˜ ๋น„๊ต๋กœ ๊ธฐ๋Šฅ์ด ์ •์ƒ๋™์ž‘ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๊ธฐ assertThat(๋น„๊ต๋Œ€์ƒ).isEqualTo(์‚ฌ์šฉ์ž๊ฐ€ ์˜ˆ์ƒํ•˜๋Š” ๊ฐ’)์œผ๋กœ ํšŒ์›์ด ์ž˜ ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ๊ฒ€์ฆํ•œ๋‹ค. MemoryMemberRepository.java @Test public void save() { Member member = new Member(); member.setName("spring"); repository.save(member); Member result = repository.findById(member.g..

Spring ๐ŸŒฑ 2023.06.19