일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- OS
- mysql
- 완전탐색
- 알고리즘
- Docker
- Algorithm
- Data structure
- javascript
- jpa
- CS
- java
- 트러블슈팅
- 트랜잭션
- redis
- 프로그래머스
- CSS
- websocket
- HTML
- It
- db
- 운영체제
- nosql
- 영속성 컨텍스트
- PYTHON
- 백준
- 데이터베이스
- spring
- DFS
- 자료구조
- BFS
- Today
- Total
목록전체 글 (104)
If at first you don't succeed, try again
* 문제 상황public List findPostsInfiniteScroll(final CustomUserDetails userDetails, boolean tagExist, Long lastPostId, final Integer pageSize) { ... return posts.stream() .map(post -> { Long commentCount = commentRepository.findByPostId(post.getPostId()); Long likeCount = likeCountRepository.findByPostId(post.getPostId()); Long likeYn = l..
* 문제 상황우선 Post엔티티와 PostImage 엔티티는 양방향 연관관계로 설정했다.하나의 Post는 여러 개의 PostImage를 가질 수 있고(1 : N)PostImage는 하나의 Post에 속해 있기 때문이었다.(N : 1)그리고 Post 엔티티와 PostImage 엔티티에는 디버깅을 하기 위해서 @ToString 을 썼었다.@Entity@Table(name = "post")@Getter@AllArgsConstructor@NoArgsConstructor@EntityListeners(AuditingEntityListener.class)@Builder@ToStringpublic class Post { ... @OneToMany(mappedBy = "post", cascade = Casca..
* 문제 상황중복을 확인하는 검증에서 Dto 클래스 필드의 변수를 isDuplicate로 지정을 했었다.그 후 프론트와의 API 연동에서 response 부분을 확인해보니 isDuplicate가 아니라 duplicate로 표시가 되었다.아래는 DTO 코드이다.@Getter@AllArgsConstructorpublic class DuplicateCheckResponse { private boolean isDuplicate;}여기서 기대되는 값은{ "isDuplicate": false}인데 표시되는 값은{ "duplicate": false}였다. * 원인원인은 lombok의 getter와 json을 직렬화 & 역직렬화하는 jackson 라이브러리에 있었다.lombok 라이브러리의 공식 문서를 살펴보..
* 개요정말 오랜만에 글을 쓴다. 왜 오랜만에 글을 쓰냐면...사이드 프로젝트 2개를 동시에 진행하느라 블로그에 글을 쓸 여유가 없었다ㅜㅜ사이드 프로젝트를 진행하면서 발생했던 문제들과 해결 과정을 적고자 한다.먼저 가장 먼저 발생했던 문제는 사진 업로드였다. * 문제 상황@PostMappingpublic ResponseEntity createPost( @AuthenticationPrincipal CustomUserDetails userDetails, @RequestBody PostCreateRequest request, @RequestBody List imageFiles) { PostResponse response = postService.create(userDetails, ..
* 개요저번 글에 lock에 대해 개념과 실습을 진행했었다. [DB] Lock의 개념 및 테스트이번 글에서는 비관적 락과 낙관적 락에 대해 정리할 예정이다.예시는 좋아요 수와 관련하여 들도록 하겠다! * 비관적 락(Pessimistic Lock)비관적 락은 데이터 접근 시에 항상 충돌이 발생할 가능성이 있다고 가정한다.(비관적 관점)데이터를 보호하기 위해 항상 락을 걸어 다른 트랜잭션 접근을 방지한다.다른 트랜잭션은 락이 해제될 때까지 대기하는데, 락을 오래 점유하면 성능 저하 또는 deadlock으로 인한 장애가 발생한다.지난 글에서 살펴봤던 record lock은 비관적 락에 해당한다.비관적 락을 구현할 수 있는 방법은 크게 2가지로 나뉜다. * 비관적 락 - 방법 11. 트랜잭션 시작transact..