Java8에서는 IntStream을 이용해서 fancy하게 Random 한 숫자를 원소로 가지는 Array를 만들수 있다. 아래는 1 ~ 100 까지 500개의 원소를 갖는 Array를 만드는 코드이다. Random r = new Random(); int[] ints = r.ints(500, 1, 101).toArray(); for (int anInt : ints) { System.out.println(anInt); } //리스트 List intsList = r.ints(500, 1, 101) .boxed().collect(Collectors.toList());
자바에서 문자열 작업을 할때 사용할 수 있는 MessageFormat이라는 클래스가 있다. 특히 Template 문서에 동적으로 특정한 값들을 삽입할 때 이용하면 가독성을 높일 수 있다. 그리고 날짜나 숫자 형식을 제공하기 때문에 유용하다. 그럼 몇 가지 예제로 사용법을 알아 보겠다. 1. 가변인자를 이용한 문자열 삽입 String text = MessageFormat.format("My name is {0}", "무명소졸"); System.out.println(text); //OUTPUT //My name is 무명소졸 간단한 문자열에서는 오히려 불필요한 클래스 사용지 복잡해 보일지 모르겠다. 하지만 아래처럼 연결할 동적 문자열이 많을 경우 MesageFormat을 사용하면 코드 가독성을 높일 수 있다..
Run() VS Start() 쓰레드의 Run 메서드와 Start메서드 둘 다 뭔가를 실행 시키는 느낌의 단어이기 때문에 했갈린다. 쓰레드를 이용한 코딩을 자주 하지 않는 입장에서 혼란스럽기도 하고 차이점을 잘 잊어 버려서 한번 정리하려고 한다. Start() 메서드를 사용해라. Run()을 사용하면 안된다. 결론부터 말하면 그렇다. 인텔리J와 같은 IDE에서는 아래 그림처럼 Suggestions 을 해 주기도 한다. 아래는 2초 간격으로 1부터 10까지 숫자를 출력하는 쓰레드를 Run으로 실행하는 코드이다. Run메서드를 실행해도 결과는 잘 나온다. Output 위와 같이 결과가 잘 출력되는데 무엇이 문제인가? 이번에는 t.run()라인 밑에 출력문을 추가해서 다시 실행 해보겠다. Output 1부터 ..
SSH를 통해 원격 작업시에 처리 시간이 긴 작업은 Session Time Out 으로 연결이 끊어져서 곤란한 경우가 있다. 이경우 아래와 같은 설정으로 연결 시간을 늘려줄 수 있다. 해당 작업은 Client 가 아닌 Server (내가 접속하려는 원격 서버) 의 설정을 변경해야 된다. ssh 서버 설정 변경 sudo vi /etc/ssh/sshd_config # sec ClientAliveInterval 300 #300초 ClientAliveCountMax 10 #10번 확인 300 * 10 = 3000초 연결 유지 ssh서버 재시작 sudo service sshd restart 현재 접속되어 있는 모든 터미널을 종료하고 다시 접속하면 된다.
메이븐을 이용한 자바 프로젝트에서 Front End 코드 및 Node 와 Npm 구성을 위환 메이븐 pom.xml 파일이다. 4.0.0 info.m2sj jinte jar 1.0 Front-end compile ${basedir}/target ${artifactId}-${version} com.github.eirslett frontend-maven-plugin 1.10.0 install node and npm install-node-and-npm v14.0.0 6.14.4 npm install npm generate-resources install npm build npm generate-resources run build
svn 체크 아웃이 뭐 어렵다고 이걸 해매다가 성공했다. 우선 https를 이용해서 커맨드라인에서 체크아웃하는 명령어는 아래와 같다. svn checkout --username admin --password 1 https://${svn서버주소}:${port}/svn/${proejctname}/trunk 혹시라도 아래와 같은 명령어를 만나면 접근 주소가 올바르지 않을 확률이 높다. svn: E170013: Unable to connect to a repository at URL 'https:~~ ... svn: E175009: The XML response contains invalid XML svn: E130003: Malformed XML: no element found at line 1 정확한 서버 ..
맥북에 오랜만에 SVN 설치해서 사용할 일이 있어다. Svn을 설치하고 실행을 했는데 아래와 같은 오류 메세지를 만났다. xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist Use `sudo xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools, or use `xcode-select --install` to install the standalone command line developer tools. See `man xcode-se..
Jenkins 기본 설치로는 사용자별 기능이나, Item 관리를 할 수 없다. 하지만 Jenkins는 많은 플러그인으로 확장 기능을 지원하고 있는데 그 중 Role-based Authorization Strategy Plugin을 설치해서 Jenkins에서 권한 관리를 하는법을 알아보겠다. 플러그인 설치 젠키스 플러그인 설치 페이지로 이동한다. 필터창에 Role 입력해서 플러그인 검색 후 아래 이미지와 같이 체크후 플러그인을 설치한다. 정상 설치가 되었다. 안정적인 사용을 위해서 젠키스를 재시작한다. 플러그인 사용 플러그인 설치 후 사용을 위해서는 Authorization 방법을 변경해야 한다. Jenkins 관리 > Congifure Golobal Security 로 이동해서 아래 그림과 같이 Role..
국내에서는 웹 애플리케이션 개발할 때 Spring 을 많이 사용하고 그러다 보니 보안 처리는 주로 Spring Security를 많이 사용한다. 하지만 Spring Security를 사용하지 않고 보안 영역의 프로그램을 직접 짜지 않는다면 Apache Shrio는 좋은 대안이 될 수 있다. Apache Shiro는 java로 구성된 Security Framework 이다. Apache Zeppelin등에서 사용되고 있고 2010년 이전에 나와서 최근에는 2020-02-23 1.5.1 release 될만큼 잘 관리되고 있다. 오늘은 Apache Shiro 구체적인 사용법은 작성은 아니고 혹시라도 누군가 Apache Shiro를 Postgresql DB를 연동하고 싶을때 참고할 수 있는 Configurati..
- Total
- Today
- Yesterday