본문 바로가기

프로젝트/SNS 프로젝트10

[구독하기 API] 모델링 하기 package com.photogram.domain.user; import java.time.LocalDateTime; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.PrePersist; import jakarta.persistence.Table; import jakarta.persistence.Un.. 2024. 3. 29.
[구독하기 API] 연관 관계 개념 1. FK는 many가 가져간다. Board N : 1 User User테이블 : 한 명의 유저는 게시글을 여러 개 쓸 수 있다. (OneToMany) Board테이블 : 하나의 게시글을 한명의 유저가 쓸 수 있다. (ManyToOne) Board테이블이 FK를 가져간다. 따라서 스키마마다 userId를 넣으면, 해당 게시글은 누가 적었는지, 그리고 해당 user는 어떤 게시글을 적었는지를 알 수 있게된다. 2. N:N의 관계는 중간테이블이 생기며 N :1 : N의 관계가 된다. User N : N Movie User테이블: 한 명의 유저는 영화를 여러 개 볼 수 있다. Movie테이블: 하나의 영화는 여러 명의 유저가 볼 수 있다. N:N의 관계에서는 항상 중간 테이블을 생성한다.이것을 '예매'라고 하.. 2024. 3. 29.
[회원정보 수정] 글로벌 예외처리 글로벌 예외 처리(Global Exception Handling)란? 애플리케이션에서 발생하는 모든 예외를 중앙 집중적으로 처리하는 방식 예외 처리 코드를 각각의 컨트롤러나 서비스 메서드마다 반복해서 작성하는 것을 피하고, 일관된 방식으로 예외를 처리할 수 있도록 한다. 일반적으로 웹 애플리케이션에서는 예외가 발생하면 HTTP 응답 코드와 함께 에러 페이지를 반환한다. 그러나 글로벌 예외 처리를 구현하면 예외를 캐치하고 일반적인 형식으로 에러 응답을 반환하는 중앙 집중식의 예외 처리 로직을 구현할 수 있다. 글로벌 예외 처리의 주요 목적 일관성 있는 에러 응답 중복 코드 제거 애플리케이션 로직과 분리: 글로벌 예외 처리는 애플리케이션의 핵심 로직과 예외 처리 로직을 분리하여 코드의 가독성을 높이고 유지보.. 2024. 3. 29.
[회원정보 수정] 유효성 검사 현재 상황 1. 필수로 받아야 하는 데이터가 공백으로 들어갈 수 있다. >> 서버단(프론트,백엔드)에서 해결 2. 현재 userId를 1번으로 고정시켜놔서 이것도 변수로 처리해줘야 한다. >> DB단에서 해결 프론트단 update.js에서 수정버튼을 누르면 required가 제대로 동작하지않고 데이터간다 따라서 update()함수를 호출하는 것을 button태그가 아닌 form태그에 두었다. 이름 form태그에서는 action경로를 지정하지않고 update()에 event를 담아 event.preventDefault(); 를 사용해서 ajax의 .done에 지정한 경로로 이동할 수 있게 했다. 백엔드단 프론트단뿐만 아니라 백엔드단에서도 막아야하는 이유: 제공한 페이지가 아닌 Postman을 이용해 요청하.. 2024. 3. 29.