🚗 Backend Toy Project
[Photogram] 프로필 페이지 - 뷰 렌더링
이번에는 저번 시간에 이어서 사용자가 저장한 이미지를 View 페이지에 뿌려 보여줄 수 있도록 구현해보려고 합니다. 여기서 양방향 매핑 개념이 나오게 됩니다. 📝 Entity 우선 User 객체에 Image 객체를 저장하는 리스트를 새로 구현해주었습니다. package com.cos.photogram.domain.user; ... @Data @Builder @NoArgsConstructor @AllArgsConstructor @Entity public class User { ... @OneToMany(mappedBy = "user") @JsonIgnoreProperties({"user"}) private List images = new ArrayList(); ... } 해당 변수는 연관관계의 주인이 아니..
[Photogram] 프로필 페이지 - DB에 이미지 업로드
이전시간까지는 서버에 이미지를 업로드 해보았고 이번에는 데이터베이스에 이미지를 저장해보려고 합니다. 📝 Service 우선 이전 시간에 작성했던 upload() 함수에 코드를 추가해주었습니다. package com.cos.photogram.service; ... @RequiredArgsConstructor @Service public class ImageService { private final ImageRepository imageRepository; @Value("${file.path}") private String uploadFolder; public void upload(ImageUploadDto imageUploadDto, PrincipalDetails principalDetails) { UUI..
[Photogram] 프로필 페이지 - 서버에 이미지 업로드
📝 View 현재 사진 업로드 페이지의 일부는 다음과 같이 구현되어 있습니다. 업로드 여기서는 POST 요청을 통해 전달하는 데이터의 타입이 file과 text 두 개이므로 enctype을 multipart/form-data로 지정해준 모습입니다. 📝 Image 이미지 개체는 다음과 같이 구현하였습니다. package com.cos.photogram.domain.image; ... @Data @Builder @NoArgsConstructor @AllArgsConstructor @Entity public class Image { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @JoinColumn(name = "user_id..
[Photogram] 구독하기
📝 연관관계 구독하기 기능을 구현해보기 전에 먼저 연관관계부터 파악해보겠습니다. 한 명의 사용자는 여러 명의 사용자를 구독할 수 있으며, 한 명의 사용자는 여러 명으로부터 구독을 받을 수 있습니다. 즉, 둘의 관계(User, User)는 각각 1:N, N:1로 N:N이 됩니다. 다만 개체의 관계를 N:N 관계로 표현하는 것이 그렇게 좋은 방법은 아니므로 이를 1:N 두 개를 사용하여 구현하려고 합니다. 이를 자바 코드로 살펴보면 다음과 같습니다. package com.cos.photogram.domain.subscribe; ... @Data @Builder @NoArgsConstructor @AllArgsConstructor @Table( //데이터베이스에서 두 개의 컬럼에 대해 unique 제약조건 설..