코드를 살펴보면서 좋아요 기능에 멀티 스레드로인한 동시성이나 성능을 개선할 수 있는 방법이 떠올라 개선해보았습니다. 제가 계속해서 개선해나간 기록들을 남겨두며 누군가에게 도움이 됐음 좋겠습니다. 문제 상황 @Transactional public Long likeBoard(final Long boardId, final Long memberId) { Board board = boardReadService.getBoardOne(boardId); board.getBoardCount().plusLike(); return likeRepository.save(Like.createLike(memberId, boardId)).getId(); } 여러 스레드가 Board 객체를 조회하고 plusLike를 한 후 마지막으로..
객체지향 생활 체조 원칙에는 9가지의 원칙이 존재한다. 그 중에 규칙 8을 인용해보면 다음과 같은 규칙이 존재한다. 규칙8. 일급 컬렉션을 사용하라 이 규칙의 적용은 간단하다. 컬렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 컬렉션은 매우 유용한 원시타입이다. 많은 동작이 있지만 후임 프로그래머나 유지보수 담당자에 의미적 의도나 단초는 거의 없다. 간단하게 먼저 일급 컬렉션을 보여드리자면 다음과 같다. List list = new ArrayList(); list.add(3); list.add(4); list.add(6); list.add(1); 위 코드를 객체로 한번 감싸 주는 것이다. public class PeopleQueue { private List peoples; public P..
오늘의 주제는 Stream이다. 실무에서 많이 사용하고있는 문법인 Stream은 가독성을 높여주고 지연 연산을 통해 성능을 최적화 할 수 있다. 우리는 그럼 이러한 많은 장점을 보유한 Stream을 다음 순서로 알아볼 것이다. Stream에 존재하는 다양한 메서드 생성하기 가공하기 결과 만들기 동작 순서 성능 향상 지연 처리 Null-safe Stream 생성 줄여 쓰기 자 그럼 시작해보자! Stream에 존재하는 다양한 메서드 우린 차근 차근 Stream을 생성하고 가공하고 결과를 만드는 것을 차례대로 해볼 것이다. 그저 문법이기 때문에 그렇게 어렵지 않을 것이다. 그렇다면 같이 Stream을 생성하여 결과를 만들어보자 !! 1. 생성하기 먼저 배열을 통해 Stream을 생성해보자 ! public cl..
현대 개발자들은 Swagger나 Spring docs를 사용해 RestFul API를 문서화 한다. 그렇다면 왜 문서화를 할까? API 문서화가 필요한 경우 혼자 개발하는 경우엔 필요없는 기능일지도 모르지만, 같이 개발한다고 가정해보자 프론트엔드 개발자는 RestAPI 호출되는 방식을 알아야 한다. 하지만 문서 없이 말로만 설명 한다면 계속 까먹을 때마다 설명해야하는 번거로움도 존재할 수 있고 의사전달이 잘못될 수도 있는 문제가 발생한다. 어찌보면 이는 당연한 일이다. 누군가와 같이 일을 하는데 문서 없이 그저 말로만 하는 경우는 있을 수 없는 일이다! 그렇다면 대표적인 문서 자동화 도구인 Swagger와 RestDocs에 대해서 살펴보도록 하자 Spring REST Docs Restful 서비스의 문서..
- Total
- Today
- Yesterday
- 프로젝트
- 인터뷰
- swarm
- CS
- 면접준비
- 게시판
- 면접
- DevOps
- 개발
- java
- 프로그래밍
- MySQL
- 코드
- 취업준비
- 취준
- 면접 준비
- Kotlin
- thread
- IT
- DB
- docker
- 취업
- 백엔드
- JPA
- 자바
- 개발자
- Redis
- 동시성
- Spring
- 코딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |