2023.05.31.WED

ronglong·2023년 5월 31일
0

[ 백준 ]

  • 1934번 최소공배수
    : 최소공배수는 두 수의 곱을 최대 공약수로 나눈 것이라는 원리를 까먹어서 내 벨로그에서 이전에 기록했던 내용을 검색함.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //선언
        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            StringTokenizer stringTokenizer = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(stringTokenizer.nextToken());
            int b = Integer.parseInt(stringTokenizer.nextToken());
            System.out.println(getLCM(b, a));
        }
    }

    public static int getLCM(int b, int a) {
        return a * b / getGCM(b, a);
    }

    public static int getGCM(int b, int a) {
        if (b % a == 0) return a;
        return getGCM(a, b % a);
    }
}
  • 1850번 최대공약수
    : 시간초과로 계속 실패했는데, 빠르게 글자를 쓰려면 BufferedWriter 컴포넌트를 사용해야한다.
import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //선언

        StringTokenizer stringTokenizer = new StringTokenizer(br.readLine());
        long a = Long.parseLong(stringTokenizer.nextToken());
        long b = Long.parseLong(stringTokenizer.nextToken());

        long gcm = getGCM(b, a);

        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
        while (gcm > 0) {
            bufferedWriter.write("1");
            gcm--;
        }
        bufferedWriter.flush();
        bufferedWriter.close();
    }

    public static long getGCM(long b, long a) {
        if (b % a == 0) return a;
        return getGCM(a, b % a);
    }
}

[ 유어클래스 다시 읽기 ]

  • section3. 테스팅(Testing)
    • 슬라이스 테스트(Slice Test)
      • @SpringBootTest, @WebMvcTest
      • @AutoConfigureMockMvc(API 계층 테스트)
      • @DataJpaTest(데이터 액세스 계층 테스트. @Transactional 포함->자동 롤백)
    • Mockito
      • Mock 객체 생성 및 Mocking 라이브러리
      • 계층 간 연결 끊기
      • @MockBean
      • @ExtendWith(MockitoExtension.class), @Mock, @InjectMocks
    • TDD(Test Driven Development)
      • 테스트와 구현, 리팩토링을 동시에
      • 실패하는 테스트 케이스부터 작성 후, 구현 시작

[ 느낀 점 ]

오전에 SQL 노랭이 30문제 풀이 완료.
요즘 컨디션 난조인 것 같은데, 체력 관리에 힘써야겠다.

낮에 특강에서 규칙적인 생활과 길지 않은 공백기간을 강조해주셔서,
요즘 생활패턴이 조금씩 느슨해지고 있었는데 다시 잡아볼 생각이다.
그리고 취업도 너무 재고 따지지 말고 늦어도 8월 안에 해서 개발자라는 직업을 일단 경험해봐야할 듯.
오늘 특강에서 말씀해주신대로 어딜가든 하기 나름이니까.

photoday 프로젝트를 통해, 통합 테스트가 아닌 코드 단위의 테스트의 중요성을 인식하게 되었는데, 이 부분에 대한 경험이 부족하다.
TDD란,,

0개의 댓글