πŸ’‘ κ²Œμ‹œνŒ λ§Œλ“€κΈ°

박상민·2023λ…„ 9μ›” 3일
0

κ²Œμ‹œκΈ€ 리슀트

java, spring을 κ³΅λΆ€ν•˜λ©° 이λ₯Ό μ΄μš©ν•΄μ„œ μž‘μ€ ν”„λ‘œμ νŠΈλΌκ³  해봐야겠닀고 늘 생각을 ν–ˆμŠ΅λ‹ˆλ‹€.
늘 미루기만 ν•˜λ‹€κ°€ μ§„μ§œ 뭐라도 ν•΄μ•Όκ² λ‹€λŠ” 생각에 κ°€μž₯ ν‰λ²”ν•œ κ²Œμ‹œνŒ λ§Œλ“€κΈ°λ₯Ό μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€.

개발 도ꡬ

혼자 μ‹œμž‘ν•˜κΈ°μ—λŠ” λ§‰λ§‰ν•΄μ„œ ν•œμ½”λ”©λ‹˜μ˜ κ²Œμ‹œνŒ λ§Œλ“€κΈ°λ₯Ό λ”°λΌμ„œ κ²Œμ‹œνŒμ„ μž‘μ„±ν•΄λ³Έ ν›„ μ €λ§Œμ˜ κ²Œμ‹œνŒμ„ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.


메인 νŽ˜μ΄μ§€

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>메인 νŽ˜μ΄μ§€</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            background-color: #f4f4f4;
        }
        .container {
            text-align: center;
            padding: 20px;
            background-color: white;
            border-radius: 8px;
            box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
        }
        .btn {
            display: inline-block;
            padding: 10px 20px;
            background-color: #007bff;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            text-decoration: none;
        }
    </style>
</head>
<body>
<div class="container">
    <h1>κ²Œμ‹œνŒ 메인 νŽ˜μ΄μ§€</h1>
    <a class="btn" href="board/write">κ²Œμ‹œκΈ€ μž‘μ„±</a>
    <a class="btn" href="board/list">κ²Œμ‹œκΈ€ 리슀트</a>
</div>
</body>
</html>

GPTλ₯Ό ν™œμš©ν•΄μ„œ λ§Œλ“  메인 νŽ˜μ΄μ§€μž…λ‹ˆλ‹€. GPTμ—κ²Œ κ²Œμ‹œκΈ€ μž‘μ„± λ²„νŠΌκ³Ό κ²Œμ‹œκΈ€ 리슀트 λ²„νŠΌμ„ λ§Œλ“  λ’€ 꾸며달라고 ν–ˆλ”λ‹ˆ 예쁘게 μž‘μ„±ν•΄μ€¬μŠ΅λ‹ˆλ‹€. html 뢀뢄은 λ¬Έμ™Έν™˜μ΄λ‚˜ 닀름이 μ—†λ‹€λ³΄λ‹ˆ λ§‰λ§‰ν–ˆλŠ”λ° GPTλ₯Ό μ‚¬μš©ν•˜λ‹ˆ μž¬λ―Έλ„ 있고 λ¬Έμ œκ°€ 되던 뢀뢄도 해결이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

κ²Œμ‹œκΈ€ μž‘μ„± νŽ˜μ΄μ§€

κ²Œμ‹œκΈ€ μž‘μ„± νŽ˜μ΄μ§€λŠ” 제λͺ©, μž‘μ„±μž, λ‚΄μš©μ„ μž‘μ„±ν•  수 있게 λ§Œλ“€μ—ˆκ³  제λͺ©μ˜ κΈΈμ΄λŠ” 25자 μ œν•œμ„ λ‘μ—ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ λ‚΄μš©μ€ 일정 길이가 λ„˜μ–΄κ°€λ©΄ μžλ™μœΌλ‘œ μ€„λ°”κΏˆμ΄ λ˜λ„λ‘ μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

// BoardRepository
package com.studyweb.webboard.repository;

import com.studyweb.webboard.entity.Board;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface BoardRepository extends JpaRepository<Board, Integer> {
}

RepositoryλŠ” JpaRepositoryλ₯Ό 상속 λ°›μ•„μ„œ μ‚¬μš©μ„ ν–ˆκ³ 

// κ²Œμ‹œκΈ€ μž‘μ„± 처리
@PostMapping("/board/write")
public String boardWrite(Board board, Model model) {
    boardService.save(board);
    model.addAttribute("message", "κΈ€ μž‘μ„±μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.");
    model.addAttribute("searchUrl", "/board/list");

    return "message";
}

'μž‘μ„± μ™„λ£Œ' λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ /board/write둜 μš”μ²­μ΄ κ°€μ„œ μœ„μ˜ 둜직이 싀행이 λ©λ‹ˆλ‹€. boardService에 κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” saveλ₯Ό ν†΅ν•΄μ„œ DB에 정보가 μ €μž₯이 되고 model.addAttribute("message", "κΈ€ μž‘μ„±μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€."); 뢀뢄이 싀행이 λ˜λ©΄μ„œ ν™”λͺ…에 'κΈ€ μž‘μ„±μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.'λΌλŠ” λ©”μ‹œμ§€κ°€ 띄어지도둝 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

