โญ Personal_Study97 ์น์์ผ์ ํ์ฉํด ์ค์๊ฐ ์ฑํ ๊ตฌํํ๊ธฐ - React ์น์์ผ์ ํ์ฉํด ์ค์๊ฐ ์ฑํ ๊ตฌํํ๊ธฐ - React ์น์์ผ์ ํ์ฉํด ์ค์๊ฐ ์ฑํ ๊ตฌํํ๊ธฐ - Springboot ์น์์ผ์ ํ์ฉํด ์ค์๊ฐ ์ฑํ ๊ตฌํํ๊ธฐ - React React ์ฝ๋ ์ฌ์ค ์น์์ผ์์ ๋ฐฑ์๋๋ ์ค๊ฐ์ญํ ๋ง ํ๊ณ ๋๋ถ๋ถ์ ์์ (์น์์ผ ๊ฐ์ฒด ์์ฑ, ์ฐ๊ฒฐ, ๋ฐ์ดํฐ ์ก์์ )์ ํ๋ก ํธ์์ ์ด๋ฃจ์ด์ง๋ค. ์๋ ์ฝ๋๋ ์น์์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋จํ ์ค์๊ฐ ์ฑํ ์ ๊ตฌํํ ํ๋ก ํธ ์ฝ๋์ด๋ค. ํด๋น ์ฝ๋๋ ๋ฉ์ธ์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ง๋ง ๊ฒฐ๊ตญ ๋ฌด์์ด ๋๋ ์น์์ผ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์๋ฆฌ๋ ๋๊ฐ์์, ์ฝ๋๋ฅผ ๋ณํํ๋ฉด ํจ์ฌ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ๊ตฌํํ ์ ์๋ค. ์์ฝ๊ฒ๋ ๋ด๊ฐ ํ๋ก ํธ๊ฐ ์๋๋ผ ๋ฐ๋ก ๋์์ธ์ ๋ฃ์ง ์์๋ค. ์ค์ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์จ ๊ฑฐ๋ผ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ ์ฉํ ๊ฒฝ์ฐ ์ ์ ํ ๋ณํํด์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ฝ๋ ๋.. 2023. 5. 6. ์น์์ผ์ ํ์ฉํด ์ค์๊ฐ ์ฑํ ๊ตฌํํ๊ธฐ - 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. Java ๋ฌธ์์ด์์ ์ด๋ชจ์ง ์ ๊ฑฐํ๋ ๋ฒ Java ๋ฌธ์์ด์์ ์ด๋ชจ์ง ์ ๊ฑฐํ๋ ๋ฒ ๋ฌธ์ ์ด๋ชจ์ง๋ก ๋ ๋ฌธ์์ด์ sql์ ์ฝ์ ํ๋ ค๊ณ ํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์์ธ MySql์์ ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์์ด ์ธ์ฝ๋ฉ์ utf8mb3์ผ๋ก ํ๊ฒ ๋๋ค. ์ด๋ฐ ์ํฉ์์ 4๋ฐ์ดํธ์ธ ์ด๋ชจ์ง๋ฅผ ์ ์ฅํ๋ ค๊ณ ํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ํด๊ฒฐ 2๊ฐ์ง ํด๊ฒฐ์ฑ ํด๊ฒฐ์ฑ ์ ๋ ๊ฐ์ง๊ฐ ์๋ค. MySql์์ ํด๋น ํ ์ด๋ธ๊ณผ ์นผ๋ผ์ ๋ฐ์ดํฐ ํ์ ์ utf8mb4๋ก ๋ฐ๊ฟ์ค๋ค. db์ ๋ฌธ์์ด์ ์ ์ฅํ ๋ ์ ๊ท์์ผ๋ก ์ด๋ชจ์ง๋ฅผ ์ ๊ฑฐํ๊ณ ์ฝ์ ํ๋ค. ๋ด ์ฌ๋ก์์๋ ์ ์ฅํ๊ณ ์ ํ๋ ๊ฐ์์ ์ด๋ชจ์ง๊ฐ ์ค์ํ ์์๊ฐ ์๋๊ณ , ์๋น์ค์ ์ง์ ์ ์ผ๋ก ํ์ฉ๋๋ ๋ถ๋ถ์ด ์์ด์ 2๋ฒ์ ์ ํํ์ง๋ง ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ 1๋ฒ์ด ๋ ๋์ ํด๊ฒฐ์ฑ ์ผ ๊ฒ์ด๋ค. Java์์ ์ ๊ท์์ผ๋ก ์ด๋ชจ์ง ํํฐ๋งํ๊ธฐ // ์ด๋ชจ์ง ํจํด private final.. 2023. 3. 31. Page ๊ฐ์ฒด์ Collections ๋ฉ์๋๋ฅผ ์ ์ฉํ์ ๋ UnsupportedOperationException ๋ฐ์ ์๋ฌ JPA์ Page๋ immutableํ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ Collections.shuffle๋ฑ ์๋ณธ ๊ฐ์ฒด์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ฉ์๋๋ฅผ ์ ์ฉํ ๊ฒฝ์ฐ UnsupportedOperationException ์๋ฌ๊ฐ ๋ฐ์ํ๋ค ๋ถ๋ช ํ ํ์ ๋ List๊ณ ๊ฐ๋ ์ถ๋ ฅ๋๋๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํด ์์ธ์ ์ฐพ์๋ด๊ธฐ๊น์ง ์ ๋ฒ ๊ณ ์ํ์๋ค. Page ๊ฐ์ฒด์ ์๋ณธ ๊ฐ์ ๋ณ๊ฒฝ์ํค๋ ๋ฉ์๋๋ฅผ ์ ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ ๋ค์ ์คํธ๋ฆผ์ผ๋ก ๋นผ์ List๋ฅผ ๋ง๋ค์ด์ฃผ๋ฉด mutableํ list๊ฐ ๋์ด ๋ฉ์๋๋ฅผ ์ ์ฉํ ์ ์๋ค. 2023. 3. 30. Springboot Dockerfile & docker-compose.yml Springboot Dockerfile & docker-compose.yml ๋ฐฐํฌ ๊ณผ์ ์ ๋ํ ์์ธํ ์ค๋ช ์ ์ด์ ๊ธ ์ฐธ๊ณ ! https://bluuubery.tistory.com/206 ๋ณธ ๊ธ์ dockerfile๊ณผ docker-compose.yml ํ์ผ๊ณผ ์ค๋ช ๋ง ์ ์๋ค. Dockerfile # ์คํ ์ด์ง 1 (๋น๋) # ๋ฒ ์ด์ค ์ด๋ฏธ์ง: jdk 11 alpine(๊ฒฝ๋) FROM adoptopenjdk/openjdk11:jdk-11.0.10_9-alpine AS builder # ์์ ๊ฒฝ๋ก ์ค์ ๋ฐ ํ๋ก์ ํธ ๊ฐ์ ธ์ค๊ธฐ WORKDIR /app COPY . . # ๋น๋ ๊ถํ ๋ถ์ฌ ๋ฐ ์คํ(ํด๋ฆฐ) RUN chmod +x ./gradlew RUN ./gradlew clean bootJar # ์คํ ์ด์ง 2 # ๋ฒ ์ด์ค .. 2023. 3. 21. ์ด์ 1 2 3 4 ยทยทยท 17 ๋ค์