분류 전체보기(161)
-
"Run all Tests"로 모든 단위테스트를 한번에 돌릴 때 실패하는 이슈
카카오 테크 캠퍼스 3단계 축팅의 인기피드를 개발하고 테스트를 하고 있는 도중 아래와 같은 이슈를 만났습니다. Redis에서 인기 게시물을 조회하는 기능 테스트시 Fail이 발생하였습니다. 단위테스트를 수행할 경우에는 성공하는 데, "Run all Tests"로 모든 단위테스트를 한번에 돌릴 때는 실패할 때도 있고, 성공할 때도 있습니다. 먼저 상황을 분석해보겠습니다. 상황 분석 teardown.sql을 사용해 테스트 시에 게시물 300개를 테이블에 저장하고 있습니다. Run all Tests시 해당 ControllerTest에서 Fail이 발생하였습니다. @Sql("classpath:db/teardown.sql") @AutoConfigureMockMvc @SpringBootTest(webEnvironm..
2023.10.14 -
ComposeMethod을 적용해 리팩터링 해보자
현재 카카오 테크 캠퍼스 3단계에서 축팅이라는 서비스의 인기 피드 부분를 담당해 개발하고 있는 중입니다. 개발 하는 중 멘토님께서 피드백해주신 내용을 블로그로 포스팅해보려고 합니다~ 현재 코드 @Transactional public void execute(){ List top300Posts = postRepository.findTop300ByOrderByPopularityDesc(PageRequest.of(0, POPULARITY_SIZE)); redisTemplate.delete(RedisKey.POPULAR_POST_KEY.getKey()); top300Posts.forEach(getIncompletePopularPostDTO -> { redisTemplate.opsForZSet().add(Redis..
2023.10.13 -
Instant 클래스 도입에 관한 고찰
현재, 카카오테크캠퍼스 3단계에서 저희 팀 Spark는 게시물의 날짜를 저장하는 데 LocalDateTime 자료형을 사용하고 있습니다. @Entity @NoArgsConstructor(access = PROTECTED) @Getter public class Post { // Primary Key @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long postId; // 게시글 ID ... @Column(nullable = false) private LocalDateTime createdAt; // 생성일 } 저희 어플리케이션에서는 게시물의 생성일을 활용해 게시물을 나이를 구하여 이를 인기도에 반영하고 있습니다. 즉, 게시물의 생성일 데..
2023.10.02 -
이진탐색을 알아보자!
이진 탐색은 정렬된 배열 또는 리스트에서 사용하는 탐색 방법 중 하나이다. 아이디어 중간 값을 이용하여 찾고자 하는 항목이 왼쪽에 있는 지 오른쪽에 있는 지를 알아내어 탐색의 범위를 반으로 줄이자 사용할 수 있는 경우 고정되고 정렬된 데이터 탐색의 경우 적합 public class algo1_1 { static int[] nums = {1,4,7,9,10,11,13,17,20,23}; public static void main(String args[]) throws IOException { BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in)); int find = Integer.parseInt(br1.readLine()); S..
2023.10.01 -
CPU의 성능에 영향을 끼치는 것들
CPU는 컴퓨터 부품중 제일 중요한 부품입니다. 따라서, CPU의 성능을 아는 것이 중요합니다! 이번 포스팅에서는 CPU의 성능에 대해서 알아보겠습니다. CPU의 성능에 영향을 미치는 것에는 크게 3가지가 있습니다. 1. 클럭 2. 코어 3. 스레드 클럭수를 빠르게! CPU의 속도를 빠르게 만들어보자! 컴퓨터에선 클럭 신호(Clock Signal)를 통해서 시간을 구분할 수 있는데, 컴퓨터 부품들은 이 클럭 신호에 맞춰 움직인다. 따라서, 클럭 신호를 빠르게 만들어 버리면 연산 속도가 빨라지게된다. 하지만, 연산 장치가 너무나도 빨라져버리면 컴퓨터에서 수행하는 작업들은 꼬이게 되고, 발열 문제도 발생할 수 있다. 즉, 적당히 빠른 클럭 신호면 CPU가 빨라진다. 클럭 속도 클럭 속도 : 헤르츠(Hz) 단..
2023.09.19 -
인터럽트가 발생한다면, CPU는 어떻게 처리할까??
아마 이 포스팅의 제목을 보고 "인터럽트가 발생한다"라는 문장에서 아래와 같은 점들이 궁금했을 것이다. 첫째로, 인터럽트란 무엇인가? 둘째로, 인터럽트는 어디에서 발생하는 것인가? 인터럽트가 뭐야? 인터럽트란 컴퓨터가 작업을 수행하던 도중 예기치 못한 특수한 상황이 발생하여 작업을 중단하고, 특수한 상황을 먼저 처리한 후 원래의 작업으로 되돌아가 나머지 작업을 계속 수행하게 되는 일련의 과정이다. 필자는 인터럽트의 개념에서 3가지가 궁금했다. 첫째로, 특수한 상황은 무엇일까?? 둘째로, 원래의 작업으로는 어떻게 되돌아가는 것일까?? 마지막으로, 인터럽트가 발생하고 처리하는 일련의 과정의 순서는 어떻게 되는 거야?? 특수한 상황 "특수한 상황은 무엇일까??" 이 질문은 필자가 처음에 궁금해했던 인터럽트는 ..
2023.09.14