javascript 20

Spring Security를 활용한 사용자 권한 기반 접근 제어

저번 글의 Spring Security를 활용한 로그인 이후로 이번에는 관리자 페이지를 구현하면서 Role에 따라 접근 가능한 페이지/기능을 제어하는 방법을 공부하고 기록해 보려고 합니다.. 오류만 안난다면.... 금방 끝나겠지!? +++ 이전 게시글에서 수정 +++MemberController에서 "/main" 매핑을 삭제, MainController 생성package com.demo.controller;import org.springframework.security.core.Authentication;import org.springframework.security.core.context.SecurityContextHolder;import org.springframework.stereotype.Cont..

개인 공부 2024.12.24

Spring Boot - 국립 도서관 Open API를 활용한 도서 검색 구현

이번 글에서는 국립 도서관의 Open API를 활용하여 도서 검색 및 결과를 웹 페이지에 나타내는 방법을 소개해 볼게요. 부족한 실력 탓에 설명이 미흡합니다... 이해해주세요 :) *** 지난번 글에서 api의 key에 대한 설명이 없었던 것 같아서 여기에 작성해 볼게요 ***저는 api key를 application.properties에 따로 저장해서 사용했습니다. library.api.key : 국립 중앙 도서관의 api key.aladin.api.key : 알라딘 api key (이건 여기서 사용하지 않아서 필요 없어요!!!) ItemDTO (저번과 똑같아요 수정할 필요 없습니다..)package com.demo.dto;import com.fasterxml.jackson.annotation.Json..

Spring Boot - 국립 도서관 Open API를 활용한 사서 추천 도서 목록 구현

이번 글에서는 국립 도서관의 Open API를 활용하여 사서가 추천하는 도서를 가져오고, 웹 페이지에 표시하는 방법을 소개해 볼게요. 부족한 실력 탓에 설명이 미흡합니다... 이해해주세요 :) API에서 반환데는 데이터를 매핑할 DTO 작성package com.demo.dto;import jakarta.xml.bind.annotation.XmlElement;import jakarta.xml.bind.annotation.XmlRootElement;import lombok.Getter;import lombok.Setter;@Getter@Setter@XmlRootElement(name = "item")public class BookRecommendation { private String drCodeNam..

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

지난 글에 이어서 관리자 페이지에서의 회원 질문 관리에 대한 기능 구현과 설명을 이어가겠습니다.부족하더라도 이해해주세요. :) adminMain.html 질문 관리 고정 질문 회원 질문 회원 질문 링크 클릭 시 이전 글에서 미리 만들어 둔 Controller 처리로 회원 질문 페이지로 이동.// 회원질문 페이지@GetMapping("/admin-customer-qna")public String customerQuestions(HttpSession session, Model model) { Member admin = (Member)session.getAttribute("admin"); if(admin == null) { model.addAt..

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 - 관리자 페이지 (3)

지난번 글의 회원관리-회원코드 수정에 이어 이번글에서는 회원탈퇴 처리 및 공지사항에 대한 설명과 기능구현을 해보겠습니다. 부족해도 좋게 봐주세요 :)  Html (회원 탈퇴 여부) 회원탈퇴span th:text="${member.withdrawalRequest == 0 ? 'X' : 'O'}">span> : 해당 행의 회원의 탈퇴 요청 상태를 withdrawalRequest  값에 따라 표시.(삼항 연산자를 이용해서 0이면 X , 0이 아니면 O를 출력)버튼 클릭 시  deleteMember(this) 함수가 호출. th:data-memberid="${member.id}" 회원ID를 동적으로 할당, th:data-withdrawalRequest="${member.withdrawalReques..

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

저번글의 관리자 로그인 및 로그아웃 구현에 이어서 이번 글에서는 회원관리에 대해서 기능을 구현하고, 설명하려고 합니다. 부족해도 좋게 봐주세요 :) adminMain.html에서 작성해 놓은 회원 관리 회원리스트 a th:href="@{/admin-customer-list}">회원리스트a> a링크를 통해서 /admin-customer-list URL로 GET 요청이 전송됩니다. // 회원관리 페이지@GetMapping("/admin-customer-list")public String allCustomerList(HttpSession session, Model model) { Member admin = (Member)session.getAttribute("admin");..

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

관리자 페이지는 회원 관리, 공지사항 작성 및 수정, 질문 관리 등의 기능을 통해 사이트 운영을 효율적으로 관리할 수 있는 역할을 담당합니다. 이번 글에서는 이러한 기능들을 구현하는 과정을 설명하고, 어떤 방식으로 작동하는지를 공유하려고 합니다. 부족하더라도 좋게 봐주세요 :) 1. 관리자 로그인 페이지 (Html) 관리자 로그인 로그인 메인으로 이동 관리자용 ID와 Password를 입력한 후 로그인 버튼onclick="admin_login()"을 클릭하면 admin_login() 함수 호출. 2. admin_login() 함수 작성function admin_login() { if($("#id").val() == "") { swal.fire({ ..

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

이번 글에서는 질문 작성에 이어서 작성한 질문의 수정 및 삭제에 대해서 포스팅 하겠습니다.부족하더라도 좋게 봐주세요 :) 1. Html - 수정, 삭제 버튼수정삭제 data-qna_seq=${qna.qna_seq}  : 이 속성은 현재 질문의 고유 시퀀스 번호 (qna.qna_seq)를 저장합니다.data-qna_writer=${qna.member.id} : 질문 작성자의 ID (qna.member.id)를 저장합니다.data-answer_status=${qna.answer_status} : 답변 상태 (qna.answer_status)를 저장합니다.data-qna_viewer=${loginUser.id} : 현재 로그인한 사용자의 ID (loginUser.id)를 저장합니다.  2. JavaScript..

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..