TIL

· TIL
@Override @Transactional public void deletePost(Member member, Long postId) { Post post = findPost(postId); // repository에서 Post 찾기 checkPostWriter(member, post); // Post의 작성자가 Member가 일치하는 지 s3ImageServiceImplV1.deleteImageUrlList(post.getImageUrl()); // S3에서 이미지 객체 삭제 post.deletePost(); // Post isDeleted 컬럼 true로 바꾸기 } 내가 작성했던 코드다 해당 코드를 보면 Transactional 이 달려있고 S3에서 이미지를 삭제하는 메서드가 있다. 문제 Entit..
· TIL
NoSQL 특징 NoSQL은 비관계형 데이터베이스입니다. 스키마가 존재하지 않고 Map 형태로 Key Value 로 이루어져 있으며 관계형 데이터베이스와 달리 PK, FK 등의 관계를 정의 하지 않습니다. 장점 데이터 모델링이 유연합니다. 관계형 데이터베이스에 비해 쓰기와 읽기 성능이 빠릅니다. 최적화된 키 값 저장 기법을 사용해서 응답속도나 처리효율 등에서 성능이 뛰어납니다. 단점 데이터 중복을 계속 업데이트해야 합니다. RDBMS RDBMS는 관계형 데이터베이스입니다. 스키마가 존재하며, Row와 Column 으로 구성되어 있습니다. PK, FK 로 관계를 정의 할 수 있고 PK로 데이터 무결성을 보장하며, FK로 참조 무결성을 보장합니다. 데이터가 이미 정해진 스키마에 따라 저장이 되며 관계를 통해..
· TIL
S3 버킷의 객체를 삭제하는 방법은 AmazonS3 의존성을 이용해 안에 있는 메서드로 지워주면 된다. 나는 현재 이런 방식으로 저장하고 있는데... { "0": "https://amazonawss3.com/UUID", "1": "https://amazonawss3.com/UUID" } 여기서 value의 uuid(객체 이름)만 가져와서 삭제하라고 하면 된다. @Override public void deleteImageUrlList(Map originalImageUrl) { for(int i = 0; i < originalImageUrl.size(); i++) { String[] urlSplit = originalImageUrl.get(i).toString().split("/"); String objec..
· TIL
쿼리 최적화란 성능이 낮은 쿼리의 응답 속도를 개선하는 작업입니다. SELECT 에는 꼭 필요한 컬럼만 WHERE절에 가급적이면 별도의 연산을 하지않는 것을 권장여기서 Inefficient 쿼리의 경우, Full Table Scan을 하면서 모든 Cell 값을 탐색하고, 수식을 건 뒤, 조건 충족 여부를 판단해야 합니다. 반편 Improved 쿼리의 경우 기존에 r.value 가 가지고 있는 index를 그대로 활용할 수 있기 때문에 모든 필드 값을 탐색할 필요가 없어 Inefficient 쿼리 대비 더 짧은 러닝 타임을 가질 수 있다. -- Inefficient SELECT m.id, ANY_VALUE(m.title) title, COUNT(r.id) r_count FROM movie m INNER J..
· TIL
RequestDto public record PostCreateRequestDto( Category category, @Size(max = 50, message = "제목은 최소 1자 이상, 최대 50자 까지 입력 할 수 있습니다.") @NotBlank(message = "제목은 필수 입력란입니다.") String title, @Size(max = 1000, message = "글 내용은 최소 1자 이상, 최대 1000자 까지 입력 할 수 있습니다.") @NotBlank(message = "글 내용은 필수 입력란입니다.") String content, List imageUrlList ) { } PostService public Long createPost(Long memberId, PostCreateRe..
· TIL
오늘 깊게한 고민이다. 개요 팀 프로젝트 진행 중, Entity에 대한 생성을 어떻게 할 것인지 고민을 많이 했다. 우선 생성 방식은 정적 팩토리 메서드를 사용하기로 했다. 이유는 다음과 같다. 생성자를 쓰는 것보다 이름을 갖게 할 수 있어서 의미가 더욱 명확해진다. 말고도 더 많은 장점이 있지만 가장 큰 이유가 저거라고 판단했다. 근데 여기서 고민이 됐던게 // 1. public static User from(UserCreateRequestDto requestDto) { return User.builder() .username(requestDto.username()) .password(requestDto.password()) .build(); } // 2. public static User from(S..
wonow_
'TIL' 카테고리의 글 목록 (8 Page)