๐Ÿ’ป Web 4

[React] redux ์ •๋ฆฌ

redux๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฆฌ์•กํŠธ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. useState๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ๊ฒฝ์šฐ ๋ฃจํŠธ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ข…์† ์ปดํฌ๋„ŒํŠธ๋กœ props๋ฅผ ์ „๋‹ฌํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๋ฐฉ์‹์€ ์ปดํฌ๋„ŒํŠธ์˜ ๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จํ•˜๋‹ค๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ฑฐ๋‚˜ ๋ณต์žกํ•ด์ ธ์„œ ๊ทธ ํ•˜์œ„์˜ ํ•˜์œ„์˜ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ state๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค๋ฉด, props๋ฅผ ๊ณ„์† ๋‚ด๋ ค์ค˜์•ผ ํ•˜๊ณ  ์ „๋‹ฌ๋ฐ›์€ props๊ฐ€ ์–ด๋Š ์ปดํฌ๋„ŒํŠธ์—์„œ ์˜จ ๊ฒƒ์ธ์ง€ ์•Œ๊ธฐ ํž˜๋“ค์–ด์ง„๋‹ค. ์‹ฌ์ง€์–ด ํ•ด๋‹น state๊ฐ€ ํ•„์š” ์—†๋Š” ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌํ•ด์ฃผ๊ธฐ ์œ„ํ•ด props๋ฅผ ๋ฐ›๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…์†์„ฑ์„ ํƒˆํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ๋ ˆ๋ฒจ์—์„œ state๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋ฆฌ๋•์Šค์ด๋‹ค. store์— state๋ฅผ ์ €์žฅ..

๐Ÿ’ป Web 2022.08.11

[SpringBoot] JpaRepository ์ƒ์„ฑ๊ณผ ๋ฐ์ดํ„ฐ ์กฐํšŒํ•˜๊ธฐ๐Ÿ”

JpaRepository ์ƒ์„ฑํ•˜๊ธฐ Repository๋ž€? entity์— ์˜ํ•ด ์ƒ์„ฑ๋œ dbํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•˜๋Š” ํ•จ์ˆ˜(ex: findAll, save ๋“ฑ)๋“ค์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. CRUD๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ์ •์˜ํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. PlaceRepository ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. package com.goingto.back; import org.springframework.data.jpa.repository.JpaRepository; public interface PlaceRepository extends JpaRepository{ } ๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด JpaRepository ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ–ˆ๋‹ค. ์ƒ์†ํ•  ๋•Œ๋Š” ์ œ๋„ค๋ฆญ์Šค ํƒ€์ž…์œผ๋กœ ์—”ํ‹ฐํ‹ฐ์˜ ํƒ€์ž…๊ณผ ํ•ด๋‹น ์—”ํ‹ฐํ‹ฐ์˜ PK ์†์„ฑ ํƒ€์ž…์„..

๐Ÿ’ป Web 2022.08.01

[SpringBoot] H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ ๋ฐฉ๋ฒ• (+์˜ค๋ฅ˜ ํ•ด๊ฒฐ)

H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž๋ฐ”๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ ๊ธฐ๋ฐ˜์˜ RDBMS์ด๋‹ค. ์ž‘์€ ํฌ๊ธฐ์™€ ๋น ๋ฅธ ์†๋„๋ฅผ ํŠน์ง•์œผ๋กœ ํ•˜๋ฉฐ ์ฃผ๋กœ ๊ฐœ๋ฐœ์šฉ์ด๋‚˜ ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. ์‹ค์ œ ์šด์˜์‹œ์Šคํ…œ์€ ์ข€ ๋” ๊ตต์งํ•œ Oracle, MSSQL ๋“ฑ์˜ DB๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋ฐœ ํŒจํ„ด์ด๋‹ค. ์‚ฌ์šฉ๋ฐฉ๋ฒ• build.gradle ํŒŒ์ผ์˜ dependencies์— runtimeOnly 'com.h2database:h2' ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. src/main/resources/application.properties ํŒŒ์ผ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•ด์ค€๋‹ค. #DATABASE spring.h2.console.enabled=true spring.h2.console.path=/h2-console spring.datasource.url=jdbc:h2:~/local spri..

๐Ÿ’ป Web 2022.07.28

[React] Context API, useContext Hook ์‚ฌ์šฉํ•˜๊ธฐ

Context๋ž€? Context API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ props๋กœ ์ƒํƒœ์™€ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌ๋ฐ›์ง€ ์•Š๊ณ ๋„ Context๋กœ ํ•œ ๋ฒˆ์— ์›ํ•˜๋Š” ๊ฐ’์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์ด ๋†’๊ณ  ์‚ฌ์šฉ์ž ์ •๋ณด์™€ ๊ฐ™์ด ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๋•Œ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. Context ๋งŒ๋“ค๊ธฐ createContext ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ Context๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ์—๋Š” ๊ธฐ๋ณธ ์ƒํƒœ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๋ฌด์กฐ๊ฑด ์ƒํƒœ ๊ฐ’๋งŒ ์žˆ์–ด์•ผ ๋˜๋Š” ๊ฑด ์•„๋‹ˆ๊ณ  actions์— ์ •์˜ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. Consumer์™€ Provider ์‚ฌ์šฉํ•˜๊ธฐ Consumer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Context์˜ ์ƒํƒœ ๊ฐ’์„ ์กฐํšŒํ•˜๊ณ  Provider๋กœ Context์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ Provider์—์„œ๋Š” Context์˜ ๊ฐ’์„ ๋ช…์‹œํ•ด์ค˜์•ผ..

๐Ÿ’ป Web 2022.07.08