본문 바로가기

전체 글42

[Spring] 테스트 클래스는 빈으로 등록이 될까? [ 그러면 nested-class 들은?] 스프링은 테스트 클래스를 빈으로 등록을 할까..? 스프링에서 unit test, integration test를 진행하고자 할 때, test 폴더 계층에서 테스트를 보통 진행한다. 그러다 보면 자연스럽게 application context 등록 과정에 대해서 고찰을 하게 되고, component scan, 공식문서등 여러 정보와 설명들을 찾아보게 된다. 그러나 항상 보는 글 그리고 공식문서 까지도, 스프링에 비교적 익숙하지 않은 사용자들은 이해하기 어려운 부분이 다소 포함이 되어 있고, 이 빈 등록 과정에 대해서 추상적으로 설명되어 있는 글들을 마주하곤 해서, 이번 주제는 스프링에서 테스트할 때 '테스트 클래스'를 빈으로 등록할까를 시작으로 끝에는 중첩클래스(inner class, static class.. 2024. 5. 2.
[Java] SingleThread, MultiThread[ run()을 바로 호출할 때 start() 대신] Thread Thread의 정의는 한 프로그램 내에서 작업의 주체 단위를 의미합니다. 1:N관계를 가질 수 있기 때문에, 한 프로그램 내에서 여러 thread를 소유할 수 있습니다. start(), run() 생각해 보면, Thread를 만들고, start(), run() 메서드의 차이점을 모르고 Thread를 사용하는 건 말이 안 되기 때문에 주제는 start() 메서드와 run() 메서드는 어떻게 실행되며, 왜 둘의 차이가 발생하는지 작성합니다. 위 사진은 Runnable 인터페이스 입니다. 스레드 프로그래밍을 하기 위해서 Thread 클래스를 상속받거나, Runnable 인터페이스를 구현한다는 것은 알고 있습니다. 하지만 어떤 Article에서는 이것을 이렇게 설명합니다. 1. Thread 클래스를.. 2024. 3. 13.
[프로그래머스] 없어진 기록 찾기 (Lv.3 - select 에 혹시 유실된 데이터를 보려고 하지 않았는지??) SQL https://school.programmers.co.kr/learn/courses/30/lessons/59042 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 쿼리 select b.ANIMAL_ID, b.NAME from ANIMAL_INS a right outer join ANIMAL_OUTS b on a.ANIMAL_ID = b.ANIMAL_ID where a.ANIMAL_ID is null order by a.ANIMAL_ID ASC; # ===== 아래는 오답 ====== # 두 쿼리의 차이점은 select 문에 존재. select a.A.. 2024. 2. 24.
[백준] 회문 (골드5, 시간복잡도는 왜 선형을 유지할 수 있을까.. N^2이 아니고?) https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 설명 회문(palindrome)은 앞 뒤 문자가 같아, 앞으로 읽어도 뒤로 읽어도 같은 문자가 되는 문자열을 의미한다. 우선 회문의 개념은 알았으니 문제를 좀 살펴보면, O(N^2) 풀이로는 도저히 풀 수 없을 것 같다는 걸 문자열의 범위만을 봐도 알 수 있다. 문자열의 길이는 최대 10만 까지 주어지므로, T개의 케이스를 모두 연산해야 하기 때문에 O(T * N^2) 만큼의 시간이 소요되게 알고리즘을 작성하면 시간초과가 난다.. 2024. 2. 8.