2022-11-29 1. 방법 방법은 ProcessBuilder를 사용하는 방법이다. 유틸 형식으로 분리 후 모듈 형식으로 사용하면 편하게 사용할 수 있다. 매개 변수 dir 은 쉘 스크립트가 위치하는 경로를 나타낸다. shellName(은) 말 그대로 실행시킬 쉘 스크립트의 이름을 나타낸다. 메서드 안에 변수 cdExec를 보면 리눅스 서버에서 매개변수로 주어진 dir로 경로를 옮긴 후 매개변수로 주어진 shellName으로 만들어진 쉘 스크립트를 실행하는 것을 확인할 수 있다. import java.io.BufferedReader; import java.io.InputStreamReader; import org.springframework.stereotype.Component; import lombo..
2022-11-26 1. 방법 java time 에 존재하는 class 인 DayOfWeek 와 LocalDate를 사용하면 어렵지 않게 정해진 일자의 요일을 구할 수 있습니다. import java.time.DayOfWeek; import java.time.LocalDate; @SpringBootTest public class test2 { @Test void Test2() { String answer = ""; LocalDate date = LocalDate.of(2021, 12, 25); //연 월 일 순으로 적어준다. DayOfWeek dayOfWeek = date.getDayOfWeek(); if(dayOfWeek.getValue() == 1) { answer = "MON"; }else if (..
2022-10-03 1. 방법 @Test public void test8() { String s = "hello"; for(int i = 0; i < s.length(); i++){ StringBuilder sb = new StringBuilder(s); String subString = sb.substring(0, i); sb.delete(0,i); sb.append(subString); System.out.println(sb.toString()); } } //출력결과 //hello //elloh //llohe //lohel //ohell 위와 같은 방법을 사용하면 처음에 위치한 char를 맨뒤로 보내면서 해당 문자열을 회전 시킬 수 있다. 사실 로직은 한번씩 StringBuilder 를 초기화 시키면..
2021-03-14 Writer은 문자열을 출력하는 최상위 스트림이다. 다만 Writer는 추상 클래스이기 때문에 new 연산자를 통한 객체 생성이 불가하다. 때문에 자식 클래스를 매개 값을 받아 객체를 생성한다. 또한 자바 내에서 바로 문자열로 스트림을 바로 읽어 들일 수 없기 때문에 스트림 기반 출력 클래스 또는 System.out을 형 변환하여 사용해야 한다. - 선언 Writer wr = new OutputStreamWriter(System.out); 위와 같이 Writer 클래스의 자식 클래스를 매개값으로 받아야지만, new 연산자를 사용한 객체 생성이 가능하다. - 실행 ( String ) package wWriter; import java.io.IOException; import java.i..
2021-02-09 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. (출처 : 위키피디아 ) 즉 기존의 싱글 스레드가 아닌 멀티스레드를 사용하기 위해서 이와 같이 따로 스레드를 만들어주어야 하는데, 오늘은 그 방법을 알아보자. 방법 1.람다식으로 Runnable 구현하기 package Thread; public class main { public static void main(String[] args) { Thread thread1 = new Thread(()-> {..
2021-02-04 자바에서 Annotation이라는 주석과 같은 형태로 사용되는 코드가 있다. 흔히 상속 간에 메서드 재정의에서 사용되는 @Override가 대표적인 어노테이션이라고 할 수 있다. 오늘은 이 어노테이션의 선언과 엘리먼트 타입을 간단히 알아보도록 하자. 우선 선언하는 방법을 알아보도록 하자. package aAnotation; public @interface DefineAno { // interface 앞에 간단히 @를 붙여주면 어노테이션 인터페이스가 만들어진다. // anotation은 자신의 element 를 가질 수가 있다. int numEl() default 1; // int 형 element를 가지고 default 값은 1이다. String strEl(); // String 형 ..