개요 아래 요구사항에 맞게 1:N M:1로 구성한 CourseUser 오브젝트입니다. JPA에서 @ManyToMany가 있지만 실제 상황에서는 쓰기 어렵기 때문에 1:N M:1로 구현 합니다. 테이블은 Course, User, CourseUser 총 3개가 만들어집니다. 요구사항 코스(Course)에는 학생이 들어갑니다. 한명의 학생은 여러개의 코스를 수강할 수 있습니다. 한개의 코스에는 여러명의 수강생이 Assign될 수 있습니다. Course CourseUserEntity와 관계를 맺습니다. @Entity public class CourseEntity extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private ..
Java에서 각종 정렬을 지원하는 Collection은 정렬 순서를 커스터마이징 할 수 있습니다. 기본값은 오름차순 정렬입니다. PriorityQueue는 우선순위큐로써 큐에 특정 값을 넣으면 지정한 로직에 따라 정렬을 해줍니다. 기본값은 꺼낼 때(.poll) 작은 숫자부터 나오게 됩니다. public static void main(String[] args) { Queue pq = new PriorityQueue(); pq.add(10); pq.add(9); pq.add(3); pq.add(12); while(!pq.isEmpty()) System.out.println(pq.poll()); } 결과 3 9 10 12 위 처럼 생략하면 기본값으로 들어갑니다. 기본값은 앞에 숫자에서 뒤에 숫자를 빼서 음수가..
파일 직접 읽기 .readString() ./(현재 디렉토리)의 파일 목록 출력 @Test void fileList(){ File dir = new File("./"); File files[] = dir.listFiles(); for (File file : files) { System.out.println(file); } } 결과 ./gradle ./gradlew ./build.gradle ./.gradle ./build ./gradlew.bat ./settings.gradle ./.idea ./src 파일 생성하기 ./ 의 파일 목록을 보았으니 ./에 numbers.txt 파일을 생성 해보겠습니다. @Test void createANewFile() throws IOException { File file..
public void listFilesForFolder(final File folder) { for (final File fileEntry : folder.listFiles()) { System.out.println(fileEntry.getName()); } } final File folder = new File("./"); listFilesForFolder(folder); 요즘은 서버 앱을 클라우드에 많이 띄우기 때문에 credential같은 것을 파일로 넣어주어야 할 경우가 종종 있습니다. 현재 인스턴스가 어디를 바라보고 있는지를 알아보기 위해 이 명령어가 필요합니다. 이 코드를 넣고 배포하고 돌려보면 알 수 있습니다. Class에 넣으면 아래와 같이 바로 실행할 수 있습니다. public class..
개요 Static은 스테틱 변수 메소드 앞에 붙일 수 있다. static을 쓰면 jvm이 실행될 때 한번 불러옵니다. 내가 이걸 왜 쓰냐면 aws 람다를 쓰는데 여기에서 파일을 불러와서 무언가 설정을 하고싶기 때문에 사용을 했습니다. 이 설정은 자주 바뀌는 것은 아니지만 호출은 자주 됩니다. java의 constants 변수 처럼 쓰고 싶지만 파일을 변경해서 설정을 적용하고 싶기 때문입니다. 나중에 이 부분을 redis 등 cache와 연동하고 싶기 때문에 중간 단계를 만드는 작업입니다. 프로젝트 구조는 위와 같이 src/main/java, src/main/resources 이렇게 되어있고 resources에 hello.properties가 들어있습니다. hello.properties name = kye..
Java(Spring)로 Shell Script실행 하기백엔드를 하다보면 shell script를 쓸 일이 자연스럽게 많이 생깁니다.제가 만든 프로그램을 배포할려면 서버 구성부터 띄우고 올리고 내리고 재부팅하고 등등 이걸 다 손으로 하자니 손이 너무 많이 가는데 나름 루틴한 작업들이 많습니다.손으로 하는 작업을 반자동화라도 하기 위해 shell script를 쓰는데 쉘 스크립트를 실행 하려면 ssh로 들어가서 커맨드를 입력 해주어야 합니다.하지만 ssh접속하고 로그인 하는 것도 일이기 때문에 api를 뚫어놓고 호출하는 방식으로 해결하고 싶다는 생각이 들었습니다.자바에 찾아봤더니 해당 기능이 있었습니다. ProcessBuilder를 이용합니다. ShRunner.javapublic class ShRunner..
public List toMap(List selectedOhlcvs) { // 특정 field를 기준으로 select된 애가 온다. Map map = new HashMap(); // 넣을때는 특정 field를 넣어야 한다. selectedOhlcvs.forEach(ohlcv1 ->{ map.put(ohlcv1.getTimeToMins(), new ArrayList()); map.get(ohlcv1.getTimeToMins()).add(ohlcv1); }); map.forEach((key, value) ->{ System.out.println(key); }); return new ArrayList(); }
okhttp okhttp site 문서 http://square.github.io/okhttp/ 사용방법 관련 블로그 포스트 https://www.codexpedia.com/android/okhttp-3-example-in-android/ Maven Dependency는 아래와 같이 추가 합니다. com.squareup.okhttp3 okhttp 4.9.2 아래 코드는 google.com에 http request를 보내는 코드 입니다. import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; public class HttpCaller { OkHttpClient client ..
rxjava - return은 Flowable이 끝나고 될까? 1234567891011121314public class ReturnExam { public String run() { System.out.println("----before start----"); Flowable.range(1, 100000) .subscribe(item -> System.out.println(item)); return "------return------"; } public static void main(String[] args) { String result = new ReturnExam().run(); System.out.println(result); }}Colored by Color Scriptercs결과---before..
RxJava에 대해 알아보자 - 제4편 Error는 언제 나는지? 에러나면 어떻게 되는지? 12345678910111213141516171819public class DoOnError { public void run6() { Flowable.fromIterable(Arrays.asList(1, 2, 0, 1)) .doOnComplete(() -> System.out.println("completed 6")) .map(item -> { return 10 / item; }) .doOnNext(item -> System.out.println("---next6---")) .doOnError(throwable -> System.out.println("---error6---")) .subscribe(item2-> ..
- Total
- Today
- Yesterday
- 도커컨테이너
- docker container tissue
- 도커티슈박스
- docker container
- 도커각티슈케이스
- 개발자
- shellscript
- Sh
- docker container case
- docker container whale
- docker container tissue box
- 도커각티슈박스
- Linux
- 싱가폴
- 2017 티스토리 결산
- 도커티슈케이스
- 이직
- vim
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |