73일차 (2) - 로그인 시 화면에 프로필이미지 처리, 댓글 이미지 처리

Yohan·2024년 6월 8일
0

코딩기록

목록 보기
113/156
post-custom-banner

회원가입시 프로필 이미지가 클라이언트, 서버, DB에 들어가는 부분은 처리 완료

이제 로그인했을 때 화면에 프로필 이미지가 뜨게 처리하는부분을 해보자


로그인했을 때 세션에 데이터를 넣어서 로그인시 welcome 옆에 사진 띄우기

LoginUserInfoDto

  • 로그인 시 클라이언트에 화면에 보낼 정보를 모아놓은 Dto객체에 프로필 이미지 추가

xml 업데이트

  • 회원 정보 개별 조회시 프로필 이미지 업데이트되게 쿼리에도 추가

header.jsp

  • c:choose는 if, else문과 동일
  • 프로필이 있고 로그인되어있으면 프로필 이미지 부여, 그 외에는 기본 이미지 부여

자동 로그인시의 쿼리에도 프로필 이미지가 생성되게 프로필 이미지 추가


프로필 사진 없이 가입했을 때 db의 프로필 이미지에 이미지값이 들어오는 버그해결

  • 조건을 걸어 프로필 이미지가 있을 때만 서버에 업로드 후 경로를 반환하게 수정

로그인한 회원의 프로필이 댓글에도 뜨게함

  • 댓글 창에서 로그인했을 때 로그인 완료하면 바로 댓글창으로 redirect되게 함

  • 아래와 같이 같은 사진이 뜸

댓글 목록에 있는 회원들의 프로필 이미지 등록

댓글 목록에 있는 회원들의 프로필 이미지를 가져와야되기 때문에 Member와 Reply 테이블을 조인해서 댓글에 프로필 사진 컬럼을 가져올 수 있게함


특이사항

  • DB와 1대1 매칭되는 Reply 객체에 프로필 이미지 필드를 추가하여 진행할 수 있지만 원칙적으로 더 큰 사이즈의 프로젝트나 유지보수를 위해 ReplyFindAllDto 객체를 만들어 진행
    -> 회원과 댓글 테이블의 조인한 결과 테이블을 따로 관리 (조인 결과 댓글 목록에 프로필 이미지가 들어있음)

ReplyFindAllDto

public class ReplyFindAllDto {

    private long replyNo;
    private String replyText;
    private String replyWriter;
    private LocalDateTime replyDate;
    private long boardNo;
    private String account;
    private String profileImg;
}

특정 게시물에 달린 댓글 전체 목록 조회할 때 Reply -> ReplyFindAllDto로 변경

  • Mapper, Service, xml 모두 변경

ReplyMapper.xml 수정

  • resultType또한 Dto로 변경

ReplyDetailDto

  • 댓글 전체 조회시 프로필 이미지를 넣었으므로 (ReplyFindAllDto) 상세조회시 프로필 이미지가 업데이트 되게 추가

getReply.js

  • 클라이언트에서 댓글 목록을 렌더링하는 부분에서 ReplyDetailDto에서 추가한 profile을 추가
  • 프로필이 있다면 profile 사진추가 or 없으면 기본 이미지 추가
profile
백엔드 개발자
post-custom-banner

0개의 댓글