분류 전체보기(164)
-
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 -
이력 유형 데이터 모델링을 어떻게 해야할까??
카카오테크캠퍼스 3단계에서 저희 팀이 만들 서비스는 "축팅"이다. 축팅에서는 축팅내에서 사용할 수 있는 고유한 화폐인 "폭죽"이라는 것이 있다. 저희 서비스에서는 폭죽의 거래 이력을 사용하는 기능이 있어, 폭죽 거래 이력을 DB에 저장하려고 합니다. ++ 운영 시에도 필요 그렇다면, 폭죽의 거래 이력 데이터는 어떠한 특징을 가지고 있을 까요?? 이력 유형 데이터는 아래와 같은 특징을 가지고 있습니다. 시간에 따라 데이터가 누적된다. 동일한 칼럼에 대해서 발생한다. 대량 데이터가 발생할 가능성이 높다. 성능에 영향을 주는 경우가 많다. 따라서, 이력 유형 데이터 모델링을 할 때는 데이터 관리 방법에 따라 어떤 유형의 이력 테이블을 관리하는 지 성능을 위해 어떤 부분을 고려해야 하는 지가 중요하다. 쉽게 말..
2023.09.14