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

Spring19

[TIL] 221206 - JPA : ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ JPA (2) - ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ EntityManagerFactory, EntityManager ํ•™์Šต ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ ์—”ํ‹ฐํ‹ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ ํŠน์ง•๊ณผ ์‹ค์Šต EntityManagerFactory, EntityManager Entity RDB์˜ table๊ณผ ๋งคํ•‘๋˜๋Š” ๊ฐ์ฒด EntityManagerFactory Entity๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” Entity Manager๋ฅผ ์ƒ์‚ฐํ•˜๋Š” ๊ณต์žฅ. : ๋น„์šฉ์ด ๋น„์‹ธ ํ•˜๋‚˜๋งŒ ๋งŒ๋“ค์–ด์ง€๊ณ  Entity Manager๋ฅผ ์ƒ์‚ฐํ•˜๋Š” factory์„ฑ bean : Thread safeํ•˜๋‹ค. ํ•˜๋‚˜์— ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ์ ‘๊ทผํ•ด๋„ ์•ˆ์ „ํ•˜๋‹ค. EntityManager Entity๋ฅผ ์ €์žฅ, ์ˆ˜์ •, ์‚ญ์ œ, ์กฐํšŒ (CURD) ๋“ฑ entity์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ผ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. : Thread Safeํ•˜์ง€ ์•Š๋‹ค... 2022. 12. 7.
[TIL] 221205 - JPA : JPA ์†Œ๊ฐœ SpringBoot Part4 (1) Spring Frameworks์„ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด(RDB) ์ ‘๊ทผ ๋ฐฉ๋ฒ• H2Database : In-memory ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ( ์„œ๋ฒ„๊ฐ€ ๋‚ด๋ ค๊ฐ€๋ฉด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ „๋ถ€ ๋‚ ๋ผ๊ฐ ) : ๋ณดํ†ต ์ƒ˜ํ”Œ์ฝ”๋“œ๋‚˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ• ๋•Œ ์‚ฌ์šฉ. JDBC ์ž๋ฐ” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ JDBC API๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ณ„์ธต๊ณผ ํ†ต์‹ ํ•œ๋‹ค. @Slf4j public class JDBCTest { // H2DB์˜ url๊ณผ default userName, pass static final String JDBC_DRIVER = "org.h2.Driver"; static final String DB_URL = "jdbc:h2:~/test"; static final String USER = "sa"; static final.. 2022. 12. 7.
[Spring] Request ์–ด๋…ธํ…Œ์ด์…˜ (parameter mapping) Request๊ฐ€ ๋“ค์–ด์˜ค๋Š” ํƒ€์ž…์— ๋”ฐ๋ผ ๋ฐ›๋Š” ๋ฐฉ์‹์ด ๋‚˜๋‰œ๋‹ค. URI Query String body form @PathVariable @GetMapping( "/api/v1/customers/{customerId}") @ResponseBody public ResponseEntity findCustomer(@PathVariable("customerId") UUID customerId){ var customer = customerService.getCustomer(customerId); return customer.map(v -> ResponseEntity.ok(v)).orElse(ResponseEntity.notFound().build()); } URI ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด Request๊ฐ€ ๋“ค์–ด์˜ค๋Š” ํƒ€์ž… http:/.. 2022. 12. 1.
[Java] List ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฆฌ๋ทฐ ๋ฐ›์•˜๋‹ค๐Ÿคฃ https://jihyehwang09.github.io/2020/04/13/java-list-null-check/ List.size() == 0 ๋ณด๋‹ค๋Š” List.isEmpty() ํ”ผ๋“œ๋ฐฑ ๋ฐ›์€ ๊ฒƒ๊ณผ ๊ฐ™์ด isEmpty๊ฐ€ ๊ฐ€๋…์„ฑ๋ฉด์— ์ง๊ด€์ ์ด๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, list์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ 0์ด ์•„๋‹๊ฒฝ์šฐ size() ๋ฉ”์†Œ๋“œ๋Š” O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— isEmpty() ๋ณด๋‹ค ๋น„์šฉ์ด ๋งŽ์ด ๋“ ๋‹ค. (isEmpty()๋Š” O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„) List null ์ฒดํฌ Java Spring ์‚ฌ์šฉ์‹œ์—๋Š” ์•„ํŒŒ์น˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ CollectionUtils.isEmpty()๋ฅผ ์‚ฌ์šฉํ•˜์ž. import org.springframework.util.CollectionUtils; public class Main { pu.. 2022. 12. 1.
[TIL] 221124 - SpringBoot Part2 ๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ (๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ DB ์„ค๊ณ„) SpringBoot Part2 ๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ :๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ DB ์„ค๊ณ„ํ•˜๊ธฐ โ€ป ์ฃผ๊ด€์ ์ธ ๊ธ€์ž…๋‹ˆ๋‹ค! ์‹ฌํ™”๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ, ๋‹จ์ง€ ๊ณผ์ œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑ์‹œํ‚ค๋ฉฐ ๊ฐœ๋ฐœ๊ณต์ˆ˜๋ฅผ ๋‚ฎ์ถ”๋ ค๋Š” ๋ฐฉ์‹ ๊ฐ™๋‹ค๋Š” ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•˜๋‹ค. ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์€ ๊ธฐ์กด ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ๋ฐ”์šฐ์ฒ˜์™€ ๊ณ ๊ฐ ํ…Œ์ด๋ธ”์˜ ๊ด€๊ณ„๊ฐ€ 1 : N ์ด๊ธฐ๋•Œ๋ฌธ์— ๊ตณ์ด ์ค‘๊ฐ„ ๋งคํ•‘ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋ฉ˜ํ† ๋‹˜ ๋ง์”€๋Œ€๋กœ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ชจ๋‘ ์ถฉ์กฑํ• ์ˆ˜ ์žˆ๋Š”๋Œ€ ๊ตณ์ด ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ํ•„์š”์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ํ•ด๋‹น ๊ตฌํ˜„ ๋ฐฉ์‹์ด ์šฐ๋ฆฌ๊ฐ€ ๊ทธํ† ๋ก ๋งํ•˜๋˜ ๊ฒฐํ•ฉ๋„์™€ ์‘์ง‘๋„๋ฅผ ๋†’์ด๋Š” ์ฝ”๋“œ์ธ๊ฐ€ ๋‹ค์‹œ ๊ณ ๋ฏผํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒƒ๊ฐ™๋‹ค. ๋˜ํ•œ ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง๊ณผ ํ™•์žฅ์„ฑ์„ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์˜ ์ฐจ์ด๋ฅผ ์ƒ๊ฐํ•ด๋ด์•ผํ•œ๋‹ค. ํ™•์žฅ์„ฑ์— ๊ฐ€์ด๋“œ๋ผ์ธ์ด ์žˆ์„ ๊ฒฝ์šฐ ํ™•์žฅ์„ฑ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ๋งž๊ณ  ํ™•์žฅ์„ฑ์ด ์ „ํ˜€ ์—†๋Š” ๊ตฌ์กฐ๋ผ๋ฉด ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง.. 2022. 11. 26.
[TIL] 221123 - ํด๋ก  ์ฝ”๋”ฉ : ์ปคํ”ผ๋นˆ ์ฃผ๋ฌธ ๊ด€๋ฆฌ ์„œ๋น„์Šค [ํด๋ก  ์ฝ”๋”ฉ] ์ปคํ”ผ๋นˆ ์ฃผ๋ฌธ ๊ด€๋ฆฌ ์„œ๋น„์Šค 0. ์š”๊ตฌ์‚ฌํ•ญ ๋งค์ผ ์ „๋‚  ์˜คํ›„ 2์‹œ๋ถ€ํ„ฐ ์˜ค๋Š˜ ์˜ค๋ฃจ 2์‹œ๊นŒ์ง€์˜ ์ฃผ๋ฌธ์„ ๋ชจ์•„์„œ ์ฒ˜๋ฆฌ ํ˜„์žฌ ์ด 4๊ฐœ์˜ ์ƒํ’ˆ ์กด์žฌ ๋ณ„๋„์˜ ํšŒ์›์„ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ณ , email๋กœ ๊ตฌ๋ถ„ ํ•˜๋ฃจ์— ๊ฐ™์€ email๋กœ ์—ฌ๋Ÿฌ๋ฒˆ ์ฃผ๋ฌธ์ด ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์„œ ๋‹ค์Œ๋‚  ๋ฐฐ์†ก ๊ณ ๊ฐ์—๊ฐœ “๋‹น์ผ ์˜คํ›„ 2์‹œ ์ดํ›„์˜ ์ฃผ๋ฌธ์€ ๋‹ค์Œ๋‚  ๋ฐฐ์†ก์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.”๋ผ๊ณ  ์•Œ๋ ค์ค๋‹ˆ๋‹ค. 1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ 2. domain ๋ชจ๋ธ ์ •์˜ → ์ƒํ’ˆ ๋„๋ฉ”์ธ → ์ฃผ๋ฌธ ๋„๋ฉ”์ธ validation Object ๋งŒ๋“ค๊ธฐ public class Email { private final String address; public Email(String address) { Assert.notNull(address); Assert.isTrue(address.l.. 2022. 11. 26.