고민되는 점
[ 회원, 센터 ]
안녕하세요 빅토리 멘토님~ 저희 프로젝트 설계 하다가 고민되는 부분이 있어 질문드립니다!
저희는 일반 사용자와 공공 센터 간 물품, 재능 기부 플랫폼을 계획하고 있는데요. 일반인(회원)과 복지 재단(센터) 간 물품, 재능 기부 공고, 일정 예약 등의 기능이 있습니다. 그리고 센터가 물건이 필요해서 요청하는 게시판인 '기부 받아요'와 회원이 기부하고 싶은 물건을 올리는 '기부 할래요' 게시판이 있습니다.
일단 센터는 사업자 등록 번호 같은 컬럼이 필요하기 때문에 회원과 센터 계정 테이블을 별도로 나누었습니다. 회원, 센터 둘 다 본질적으로는 회원가입 후 로그인해서 서비스를 사용할 수 있는 주체입니다.
게시글에 회원 또는 센터가 댓글을 작성할 때 회원, 센터 엔티티가 각자 다른 테이블에 저장되기 때문에 댓글 작성자의 PK를 저장하는 컬럼에서 이 식별자가 어느 테이블의 식별자인지 구분할 수 없다는 문제가 있었습니다.
그래서 어떤 테이블의 식별자인지 구분하는 필드를 추가해야 할 지, 분리한 도메인에 맞게 연관된 테이블도 더 잘게 분리할 지, 정규화를 포기해서 회원과 센터를 같은 테이블에 저장해서 다루는게 좋을지 고민입니다.
비슷하게 '기부할래요', '기부받아요' 게시판에서 특정 게시글에 대해 센터와 회원이 기부 일정을 잡기 위해 쪽지로 대화를 나눌 수 있는데요. 쪽지로 대화를 나눌 때는 '기부할래요' 또는 '기부받아요' 게시판의 게시글을 참조할 수 있습니다. 그러면 이 '쪽지' 자체를 저장하는 테이블에서도 어떤 게시판의 게시글의 PK를 유지해야 할 것 같은데 어떤 게시판인지 구분하기 위해 별도의 필드를 추가할 지, null 필드를 감수하고 두 게시판을 합칠 지 고민입니다.
회원/센터나 '기부 할래요'/'기부 받아요' 테이블들은 완전히 다르진 않고 많은 부분이 비슷하긴 합니다. 즉, 현재처럼 성격이 다른 도메인을 각각 테이블을 나누어 어느 도메인의 식별자인지 구별해주는 것이 나을지 아니면 성격이 다르다고해도 하나의 테이블로 두고 적용되지 않는 컬럼은 null로 저장해서 앞에서 고민했던 부분을 없앨지 고민이 됩니다.
[ 이미지 업로드 ]
사용자는 게시글 작성, 수정 시 사진을 첨부, 삭제할 수 있습니다. 해당 기능 화면에서는 업로드된 사진에 대해 축소된 사진을 받아서 파일 첨부 UI에서 보여주는데요.
이 때 원본 이미지가 고해상도 이미지라도 CSS 스타일을 적용하여 width, height 를 제한할 경우 클라이언트가 다운받는 리소스의 크기 자체가 줄어드는지, 아니면 원본 이미지를 다운받은 후에 CSS가 크기만 줄여주는 방식인지 궁금합니다.
예를 들어 10MB의 1000 * 1000 이미지가 있고 이를 CSS에서 500 * 500 으로 줄이면 2.5MB 의 500 * 500 이미지가 다운받아지는지, 아니면 10MB의 1000 * 1000 이미지를 다운받고 브라우저가 500 * 500으로 줄여주는 것인지 궁금합니다.
궁극적으로는 사용자가 원본 이미지가 필요하지 않은 상황에서도 이를 다운받지 않도록 하기 위함입니다.

ERD 설계 목록