전체 글
-
java.sql.SQLException: isValid() returned false개발 오류 및 해결 방안 2020. 7. 29. 13:55
2020 07 24 09시 아침에 출근해서 Local PC Server 확인해보니 위와같은 오류 발생 서버를 재가동하니 이와같은 오류가 사라졌지만 왜 발생되었는지는 확인해보자 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource DEBUG: org.apache.commons.dbcp2.PoolableConnectionFactory - Failed to validate a poolable connection. java.sql.SQLException: isValid() returned false at org.apache.commons.dbcp2.PoolableConnection.va..
-
Server에서 다른 api 호출Java & 배경지식/Java 개발에 도움되는 코드들.. 2020. 7. 27. 14:29
import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.io.BufferedReader; import java.io.IOException; public class ApiExplorer { public static void main(String[] args) throws IOException { StringBuilder urlBuilder = new StringBuilder("http://naver.com"); /*URL*/ String key = "1234"; urlBuilder.append("?" + URLEncoder.enco..
-
Java Server에서 페이징 Html 태그 그리기Java & 배경지식/Java 개발에 도움되는 코드들.. 2020. 7. 24. 17:59
2020년 7월 27일 기준 현 회사는 프론트에서 그려주는 것이 좋으나 아직 서버에서 그려주는 곳이 많다. (페이징은 서버에서 Html태그를 그려주는 것이 아니라 프론트에서 그려줘야함 -> 서버 부하 줄이게) 점심시간에 잠시 코드를 줄이긴했는데 .. 더 보완할 곳이 보인다.( 처음, 이전, 다음, 마지막 계산하는 부분 / 페이지 그려주는 부분 / 각 값 계산하는 부분) -> 차후 다른 method로 분리 /** * 페이징 처리된 Html 태그 * * @param totalrow 총 row 개수 * @param pageno 현재 페이지 * @param maxpage 보여줄 페이지 수 * @param maxrow 보여줄 row 수 * @return 페이지 Html 태그 */ public static Stri..
-
애노테이션의 변화백기선(인프런 강의)/더 자바, Java 8 2020. 7. 24. 12:47
애노테이션의 변화 애노테이션 관련 두가지 큰 변화 자바 8부터 애노테이션을 타입 선언부에도 사용할 수 있게 됨. 자바 8부터 애노테이션을 중복해서 사용할 수 있게 됨. 타입 선언 부 제네릭 타입 변수 타입 매개변수 타입 @Target(ElementType.TYPE_PARAMETER) 예외 타입 타입에 사용할 수 있으려면 TYPE_PARAMETER: 타입 변수에만 사용할 수 있다. TYPE_USE: 타입 변수를 포함해서 모든 타입 선언부에 사용할 수 있다. public enum ElementType { /** Class, interface (including annotation type), or enum declaration */ TYPE, /** Field declaration (includes enum..
-
CompletableFuture 2백기선(인프런 강의)/더 자바, Java 8 2020. 7. 23. 08:35
조합하기 thenCompose() 두 작업이 서로 이어서 실행하도록 조합 두 작업이 연관관계가 있을 때 public class App { public static void main(String[] args) throws InterruptedException, ExecutionException { CompletableFuture hello = CompletableFuture.supplyAsync(() -> { System.out.println("Hello " + Thread.currentThread().getName()); return "Hello"; }); CompletableFuture future = hello.thenCompose(s -> getWorld("안녕하세요")); System.out.pr..
-
CompletableFuture백기선(인프런 강의)/더 자바, Java 8 2020. 7. 22. 13:10
자바에서 비동기(Asynchronous) 프로그래밍을 가능케하는 인터페이스. Future를 사용해서도 어느정도 가능했지만 하기 힘들 일들이 많았다. Future로는 하기 어렵던 작업들 Future를 외부에서 완료 시킬 수 없다. 취소하거나, get()에 타임아웃을 설정할 수는 있다. 블로킹 코드(get())를 사용하지 않고서는 작업이 끝났을 때 콜백을 실행할 수 없다. 여러 Future를 조합할 수 없다, 예) Event 정보 가져온 다음 Event에 참석하는 회원 목록 가져오기 예외 처리용 API를 제공하지 않는다. CompletableFuture Implements Future Implements CompletionStage 비동기로 작업 실행하기 리턴값이 없는 경우: runAsync() 리턴값이 있..
-
Callable과 Future백기선(인프런 강의)/더 자바, Java 8 2020. 7. 20. 13:04
Callable Runnable과 유사하지만 작업의 결과를 받을 수 있다. Future 비동기적인 작업의 현재 상태를 조회하거나 결과를 가져올 수 있다. https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html get() - 결과를 가져오기 블록킹 콜 결과를 가져올때까지 기다린다. 타임아웃(최대한으로 기다릴 시간)을 설정 가능 public class App { public static void main(String[] args) throws InterruptedException, ExecutionException { ExecutorService executorService = Executors.newSingleThreadExec..