(Effective Java) 규칙23. 태그달린 클래스보다는 클래스 계층구조를 활용하라 태그 달린 클래스 두 가지 이상의 의미를 표현할 수 있으며, 그중 현재를 표현하는 의미를 태그 값으로 알려주는 클래스를 본 적이 있을 것이다. class Figure { enum Shape { RECTANGLE, CIRCLE }; // 태그 필드 - 현재 모양을 나타낸다. final Shape shape; // 다음 필드들은 모양이 사각형(RECTANGLE)일 때만 쓰인다. double length; double width; // 다음 필드들은 모양이 사각형(CIRCLE)일 때만 쓰인다. double radius; // 원용 생성자 Figure(double radius) { shape = Shape.CIRCLE; t..
들어가며 SpringBoot에서 제공해주는 ApplicationArguments를 통해서 프로그램 argument를 간편하게 가져와서 사용하는 방법을 알아보도록 한다. Program arguments Java 프로그램을 실행할 때 실행 옵션에 Program arguments를 설정해줄 수가 있다. '--이름' 형태로 설정이 가능함 Intelij 에서는 아래와 같이 설정이 가능함 설정된 Argument는 Array 형태로 전달이 되며 아래와 같이 main 메서드로 전달이 된다. public class Main { public void main(String...args) throws Exception { logger.info("Application started with command-line argumen..
들어가며 필요에 따라 스프링부트 애플리케이션이 처음 실행되고 난 시점에 특정한 코드나 동작을 수행하고자 할 때가 있다. 이때 사용할 수 있는 Application Runner, Command Line Runner를 알아보고자 한다. ApplicationRunner SpringBootApplication이 포함된 프로그램에서 특정 Bean을 Application 실행 후 실행하도록 하는 인터페이스이다. 메소드는 run이라는 메소드뿐이며 ApplicationArguments를 받도록 되어 있다. ApplicationArguments란 프로그램 실행시 명시되는 argument를 추상화된 API를 통해서 접근할 수 있는 인터페이스이다. 자세한 내용은 아래 포스트 참고 [Spring Boot] Applicatio..
들어가며 SockJS를 사용하는데 Client side에서 WebSocket에 연결된 Session ID가 필요했다. 해결 방법 sessionID는 SockJS 내부에서 아래와 같은 방식으로 생성을 한다고 한다. 검색결과 라이브러리 내부에서 sessionID라는 변수를 만들어서 저장을 하라고 하는데 (라이브러리를 수정해야 되서 패스..) var connid = utils.random_string(8); 라이브러리에서 sessinoID가 포함된 URL을 가져올 수가 있다. (파싱 해서 사용을 해야되지만 이거라도 어디냐 ..) var socket = new SockJS('/socket'); stompClient = Stomp.over(socket); stompClient.connect({}, function..
들어가며 "mvn package" 명령을 실행했을 때 기본적으로는 모든 테스트 코드를 실행하기 때문에 굳이 실행을 해야 되지 않을 때 생략을 해야 할 때가 있다. 방법 -DskipTests 라는 argument를 붙이고 CMD 명령을 내리면 된다. //maven 테스트 코드 생략 mvn package -DskipTests 끝으로 이 글이 도움이 되었다면, 하단의 Google 광고 👎👎👎 한번씩 클릭 부탁 드립니다. 🙏🙏🙏 광고 클릭은 많은 힘이 됩니다!
들어가며 Java 애플리케이션 내부에서 코드상으로 외부 JAR 파일을 실행시켜야 하는 경우가 있다. 이때 프로그램 내부에서 별도의 JAR 파일을 실행시키는 방법에 대해서 공유하고 한다. ProcessBuilder ProcessBuilder는 OS의 Command 명령을 실행하려 할때 사용되는 클래스이다. builder를 다양하게 설정이 가능하다. public void process(String imageDir) throws IOException { ProcessBuilder builder = new ProcessBuilder("java", "-jar", this.jarFileName); //argument도 적어줄 수 있다. ProcessBuilder builder = new ProcessBuilder(..
들어가며 SpringBoot 애플리케이션의 기본 로그 레벨은 INFO이다. 필요에 따라 DEBUG 레벨의 로그를 보려고 할 때가 있는데 그렇게 하기 위해서는 디버그 모드로 실행 옵션을 설정해주어야 한다. 설정 방법 먼저 Application Configuration을 열어주자 설정 방법은 두 가지가 있다. VM Options에 -Ddebug 적어주는 방법 Program arguments에 --debug 적어주는 방법 적어준 뒤에 실행을 하게 되면 아래와 같이 DEBUG 레벨의 로그가 찍히는 것을 볼 수가 있다. 또한, 어떠한 자동설정이 적용이 됬는지 어떠한 자동설정이 왜 적용이 안됬는지를 확인할 수 있다. * 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음 *
들어가며 인텔리제이를 사용하면서 Java 버전을 변경해야 할 일이 종종 있는데 간단한 방법이지만 그래도 공유를 하고자 한다. 방법 File -> Project Structure (Ctrl + Alt + Shift + S)를 들어가서 Project 탭에서 Project SDK를 원하는 버전으로 바꿔준다. 그 다음으로 Modules 탭을 눌른후 Sources 탭을 누른 뒤 Language level을 버전에 맞게 바꾸어 준다. 그런 다음 Sources 탭에서 Dependencies 탭으로 전환해준 뒤에 Module SDK의 버전은 맞게 바꾸어 준다. 끝으로 이 글이 도움이 되었다면, 하단의 Google 광고 👎👎👎 한번씩 클릭 부탁 드립니다. 🙏🙏🙏 광고 클릭은 많은 힘이 됩니다!
- Total
- Today
- Yesterday
- TableView
- 배낭여행
- windows
- 인텔리제이
- 자전거
- 이펙티브
- 일본 배낭여행
- JavaFX
- java
- JavaFX 종료
- JavaFX 테이블뷰
- 스프링부트
- 방통대 과제물
- JavaFX Table View
- 텐트
- Java UI
- springboot
- effective java
- 이펙티브자바
- 자바
- 일본 여행
- git
- intelij
- 자전거 여행
- 배낭 여행
- 일본 자전거 여행
- JavaFX Window Close
- 일본여행
- effectivejava
- 이펙티브 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |