24.06.13 목 TIL(Today I Learned)

신민금·2024년 6월 14일
0
post-thumbnail

TIL(Today I Learned)

: 매일 저녁, 하루를 마무리하며 작성 !
: ⭕ 지식 위주, 학습한 것을 노트 정리한다고 생각하고 작성하면서 머리 속 흩어져있는 지식들을 정리 !


알고리즘 코드카타

  • 문제 설명
    "명예의 전당"이라는 TV 프로그램에서는 매일 1명의 가수가 노래를 부르고, 시청자들의 문자 투표수로 가수에게 점수를 부여합니다. 매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올려 기념합니다. 즉 프로그램 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 됩니다. k일 다음부터는 출연 가수의 점수가 기존의 명예의 전당 목록의 k번째 순위의 가수 점수보다 더 높으면, 출연 가수의 점수가 명예의 전당에 오르게 되고 기존의 k번째 순위의 점수는 명예의 전당에서 내려오게 됩니다.
    이 프로그램에서는 매일 "명예의 전당"의 최하위 점수를 발표합니다. 예를 들어, k = 3이고, 7일 동안 진행된 가수의 점수가 [10, 100, 20, 150, 1, 100, 200]이라면, 명예의 전당에서 발표된 점수는 아래의 그림과 같이 [10, 10, 10, 20, 20, 100, 100]입니다.명예의 전당 목록의 점수의 개수 k, 1일부터 마지막 날까지 출연한 가수들의 점수인 score가 주어졌을 때, 매일 발표된 명예의 전당의 최하위 점수를 return하는 solution 함수를 완성해주세요.
  • 제한사항
    3 ≤ k ≤ 100
    7 ≤ score의 길이 ≤ 1,000
    0 ≤ score[i] ≤ 2,000
import java.util.*;

class Solution {
    public int[] solution(int k, int[] score) {
        int[] answer = new int[score.length];
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
        int temp = 0;

        for(int i = 0; i < score.length; i++) {
            priorityQueue.add(score[i]);
            
            if (priorityQueue.size() > k) {
                priorityQueue.poll();
            }

            answer[i] = priorityQueue.peek();
        }
        return answer;
    }
}

심화주차 개인과제 진행

Goal: "Controller, Service, Entity, DTO 레이어에 맞는 단위 테스트 작성"

필수 구현 기능

  • AOP 추가
  • DTO, Entity Test 추가
  • Controller Test 추가
  • Service Test 추가

추가 구현 기능

  • JaCoCo 를 추가하여 프로젝트 코드 커버리지 (테스트 코드 적용률)를 측정 후 퍼센티지를 60% 까지 상승시키기.
  • Fixture Monkey 를 사용하여 손쉽게 테스트용 객체를 생성
  • 통합테스트 환경 분리 (== Test 용 DB 분리)

Why: 아래 질문을 고민해보고 답변을 함께 제출

  1. 통합 테스트와 단위 테스트의 차이점에 대해서 설명해주세요.

  2. 통합 테스트과 단위 테스트의 장/단점에 대해서 설명해주세요.

  3. 레이어별로 나누어서 Slice Test 를 하는 이유에 대해서 설명해주세요.

  4. 테스트 코드를 직접 짜보고 나서 느낀 테스트 필요성을 적어주세요.

  5. 테스트 코드를 짜면서 어려웠던 점을 적어주세요.

profile
야옹

0개의 댓글