본문 바로가기

전체 글

(13)
[에러]Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.2.6.RELEASE:repackage failed: Unable to find a single main class from the following candidates Spring boot프로젝트를 Maven으로 처음 생성한 후 mvn package을 해보았다. 레퍼런스를 보고 따라했는데 에러가 발생하였다. 결론은 main이 두 개다. main() 메서드가 두 개 이기 때문에 maven에서 단일 메인 클래스를 찾을 수 없다는 것 이였다. 프로젝트 생성을 spring initializr를 이용해 생성하였고, 레퍼런스를 보고 메인을 하나 더 만들어 버렸다. initializr가 자동으로 main을 만들어 준다!!! main()메서드를 지우고 나서는 빌드 성공하였다. 오류를 찾다보니 jar파일을 만들 때 메인 클래스가 두 개 이상이라도 어떤 클래스를 기본 클래스로 사용해야 하는지 설정 할 수있었다. Maven사용 시 Pom.xml에 시작 클래스 지정. 1 2 3 4 com...
[Java] 이클립스(Eclipse)에 Lombok을 설치해보자! @Getter, @Setter 애노테이션을 지정해도 생성되지 않아 삽질하던 중 Lombok을 이클립스에 설치를 해야 한다는 사실을 알게 되었다. 설치 방법은 매우매우 간단했다. 사이트에 접속 https://projectlombok.org/download Download를 클릭해서 lombok.jar 파일을 받는다. 콘솔창(cmd)에 lombok.jar 파일이 있는 디렉토리로 이동한다. java -jar lombok.jar 을 실행한다. specify location을 클릭해 eclipse.exe 파일을 선택한다. Install / Update를 클릭한다. 설치 완료 후 이클립스를 재부팅 해준다. Maven을 사용 하는 경우 Pom.xml에 라이브러리 추가 1 2 3 4 5 6 org.projectlomb..
[Java] 자바 가상 머신 - JVM(Java Virtual Machine) JVM이란? 자바를 실행하기 위한 가상의 컴퓨터 어느 운영체제상에서도 실행할 수 있도록 한다. 운영체제 입장에서 자바 가상 머신 운영체제의 관점에서는 자바 가상 머신도 하나의 프로그램이다. 운영체제가 일반 프로그램에게 4GB의 메모리 공간을 할당해준다면 JVM에게도 4GB 메모리 공간을 할당해준다. 자바 프로그램이 두 개 실행되면, 가상 머신도 두 개가 실행이 된다. 자바 가상머신의 메모리 모델 메서드 영역(Method Area) 자바 바이트 코드(클래스에 대한 정보) static 변수(클래스 변수)가 저장되는 영역 자바 바이트 코드(Java byte code) 자바 바이트 코드(Java byte code)란 자바 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미한다. 자바 컴파일러에 의..
[에러]Class<SpringJUnit4ClassRunner> cannot be resolved to a type- 모듈 추가 JUnit으로 스프링 테스트를 하기 위해 설정 중 오류JUnit 설정을 항상 템플릿으로 만들어 사용 하다 보니 잊고 있었다.모듈을 추가 하지 않았다는 것을 pom.xml에 모듈 추가하면 해결된다.12345 org.springframework spring-test ${org.springframework-version} spring-test는 @RunWith와 @ContextConfiguration등 Spring Framework에서 어노테이션을 이용한 테스트를 가능하게 해준다.테스트에 필요한 다른 모듈도 추가 되어 있는지 확인하자123456 junit junit 4.7 test JUnit은 java에서 단위 테스트를 가능하게 해준다.123456 org.hamcrest hamcrest-library 1.3 ..
[Java] 스레드 실행 중인 프로그램 가리켜 프로세스라고 한다. 프로세스 내에서 하나의 프로그램의 실행 흐름을 나타내는 것을 스레드라고 한다. 만약에 하나의 프로세스 안에서 3개의 스레드가 있다는 것은 스레드 3개가 각각의 실행 흐름을 가지고 있다는 것을 말한다. 우리는 스레드를 직접 만들지 않았지만 사용하고 있었다. main()메서드의 호출과 실행을 담당하기 위한 스레드가 자동 생성 되었던 것이다. 자바 프로그램을 실행 시키면 하나의 프로세스가 생성이 되고 그 안에 하나의 스레드가 만들어 져서 이 스레드에 의해서 main() 메서드가 실행이 되었던 것이다. 스레드 프로그램 내에서 실행 흐름을 이루는 최소의 단위 main 메서드의 실행도 하나의 스레드에 의해 진행이 된다. 스레드의 이해와 스레드의 생성 방법 1 2 3 4..