웹 개발 9

MVC 패턴이 뭔데...

SpringBoot를 통한 프로젝트를 하다보니 내가 제대로 이게 어떤 기능이고, 어떻게 사용하는지에 대한 설명을 제대로 하지 못하는 모습을 보고 혼자 공부도 하고, 면접 준비를 위한 글입니다요.... 초보 개발자로 살아남기가 많이 힘드네요 ㅠ_ㅠ MVC가 뭔데...  Model-View-Controller 랍니다!!! 이건 기본이겠죠..? 아무튼 이렇게 나눠서 구현하는 디자인 패턴이랍니다. application의 구성 요소를 분리하여 관리하기 쉽고, 코드의 유지보수성을 높이는데 도움을 준다는데.. 말이 너무 어렵네요. Model : 애플리케이션의 데이터와 비지니스 로직을 처리하며, DB(데이터베이스)와 상호작용을 하거나, 로직을 수행하는 역할.View : 사용자에게 데이터를 시각적으로 표현. Html, ..

개인 공부 2024.12.18

Spring Boot - 관리자 페이지 (4)

이번 글에서는 관리자 페이지에서의 사이트의 질문(Q&A)관리에 대한 기능설명과 코딩을 만들어 보겠습니다.부족하더라도 좋게 봐주세요. :) ===== 질문 관리 =====Qna 클래스 생성package com.demo.domain;import java.util.Date;import org.hibernate.annotations.ColumnDefault;import org.hibernate.annotations.DynamicInsert;import org.hibernate.annotations.DynamicUpdate;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.Gene..

Spring Boot - Q&A 페이지 구현하기 (1)

이번 글에서는 웹 사이트에서 빠질 수 없는 QnA 기능에 대해 다뤄보겠습니다. 일반 회원이 질문을 작성하고, 관리자가 해당 질문에 답변하는 기능을 구현할 예정입니다. 부족한 부분이 있을 수 있지만, 많은 관심과 피드백 부탁드립니다! :) 1. Qna 클래스 만들기 (Qna.java)package com.demo.domain;import java.util.Date;import org.hibernate.annotations.ColumnDefault;import org.hibernate.annotations.DynamicInsert;import org.hibernate.annotations.DynamicUpdate;import jakarta.persistence.Entity;import jakarta.pers..

Spring Boot - 댓글 CRUD기능 구현하기 (3)

이번 글에서는 댓글 삭제 및 댓글 좋아요 기능에 대해 써보려고 합니다..저번 글에서 하려고 했느데 오류가 많아서 수정하다보니 깜빡했어요;;  부족하지만 좋게 봐주세요 :)1. 삭제 버튼 Html댓글삭제data-* 속성은 HTML5에서 표준화된 커스텀 데이터 속성으로, 자바스크립트에서 데이터를 전송하거나 스타일링을 위해 데이터를 HTML 요소에 저장할 때 유용하게 사용됩니다.th:data-reply-seq속성에 reply.replySeq 값이, th:data-reply-member-id 속성에 댓글 작성자 ID인 reply.member.id 값이, th:data-login-user-id속성에 로그인한 사용자 ID인 loginUser.id 값JavaScript에서 버튼을 클릭할 때 이러한 data-* 속성에..

Spring Boot - 댓글 CRUD기능 구현하기 (2)

이번 글에서는 댓글 CRUD기능 중 수정(U)과 삭제(D)에 관한 글을 써보려고 합니다.부족해도 이해하고 봐주세요... :) 1. html에 수정 버튼 만들기 : 댓글수정 좋아요  좋아요 수 :   댓글삭제  댓글수정 data-reply-seq 속성은 각 댓글의 고유 식별자인 replySeq 값을 담습니다.data-reply-member-id 속성은 댓글 작성자의 ID를 담습니다.data-login-user-id 속성은 현재 로그인한 사용자 ID를 담습니다.onclick 속성은 버튼이 클릭되었을 때 실행할 JavaScript 함수(replyEdit)를 지정합니다.replyEdit(this)에서 this는 현재 클릭된 버튼 요소를 가리키며..

Spring Boot - 이미지 업로드 및 삭제

리뷰 CRUD 기능을 구현하면서 이미지 업로드와 삭제 기능은 따로 다루지 않았기에, 이번 글에서는 이를 중점적으로 공부하고 기록해 보려 합니다. 서버에 파일을 업로드하고 저장하는 과정과 업로드된 이미지를 삭제하는 방법까지 하나씩 실습하며 정리할 예정입니다.  업로드 및 삭제 파일 관리를 위한 클래스 생성package com.demo.domain;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import org.springframework.web.multipart.MultipartFile;public class FileUploadUtil { public stati..

Spring Boot - 리뷰 CRUD기능 구현하기 (4)

삭제 버튼 추가 (reviewDetail.html)button class="delete-btn" type="button" onclick="delete_review()">리뷰 삭제button> 클릭 시 호출할 함수 작성review.js > delete_review() 함수 추가 var writer = /*[[${review.member.id}]]*/ ''; var viewer = /*[[${loginUser.id}]]*/ ''; var review_seq = /*[[${review.review_seq}]]*/ 0;function delete_review() { // 작성자와 현재 로그인한 사용자가 동일한지 확인 if (writer === viewer) { swal.fire({ ..

Spring Boot로 간단한 ID와 비밀번호 찾기 기능 구현하기

ID 찾기// 아이디 찾기 화면function findId() {     // ID찾기 버튼 클릭 시 새 창을 열어 ID 찾기 페이지를 표시합니다.      window.open('/find-id', '아이디찾기', 'width=400,height=300');}// 아이디 찾기 화면 @GetMapping("/find-id") public String findIdView() {     return "login/findId"; } 사용자가 "ID 찾기" 버튼을 클릭하면, findId() 함수가 호출되고 /find-id 경로의 새로운 팝업 창이 열립니다.팝업 창이 열리며 서버에 /find-id GET 요청을 보내고, Spring Boot Controller는 findIdView() 메서드를 통해 login/f..