목록2024/07 (21)
자바칩
멘토링 시작 날짜: 2024.05.06 멘토링을 시작하면서 블로그도 같이 시작했다.2개월 동안 70여개의 포스트를 작성했다. 멘토링 시작 전에는 코딩 테스트에만 집중했다.코딩 테스트에 붙으면 다른 것들은 뭐 어떻게든 되겠지 라는 생각으로 안일하게 살았다.하지만 멘토링을 시작하고 나서는 그 생각이 완전히 사라지고, 오히려 여기서 어떻게 더 발전시킬 수 있을까 생각 중이다. 멘토링을 받으면서 지정해준 도서를 읽고 멘토님께서 하는 질문에 대답을 하고, 대답을 하지 못하면 추가로 공부를 하였다.읽은 도서는 다음과 같다.'자바의 신 1권, 2권'을 읽고 자바의 기본 문법부터 고급 기능까지 깊이 있는 이해를 할 수 있었다.'스프링 입문을 위한 자바 객체 지향의 원리와 이해'를 읽고 객체 지향의 4대 특성과 설계 5..
난이도: Gold 4문제: https://www.acmicpc.net/problem/17406 문제크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 값은 4이다.1 2 32 1 14 5 6 배열은 회전 연산을 수행할 수 있다. 회전 연산은 세 정수 (r, c, s)로 이루어져 있고, 가장 왼쪽 윗 칸이 (r-s, c-s), 가장 오른쪽 아랫 칸이 (r+s, c+s)인 정사각형을 시계 방향으로 한 칸씩 돌린다는 의미이다. 배열의 칸 (r, c)는 r행 c열을 의미한다.예를 들어, 배열 A의 크기가 6×6이고, 회전 연산이 (3, 4, 2)인 ..
1. 로컬 브랜치가 원격 브랜치와 일치하는지 확인git status 2. 변경된 파일을 스테이지에 추가git add 파일명 # 특정 파일만 스테이지에 추가git add . # 현재 디렉토리와 하위 디렉토리의 모든 변경된 파일을 스테이지에 추가 3. 커밋하기git commit -m "커밋 메시지" # 커밋 메시지를 포함하여 커밋 4. 커밋 상태 확인하기 => 안해도 됨git log --onelineq # 터미널 탈출 5. 최근 커밋들만 푸시하기 git push origin 브랜치이름 6. txt 파일의 커밋 메시지를 사용하여 커밋git commit -F 커밋메시지파일명.txt 예시 1. 모든 변경 파일을 스테이지에 추가하고 커밋하기gi..
난이도: Gold 5문제: https://www.acmicpc.net/problem/2023 문제수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다.7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수이고, 7도 소수이다. 즉, 왼쪽부터 1자리, 2자리, 3자리, 4자리 수 모두 소수이다! 수빈이는 이런 숫자를 신기한 소수라고 이름 붙였다.수빈이는 N자리의 숫자 중에서 어떤 수들이 신기한 소수인지 궁금해졌다. N이 주어졌을 때, 수빈이를 위해 N자리 신기한 소수를 모두 찾아보자.입력첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다.출력N자리 수 중에서 신기한 소수를 오름차순으로 정렬해서 한 줄에 하나씩 출력한다.예..
난이도: Silver 2문제: https://www.acmicpc.net/problem/4963 문제정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오.한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야 한다. 지도는 바다로 둘러싸여 있으며, 지도 밖으로 나갈 수 없다.입력입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다.둘째 줄부터 h개 줄에는 지도가 주어진다. 1은 땅, 0은 바다이다.입력의 마지막..
@MockBean은 Spring의 테스트 컨텍스트에서 목(mock) 객체를 정의하기 위해 사용됩니다. @MockBean을 사용하면 Spring의 애플리케이션 컨텍스트에 목 객체를 등록하여, 해당 목 객체를 실제 애플리케이션 빈 대신 사용하게 할 수 있습니다. 이는 주로 통합 테스트 또는 웹 계층 테스트에서 사용됩니다.@MockBean의 역할목적: Spring 애플리케이션 컨텍스트에 목 객체를 등록하여, 해당 목 객체를 테스트에서 사용하도록 합니다.사용 위치: 주로 Spring의 컨트롤러, 서비스, 리포지토리 등을 테스트할 때, 해당 객체의 의존성을 목 객체로 대체하기 위해 사용됩니다.기능: @MockBean으로 정의된 객체는 Spring 컨텍스트에서 실제 빈 대신 사용되며, 이로 인해 실제 데이터베이스나..
@RunWith(MockitoJUnitRunner.class)JUnit5부터는 @RunWith 대신 @ExtendWith 사용목적: Mockito를 사용하여 단위 테스트를 수행하기 위해 사용됩니다.기능: MockitoJUnitRunner는 Mockito 어노테이션(@Mock, @InjectMocks)을 처리하고, 테스트 클래스에서 목(mock) 객체를 생성하고 주입하는 기능을 제공합니다.사용 위치: 보통 서비스 클래스나 리포지토리 클래스와 같은 비즈니스 로직을 테스트할 때 사용합니다. @RunWith(MockitoJUnitRunner.class) public class UserServiceTest { @InjectMocks private UserService user..
@InjectMocks와 @Mock 어노테이션의 사용은 각기 다른 목적을 가지고 있습니다. 이를 통해 단위 테스트에서 객체 간의 의존성을 효과적으로 관리하고, 테스트 대상 객체와 그 의존 객체를 올바르게 설정할 수 있습니다.@Mock역할: 특정 클래스의 목(mock) 객체를 생성합니다.사용 위치: 테스트에서 사용되는 의존 객체에 대해 사용됩니다.목적: 목 객체를 통해 실제 객체의 동작을 시뮬레이션하고, 특정 메서드 호출에 대해 정의된 동작을 수행하도록 합니다. @Mock private UserRepository userRepository; @Mock private PasswordEncoder passwordEncoder; 위 예시에서는 UserRepository와 Password..