오늘 아주 열심히 공부를 하고 있는데 test코드를 작성할 일이 생겼다. 그래서 test패키지에 java파일을 만들었는데 인식을 못하는 문제가 생겼다. test패키지에 만든 java파일도 main에 만든 java파일처럼 아이콘이 생겨야 하는데 생기지 않았다. 그래서 알아보다가 누군가가 이렇게 하면 된다고 알려줬다. 1. 상단메뉴 중 [File]을 선택하고 [Project Structure...]를 선택한다. 1. 왼쪽 메뉴에서 [Modules]를 선택하고 [Sources]탭을 선택한 후 src/test/java를 클릭하고 Mark as: 옆의 Tests를 선택하면 오른쪽처럼 Test Source Folders에 src/test/java라고 생긴다. 그럼 끝! (난 이미 지정했으니까 이미지 상에는 있지만 ..
이해하기 왼쪽과 같은 그래프가 있다고 하자. 깊이우선은 말그대로 옆에 노드가 있더라도 아래로 먼저 움직이고(깊게), 너비우선은 옆에 노드가 있으면 무조건 옆에 있는 노드로 움직인다고(넓게) 생각하면 된다. 옆 그래프를 DFS하면 1 - 2 - 4 - 5 - 3 - 6 이 되고, BFS하면 1 - 2 - 3 - 4 - 5 - 6 이 된다. 그렇다면 이 그래프를 코드로 나타내려면 어떻게 하면 될까? 왼쪽처럼 배열로 나타낼 수 있다. 각 줄은 노드 한개를 의미한다. 1번 노드는 2, 3번과 연결되어 있기 때문에 1번째 줄에는 2, 3만 1이고, 2번 노드는 1, 4, 5번과 연결되어 있기 때문에 2번째 줄에는 1, 4, 5만 1이다.(양방향으로 가능한 노드일 경우 이렇다.) 이 배열을 DFS, BFS하면 아래..
TDD 법칙 세 가지 1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 주의할 점은 실제 코드와 맞먹을 정도로 많은 테스트 코드는 관리가 힘들다는 것이다. 실제 코드가 변경됨에 따라 테스트 코드도 변화해야 하는데 테스크 코드가 복잡하고, 지저분할수록 테스트 코드에 대한 부담이 늘어난다. 그렇다면 깨끗한 테스트 코드를 유지하려면 어떻게 해야 할까? 명료성, 단순성, 풍부한 표현력으로 가독성을 높이면 된다. 그리고 또 주의할 점은 실제 환경에서는 절대로 안 되지만 테스트 환경에서는 전혀 문제없는 방식이 있을 수도 있다는 것이다. 실제 환..
구현 1. Thread 클래스 상속 -> 다중상속이 불가능하므로 다른 클래스를 상속받을 수 없다! class ExThread extends Thread { public void run() { // 비즈니스 코드 } } 2. Runnable 인터페이스 구현 -> 이 방법이 일반적. 재사용성 높고, 코드의 일관성 유지 가능! class ExThread implements Runnable { public void run() { // 비즈니스 코드 } } 쓰레드를 구현한다? -> 스레드를 통해 작업하고자 하는 내용으로 run()의 내부를 채우는 것 실행 ExThread t = new ExThread(); t.start(); // 실행 t.start(); // 에러 -> 한 번 종료된 스레드는 다시 실행할 수 없..
여러 사용자에게 서비스를 해주는 서버의 경우 멀티스레드로 작성하는 것이 필수적이어서 하나의 서버 프로세스가 여러 개의 스레드를 생성해서 스레드와 사용자의 요청이 일대일로 처리되도록 해야 한다. 만일 싱글스레드로 서버 프로그램을 작성한다면 사용자의 요청마다 새로운 프로세스를 생성해야 하는데 프로세스를 생성하는 것은 스레드를 생성하는 것보다 더 많은 시간과 메모리 공간이 필요하기 때문에 많은 수의 사용자 요청을 서비스하기 어렵다. 그러나 멀티스레드 프로세스는 여러 스레드가 같은 프로세스 내에서 자원을 공유하면서 작업하기 때문에 발생할 수 있는 동기화, 교착상태와 같은 문제들을 고려해서 신중히 프로그래밍해야 한다. 자바의 정석 P.723
ko.wikipedia.org/wiki/%EB%AC%B4%EC%A0%95%EC%A0%84_%EC%A0%84%EC%9B%90_%EC%9E%A5%EC%B9%98 무정전 전원 장치 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 정전이 되어도 전원이 꺼지지 않도록 전원을 공급하는 역할. 전기가 끊겼는데 어떻게 전원이 공급되는가 궁금할 수도 있는데, 기름이나 배터리로 전기를 공급한다고 한다.