Spring boot72 RestAPI 주소 설계 규칙 소문자를 사용한다. 대문자는 때로 문제를 일으키는 경우가 있기 때문에 URI를 작성할 때는 소문자를 선호한다.❌http://dev-cool.tistory.com/users/Post-Comments⭕http://cocoon1787.tistory.com/users/post-comments 언더바(_) 대신 하이픈(-)을 사용한다. 가독성을 위해 긴 Path를 표현하는 단어는 하이픈(-)으로 구분하는 것이 좋다.프로그램의 글자 폰트에 따라 언더바 문자는 부분적으로 가려지거나 숨겨질수 있다.❌http://dev-cool.tistory.com/users/post_comments⭕http://dev-cool.tistory.com/users/post-comments 마지막에 슬래시(/)를 포함하지 않는다... 2024. 10. 22. CORS(Cross-Origin Resource Sharing) 이란 뭘까? RestAPI 전환**학습 목표REST API와 웹 MVC의 차이점**기존 웹 MVC 웹 애플리케이션에서 서버는 클라이언트(브라우저)에 HTML을 렌더링하여 응답합니다. 이때 주로 머스태치(Mustache), JSP와 같은 템플릿 엔진을 사용했습니다. REST API로 전환 REST API는 서버가 데이터를 JSON 형식으로 응답하고, 클라이언트(React, Vue.js, 모바일 앱 등)가 해당 데이터를 받아 UI를 구성하는 방식입니다. 서버는 순수한 데이터를 제공하는 역할만 수행하고, 클라이언트는 UI를 처리하는 역할을 담당합니다. 왜 하는 걸까?더 많은 클라이언트(웹, 모바일, 데스크탑 등)와 통신할 수 있기 때문에, 데이터와 UI를 분리하여 더 유연한 시스템을 만들 수 있습니다. CORS(Cros.. 2024. 10. 22. @SessionAttribute 와 HttpSession을 멤버 필드로 주입 받는 것의 문제점 @SessionAttribute 사용 권장 안함@SessionAttribute는 주로 세션에 저장된 모델 속성을 뷰에서 다시 사용할 때 활용됩니다.인증 정보를 관리하는 용도로는 적합하지 않으며, 세션에 해당 속성이 없을 경우 예외가 발생할 수 있습니다.HttpSession을 멤버 필드로 주입받는 것의 문제점이 발생 될 수 있음Spring MVC 컨트롤러는 기본적으로 싱글톤(하나의 인스턴스)으로 관리됩니다.HttpSession을 멤버 필드로 주입받으면 여러 요청 사이에 공유될 수 있어 쓰레드 안전성 문제가 발생할 수 있습니다.메서드 파라미터로 HttpSession을 받아 사용하는 것의 장점HttpSession을 메서드 파라미터로 받아 사용하면, 각 요청마다 개별적인 세션 객체에 접근할 수 있어 쓰레드 안전.. 2024. 10. 22. 댓글 쓰기 및 삭제 및 인터셉터 적용(todo 인터셉터 수정 해야함) 학습 목표정방향 인서트는 JPA에서 엔티티 간의 연관 관계를 설정할 때, 연관 관계의 주인(owner) 엔티티를 통해 데이터를 저장하는 것을 의미합니다. 이는 양방향 매핑에서 특히 중요하며, 연관 관계의 주인 측에서 데이터를 추가하고 저장해야 연관 관계가 올바르게 맵핑됩니다. 댓글 등록 화면 측 코드 수정 댓글등록 ReplyDTO 만들기package com.tenco.blog_v2.reply;import com.tenco.blog_v2.board.Board;i.. 2024. 10. 22. 게시글 삭제 오류 해결 마이콜로 로그인 후 삭제 요청 해보기 fk 제약 조건 때문에 게시글을 삭제하면 댓글이 참조하는 게시글이 사라지기 때문에 삭제가 될 수 없음.어노테이션을 이용해서 도움 받기댓글의 FK에 값을 NULL로 변경하고 게시글 삭제댓글을 먼저 삭제하고, 게시글 삭제cascade 설정 하기package com.tenco.blog_v2.board;import com.tenco.blog_v2.reply.Reply;import com.tenco.blog_v2.user.User;import jakarta.persistence.*;import lombok.*;import java.sql.Timestamp;import java.util.ArrayList;import java.util.List;@NoArgsConstructor@.. 2024. 10. 22. 댓글 목록 보기 BoardService 코드 수정 (게시글 상세 보기)/** * 게시글 상세보기 서비스, 게시글 주인 여부 판별 */ public Board getBoardDetails(int boardId, User sessionUser) { Board board = boardJPARepository .findById(boardId) .orElseThrow(() -> new Exception404("게시글을 찾을 수 없어요")); // 현재 사용자가 게시글을 작성했는지 여부 판별 boolean isBoardOwner = false; if(sessionUser != null ) { .. 2024. 10. 22. 이전 1 2 3 4 ··· 12 다음