Search

2024λ…„12μ›”19일 - React 와 Spring 의 λ§Œλ‚¨

μƒν’ˆ 관리 μ‚¬μ΄νŠΈλ₯Ό κ΅¬ν˜„

1.
μƒν’ˆ ν…Œμ΄λΈ” μ •μ˜
2.
Spring Boot REST API κ΅¬ν˜„
3.
React 둜 μƒν’ˆ λͺ©λ‘ νŽ˜μ΄μ§€ κ΅¬ν˜„

μƒν’ˆ ν…Œμ΄λΈ” μ •μ˜

DROP TABLE IF EXISTS `products`; CREATE TABLE `products` ( `no` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'PK', `id` VARCHAR(64) NOT NULL COMMENT 'UK', `title` VARCHAR(100) NOT NULL COMMENT 'μƒν’ˆλͺ…', `content` TEXT NULL COMMENT 'μ„€λͺ…', `likes` BIGINT NULL DEFAULT 0 COMMENT 'μ’‹μ•„μš”', `img` TEXT NULL COMMENT 'μ΄λ―Έμ§€κ²½λ‘œ', `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'λ“±λ‘μΌμž', `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'μˆ˜μ •μΌμž' );
SQL
볡사

Spring Boot REST API κ΅¬ν˜„

μš”μ²­ λ©”μ†Œλ“œ
μš”μ²­ 경둜
ν•­λͺ©
λΉ„κ³ 
GET
/products
μƒν’ˆ λͺ©λ‘
GET
/products/{id}
μƒν’ˆ 쑰회
POST
/products
μƒν’ˆ 등둝
PUT
/products
μƒν’ˆ μˆ˜μ •
DELETE
/products/{id}
μƒν’ˆ μ‚­μ œ
β€’
domain
β—¦
Product.java
β€’
Mapper
β—¦
ProductMapper.xml
β—¦
ProductMapper.java
β€’
Service
β—¦
ProductService.java
β—¦
ProductServiceImpl.java
β€’
Controller
β—¦
@CrossOrigin("*")
β—¦
@RestController
β–ͺ
sp-crud

React 둜 μƒν’ˆ λͺ©λ‘ νŽ˜μ΄μ§€ κ΅¬ν˜„

ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ 비동기 데이터 μš”μ²­

const CardList = () => { // ⭐ state μ„ μ–Έ // 🧊 productList ❓❓❓ // 🌞 데이터 μš”μ²­ ν•¨μˆ˜ const getProductList = ❓❓❓ // ❔ useEffect() ν›… μ‚¬μš© // "λ Œλ”λ§ μ‹œ 호좜 λ˜λŠ” ν•¨μˆ˜" // : ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈμ—μ„œ 마운트, μ—…λ°μ΄νŠΈ, μ–Έλ§ˆμš΄νŠΈ 생λͺ…μ£ΌκΈ° μž‘μ—…μ„ // μ²˜λ¦¬ν•  수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” ν›… useEffect(() => { getProductList (); }, []); return ( <div> <h1>μƒν’ˆ λͺ©λ‘</h1> <div style={{ display: "flex", }}> { productList.map( (card, index) => { return <Card key={card.no} card={ card } /> }) } </div> </div> ) } export default CardList
JavaScript
볡사