κ²Œμ‹œκΈ€ 리슀트 νŽ˜μ΄μ§€

κ²Œμ‹œκΈ€ 리슀트 νŽ˜μ΄μ§€λŠ” μœ„ μ‚¬μ§„μ²˜λŸΌ λ§Œλ“€μ—ˆκ³  제λͺ©μ„ ν΄λ¦­ν•˜λ©΄ κ²Œμ‹œκΈ€ 상세 νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜κ²Œ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.
μž‘μ„± μ‹œκ°„ κ΅¬ν˜„μ— λŒ€ν•΄μ„œλŠ” λ‹€μŒ κΈ€μ—μ„œ μž‘μ„±ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

κ²Œμ‹œκΈ€ 상세 νŽ˜μ΄μ§€

κ²Œμ‹œκΈ€ 상세 νŽ˜μ΄μ§€μž…λ‹ˆλ‹€. κ²Œμ‹œκΈ€ μ‚­μ œ, μˆ˜μ •, λͺ©λ‘μœΌλ‘œ λŒμ•„κ°€κΈ° λ²„νŠΌμ΄ 있고 κ²Œμ‹œκΈ€μ„ μˆ˜μ •ν•œλ‹€λ©΄ μˆ˜μ • μ‹œκ°„μ΄ ν‘œμ‹œλ˜λ„λ‘ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.


DBλŠ” Maria DBλ₯Ό μ‚¬μš©ν•˜μ˜€κ³ 
JpaRepository μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ†λ°›μ•„μ„œ Repository κΈ°λŠ₯을 κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. 이 뢀뢄은 좔후에 JPA ν”„λ‘œκ·Έλž˜λ°μ„ κ³΅λΆ€ν•΄μ„œ λͺ¨λ‘ μˆ˜μ •μ„ ν•  κ³„νšμž…λ‹ˆλ‹€.

ν”„λ‘ νŠΈμ˜ λ””μžμΈμ€ μ œκ°€ html, css 지식이 μ—†κΈ° λ•Œλ¬Έμ— λͺ¨λ‘ Ghat-GPT의 도움을 λ°›μ•˜μŠ΅λ‹ˆλ‹€. ν”„λ‘ νŠΈ 뢀뢄은 μ–΄λ–»κ²Œ λ§Œλ“€μ§€.. κ³ λ―Όν•˜λ‹€κ°€ GPTλ₯Ό μ‚¬μš©ν•΄λ΄€λŠ”λ° μˆ˜μ •ν•  뢀뢄도 λ§Žμ•˜μ§€λ§Œ 맀우 μœ μš©ν•˜κ²Œ μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.


이 글은 좔후에 μˆ˜μ •μ΄ 될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬μ˜ μ‘°μž‘ν•œ κ²Œμ‹œνŒμ„ 보고 쑰금 ν˜„νƒ€κ°€ μ™”λ‹€κ°€ μ΄λŒ€λ‘œλŠ” μ•ˆλ˜κ² λ‹€ μ‹Άμ–΄μ„œ κΈ‰ν•˜κ²Œ λΈ”λ‘œκ·Έλ₯Ό μž‘μ„±ν–ˆκΈ° λ•Œλ¬Έμ— 정리도 μ•ˆ λ˜μ–΄μžˆκ³  λ‚΄μš©λ„ 많이 λΆ€μ‘±ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

μš°μ„  λ‹€μŒμœΌλ‘œ μž‘μ„±ν•  글은 μž‘μ„±μ‹œκ°„, μˆ˜μ •μ‹œκ°„ κΈ°λŠ₯의 좔가와 νŽ˜μ΄μ§• 처리, 검색 κΈ°λŠ₯ 등을 μΆ”κ°€ν•  κ³„νšμž…λ‹ˆλ‹€.

κ·Έ μ΄ν›„μ—λŠ” 둜그인 κΈ°λŠ₯, Validation, ν•„ν„° λ“±λ“±μ˜ κΈ°λŠ₯을 μΆ”κ°€ν•˜λ©° ν˜„μž¬μ˜ μ‘°μž‘ν•œ κ²Œμ‹œνŒμ„ μ—…κ·Έλ ˆμ΄λ“œν•  κ³„νšμž…λ‹ˆλ‹€.

μžμ„Έν•œ μ½”λ“œλŠ” μ•„λž˜μ˜ Github 링크λ₯Ό μ°Έμ‘°ν•΄μ£Όμ„Έμš”!

https://github.com/pp8817/ToyProjectBoard

profile
μŠ€ν”„λ§ λ°±μ—”λ“œλ₯Ό 곡뢀쀑인 λŒ€ν•™μƒμž…λ‹ˆλ‹€!

0개의 λŒ“κΈ€