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

โญ 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.