๐ฅ๏ธ ๋ฐฑ์๋63 ์ด์ 1 2 3 4 5 6 7 ยทยทยท 9 ๋ค์ Java10๋ถํฐ ์ฌ์ฉ ๊ฐ๋ฅํ 'var' ํค์๋ ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ๊ณต๋ถํ๋ค๊ฐ JavaScript์์๋ ๋ณด๋ var ํค์๋ ๋ฐ๊ฒฌ... ๋ฐ๋ก GPT์ ๊ณต๋ถ ์์ํ๋ค Q. ์๋ฐ์์ var ์ฌ์ฉ๊ฐ๋ฅํด?? ๋ค, Java 10๋ถํฐ var ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ๋ณ์์ ํ์ ์ ์๋์ผ๋ก ์ถ๋ก ํ ์ ์๊ฒ ๋์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ "๋ก์ปฌ ๋ณ์ ํ์ ์ถ๋ก "์ด๋ผ๊ณ ํ๋ฉฐ, var๋ฅผ ์ฌ์ฉํ๋ฉด Java ์ปดํ์ผ๋ฌ๊ฐ ๋ณ์์ ํ์ ์ ์ด๊ธฐํ์์์ ์ ์ถํฉ๋๋ค. var์ ์ฌ์ฉ ์์ var number = 10; // int๋ก ์ถ๋ก ๋จ var message = "Hello World"; // String์ผ๋ก ์ถ๋ก ๋จ var list = new ArrayList(); // ArrayList์ผ๋ก ์ถ๋ก ๋จ var๋ฅผ ์ฌ์ฉํ ๋์ ์ฃผ์์ ๋ก์ปฌ ๋ณ์์๋ง ์ฌ์ฉ var๋ ์ค์ง ๋ฉ์๋ ๋ด๋ถ์์ ๋ก์ปฌ ๋ณ์๋ฅผ ์ ์ธํ .. 2023. 11. 29. [API] REST API ํ ์คํ ๋๊ตฌ Talend API Tester REST API ํ ์คํธ์ ์ ์ฉํ Chrome ํ์ฅ ํ๋ก๊ทธ๋จ Talend API Tester [์ค์น๋ฐฉ๋ฒ] 1. Chrome์น์คํ ์ด ๋ฐฉ๋ฌธ 2. Talend API Tester ๊ฒ์ ๋ฐ ์ค์น 3. ๋น ๋ฅธ ์ฌ์ฉ์ ์ํด ๊ณ ์ 4. ๊ถํ ๋ถ์ฌ ํค๋ ์ ์ก ๋ฑ ๋ค์ํ ์์ ๊ฐ๋ฅํจ 2023. 11. 29. [API] API ๊ณ ๊ธ ์ค๊ณ - ์ง์ฐ ๋ก๋ฉ๊ณผ ์กฐํ ์ฑ๋ฅ ์ต์ ํ โ ์ํฐํฐ ์ง์ ๋ ธ์ถ @GetMapping("/api/v1/orders") public List ordersV1() { List all = orderRepository.findAll(); for (Order order : all) { order.getMember().getName(); //Lazy ๊ฐ์ ์ด๊ธฐํ order.getDelivery().getAddress(); //Lazy ๊ฐ์ ์ด๊ธฐํ List orderItems = order.getOrderItems(); orderItems.stream().forEach(o -> o.getItem().getName()); //Lazy ๊ฐ์ ์ด๊ธฐํ } return all; } order member ์ order address ๋ ์ง์ฐ ๋ก๋ฉ์ด๋ค. ๋ฐ๋ผ์ ์ค์ ์.. 2023. 11. 28. [JPA] ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด - ์ค๊ธ ๋ฌธ๋ฒ(2) JPQL - ํ์น ์กฐ์ธ(fetch join) ์ค๋ฌด์์ ์ ๋ง์ ๋ง ์ค์ํจ ํ์น ์กฐ์ธ(fetch join) SQL ์กฐ์ธ ์ข ๋ฅX JPQL์์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํด ์ ๊ณตํ๋ ๊ธฐ๋ฅ ์ฐ๊ด๋ ์ํฐํฐ๋ ์ปฌ๋ ์ ์ SQL ํ ๋ฒ์ ํจ๊ป ์กฐํํ๋ ๊ธฐ๋ฅ join fetch ๋ช ๋ น์ด ์ฌ์ฉ ํ์น ์กฐ์ธ ::= [ LEFT [OUTER] | INNER ] JOIN FETCH ์กฐ์ธ๊ฒฝ๋ก ์ํฐํฐ ํ์น ์กฐ์ธ ํ์์ ์กฐํํ๋ฉด์ ์ฐ๊ด๋ ํ๋ ํจ๊ป ์กฐํ(SQL ํ ๋ฒ์) SQL์ ๋ณด๋ฉด ํ์ ๋ฟ๋ง ์๋๋ผ ํ(T.*)๋ ํจ๊ป SELECT [JPQL] select m from Member m join fetch m.team select์ ์ m๋ง ๋ช ์ํจ join fetch ๊ตฌ๋ฌธ ์ฌ์ฉ [SQL] SELECT M.*, T.* FROM MEMBER M INNER.. 2023. 11. 27. [JPA] ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด - ์ค๊ธ ๋ฌธ๋ฒ(1) ๊ฒฝ๋ก ํํ์ .(์ )์ ์ฐ์ด ๊ฐ์ฒด ๊ทธ๋ํ๋ฅผ ํ์ํ๋ ๊ฒ select m.username -> ์ํ ํ๋ from Member m join m.team t -> ๋จ์ผ ๊ฐ ์ฐ๊ด ํ๋ join m.orders o -> ์ปฌ๋ ์ ๊ฐ ์ฐ๊ด ํ๋ where t.name = 'ํA' ๋ด๋ถ์ ์ผ๋ก ๋์ํ๋ ๋ฐฉ์ ๊ตฌ๋ถ ์ํํ๋ ๋จ์ผ ๊ฐ ์ฐ๊ดํ๋ ์ปฌ๋ ์ ๊ฐ ์ฐ๊ดํ๋ ๊ฒฝ๋ก ํํ์ ์ฉ์ด ์ ๋ฆฌ ๋ฐ ์ค๋ช ์ํ ํ๋(state field) ๋จ์ํ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ํ๋ (ex: m.username) ๊ฒฝ๋ก ํ์์ ๋, ํ์X #๋จ์ผ ๊ฐ ์ฐ๊ด ๊ฒฝ๋ก ํ์ [JPQL] select o.member from Order o; [SQL] select m.* from Orders o inner join Member m on o.member_id .. 2023. 11. 26. [JPA] ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด - ๊ธฐ๋ณธ๋ฌธ๋ฒ (2) ์กฐ์ธ ๋ด๋ถ ์กฐ์ธ SELECT m FROM Member m [INNER] JOIN m.team t ์ธ๋ถ ์กฐ์ธ SELECT m FROM Member m LEFT [OUTER] JOIN m.team t ์ธํ ์กฐ์ธ SELECT count(m) FROM Member m, Team t WHERE m.username = t.name ON ์ ON์ ์ ํ์ฉํ ์กฐ์ธ(JPA 2.1๋ถํฐ ์ง์) 1. ์กฐ์ธ ๋์ ํํฐ๋ง 2. ์ฐ๊ด๊ด๊ณ ์๋ ์ํฐํฐ ์ธ๋ถ ์กฐ์ธ(ํ์ด๋ฒ๋ค์ดํธ 5.1๋ถํฐ) ์กฐ์ธ ๋์ ํํฐ๋ง ์) ํ์๊ณผ ํ์ ์กฐ์ธํ๋ฉด์, ํ ์ด๋ฆ์ด A์ธ ํ๋ง ์กฐ์ธ [JPQL] SELECT m, t FROM Member m LEFT JOIN m.team t on t.name = 'A' [SQL] SELECT m.*, t.* FROM Me.. 2023. 11. 26. [JPA] ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด - ๊ธฐ๋ณธ๋ฌธ๋ฒ (1) JPQL Java Persistence Query Language ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด. ํ ์ด๋ธ ๋์X ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ๋์O ์ผ๋ก ์ฟผ๋ฆฌ SQL์ ์ถ์ฑํํ๋ฏ๋ก ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค SQL์ ์์กดํ์ง ์์ ๊ฒฐ๊ตญ SQL๋ก ๋ณํ JPQL ๋ฌธ๋ฒ select m from Member as m where m.age > 14 ์ํฐํฐ์ ์์ฑ์ ๋์๋ฌธ์ ๊ตฌ๋ถํจ O(Memeber, age ๊ฐ์ฒด๊ฐ ๊ฐ์ง ๊ฒ๊ณผ ๋์๋ฌธ์ ๋์ผํด์ผ) JPQL ํค์๋๋ ๋์๋ฌธ์ ๊ตฌ๋ถํ์ง ์์(SELECT select FROM from WHERE where) ์ํฐํฐ ์ด๋ฆ์ ์ฌ์ฉํ๋ค(ํ ์ด๋ธ ์ด๋ฆ์ด ์๋) ๋ณ์นญ์ด ํ์ m (as๋ ์๋ต ๊ฐ๋ฅํ์ง๋ง ๊ฐ๊ธ์ ์ฐ๋ฉด ์ข์) ์งํฉ, ์ ๋ ฌ ๋ฑ ํจ์ ๊ฐ๋ฅ (COUNT, SUM, AVG, MAX, GROUP BY, ORDER.. 2023. 11. 26. ์ด์ 1 2 3 4 5 6 7 ยทยทยท 9 ๋ค์