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. ์ด์ 1 2 3 4 ๋ค์