๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

โญ Personal_Study/Spring10

์›น์†Œ์ผ“์„ ํ™œ์šฉํ•ด ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ตฌํ˜„ํ•˜๊ธฐ - Spring ์›น์†Œ์ผ“์„ ํ™œ์šฉํ•ด ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ตฌํ˜„ํ•˜๊ธฐ - Spring ์›น์†Œ์ผ“์„ ํ™œ์šฉํ•ด ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ตฌํ˜„ํ•˜๊ธฐ - Springboot ์›น์†Œ์ผ“์„ ํ™œ์šฉํ•ด ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ตฌํ˜„ํ•˜๊ธฐ - React ์›น์†Œ์ผ“์ด๋ž€ โœ” WebSocket์€ ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์˜ ์ผ์ข…์ด๋‹ค. WebSocket์€ ๊ธฐ๋ณธ์ ์œผ๋กœ TCP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ•ธ๋“œ์‰์ดํฌ ๊ณผ์ •์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•œ ํ›„, ์ง€์†์ ์ธ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋œ๋‹ค. ์ฃผ๋กœ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…, ๊ฒŒ์ž„ ๋“ฑ์— ๋งŽ์ด ์“ฐ์ธ๋‹ค ์›น์†Œ์ผ“์˜ ์žฅ์  ๋ฐ ํŠน์ง• (vs HTTP) โœ” ์›น์†Œ์ผ“์˜ ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ๋Š” ์ง€์†์ ์ธ ์—ฐ๊ฒฐ์ด๋‹ค. ์›น์†Œ์ผ“์˜ ์žฅ์ ๊ณผ ํŠน์ง•์€ HTTP์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ๋ช…ํ™•ํ•ด์ง„๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” HTTP๋Š” stateless, connectionless๋ผ๋Š” ํŠน์ง•์œผ๋กœ ์ธํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ .. 2023. 4. 23.
JPA์—์„œ Wrapper class vs primitive type JPA์—์„œ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ Wrapper class๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ primitive type์„ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ? @Entity public class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int stock; // Integer? int? } ๋‹ค์Œ ์ƒํ™ฉ์—์„œ stock์€ int๋กœ ์ƒ์„ฑํ•ด์•ผ๋ ๊นŒ Integer๋กœ ์ƒ์„ฑํ•ด์•ผ๋ ๊นŒ? 1. primitive type & Wrapper Class ์›์‹œ ํƒ€์ž…(primitive type) โœ” Java์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… โœ” int, byte, short, long, float, double, boole.. 2023. 4. 17.
Page ๊ฐ์ฒด์— Collections ๋ฉ”์„œ๋“œ๋ฅผ ์ ์šฉํ–ˆ์„ ๋•Œ UnsupportedOperationException ๋ฐœ์ƒ ์—๋Ÿฌ JPA์˜ Page๋Š” immutableํ•œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Collections.shuffle๋“ฑ ์›๋ณธ ๊ฐ์ฒด์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ ์šฉํ•  ๊ฒฝ์šฐ UnsupportedOperationException ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค ๋ถ„๋ช…ํžˆ ํƒ€์ž…๋„ List๊ณ  ๊ฐ’๋„ ์ถœ๋ ฅ๋˜๋Š”๋ฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ด ์›์ธ์„ ์ฐพ์•„๋‚ด๊ธฐ๊นŒ์ง€ ์ œ๋ฒ• ๊ณ ์ƒํ–ˆ์—ˆ๋‹ค. Page ๊ฐ์ฒด์— ์›๋ณธ ๊ฐ’์„ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ ์šฉํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ ๋‹ค์‹œ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋นผ์„œ List๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋ฉด mutableํ•œ list๊ฐ€ ๋˜์–ด ๋ฉ”์„œ๋“œ๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 2023. 3. 30.
๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ 1. ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ ์‹œ์ž‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปค๋„ฅ์…˜ ํ’€, ๋„คํŠธ์›Œํฌ ์†Œ์ผ“ ๋“ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์‹œ์ ์— ํ•„์š”ํ•œ ์—ฐ๊ฒฐ์„ ๋ฏธ๋ฆฌ ํ•ด๋‘๊ณ , ์ข…๋ฃŒ ์‹œ์ ์— ์—ฐ๊ฒฐ์„ ๋ชจ๋‘ ์ข…๋ฃŒํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ๊ฐ์ฒด์˜ ์ดˆ๊ธฐํ™”์™€ ์ข…๋ฃŒ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค ์˜ˆ์ œ ์ฝ”๋“œ // NetworkClient.java public class NetworkClient { private String url; public NetworkClient() { System.out.println("์ƒ์„ฑ์ž ํ˜ธ์ถœ, url = " + url); connect(); call("์ดˆ๊ธฐํ™” ์—ฐ๊ฒฐ ๋ฉ”์‹œ์ง€"); } public void setUrl(String url) { this.url = url; } // ์„œ๋น„์Šค ์‹œ์ž‘์‹œ ํ˜ธ์ถœ public void connect() { .. 2023. 1. 10.
์˜์กด๊ด€๊ณ„ ์ž๋™ ์ฃผ์ž… ์˜์กด๊ด€๊ณ„ ์ž๋™ ์ฃผ์ž… 1. ๋‹ค์–‘ํ•œ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž… ๋ฐฉ๋ฒ• ์ƒ์„ฑ์ž ์ฃผ์ž…(constructor) โœ” ์ˆ˜์ •์ž ์ฃผ์ž…(setter) ํ•„๋“œ ์ฃผ์ž… ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ ์ฃผ์ž… 1. ์ƒ์„ฑ์ž ์ฃผ์ž… ์ƒ์„ฑ์ž ํ˜ธ์ถœ ์‹œ์ ์— ๋”ฑ 1๋ฒˆ๋งŒ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ ๋ณด์žฅ โœ” ๋ถˆ๋ณ€, ํ•„์ˆ˜ ์˜์กด๊ด€๊ณ„์— ์‚ฌ์šฉ // OrderServiceImpl.java @Component public class OrderServiceImpl implements OrderService{ // final -> ๋ฐ˜๋“œ์‹œ ๊ฐ’์„ ํ• ๋‹นํ•ด์ค˜์•ผํ•œ๋‹ค.(ํ•„์ˆ˜, ๋ถˆ๋ณ€) private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired // ์ƒ์„ฑ์ž๊ฐ€ ํ•œ ๊ฐœ๋งŒ ์žˆ์„ ๊ฒฝ์šฐ ์ƒ๋žตํ•ด๋„ ๋œ๋‹ค. p.. 2023. 1. 9.
ComponentScan ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ์ปดํฌ๋„ŒํŠธ ์Šค์บ” & ์˜์กด๊ด€๊ณ„ ์ž๋™์ฃผ์ž… ๋งค๋ฒˆ @Bean์ด๋‚˜ XML ํŒŒ์ผ๋กœ ์Šคํ”„๋ง ๋นˆ์„ ์ง์ ‘ ๋“ฑ๋กํ•ด์ฃผ๋ฉด ๋งค์šฐ ๋ฒˆ๊ฑฐ๋กœ์›€ โœ” ์ปดํฌ๋„ŒํŠธ ์Šค์บ”: ์„ค์ • ์ •๋ณด๊ฐ€ ์—†์–ด๋„ ์ž๋™์œผ๋กœ ์Šคํ”„๋ง๋นˆ์„ ๋“ฑ๋กํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ โœ” ์˜์กด ๊ด€๊ณ„ ์ž๋™ ์ฃผ์ž…: @Autowired package hello.core; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; @Configuration @ComponentScan( excludeFilters = @ComponentS.. 2023. 1. 7.