본문 바로가기

Language/JAVA

(70)
spring boot2 dataSource or dataSourceClassName or jdbcUrl is required. 이 에러 나는 경우 spring boot dataSource or dataSourceClassName or jdbcUrl is required. 이 에러 나는 경우 Caused by: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.at com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:1063)at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:109)at net.sf.log4jdbc.sql.jdbcapi.DataSourceSpy.getConnection(DataSource..
자바 스트링 빌더 java string builder 자바 스트링 빌더 java string builder public class StringBuilderTest { @Test public void name() { String name = "kyeongork"; String hello = new StringBuilder(" hello").append(name).toString(); System.out.println(hello); } }​ 결과 kyeongrok hello 자바로 string을 연결해서 쓰려면 " " + " name:" + 이런식으로 +를 자꾸 써야하고 몇개 연결하면 길게 썼을 경우 가독성이 떨어질 수 있습니다. node나 python처럼 이쁘게 쓸 수 있는 방법은 아직 자바에는 없지만 그나마 덜 헷갈리게 만들 수는 있습니다. 1~2개는 그냥..
java Cache Algorithm(캐시 알고리즘) java Cache Algorithm(캐시 알고리즘) 캐싱은 데이터를 메모리 등 저장 해놓았다가 빼서 쓰는게 캐싱이다.주로 select를 많이 해야 하는 경우, 많이 타는 로직에서 캐싱을 쓴다.자바 코드에서 캐싱 로직을 둔다고 하면 Map에 넣을 수도 있고 List에 넣을 수 있을 것이다. 미국에서는 캐시 대체 알고리즘(cache replacement algorithms) 또는 캐시 대체 정책(cache replacement policies) 등으로 부른다. 캐싱 알고리즘을 어떤 것을 쓰는지에 따라서 성능이 천차만별이고 상황에 따라서 써야 하는게 다르다.일단은 캐싱의 종류에 대해서 알아보자.1.Bélády's algorithm2.First in first out (FIFO)3.Last in first o..
java jackson을 json string다루기, POJO로 매핑하기 1.JsonNode로 만들기1234String rawJson = new String(byteBuffer.array(), "UTF-8");ObjectMapper objectMapper = new ObjectMapper(); JsonNode node = objectMapper.readTree(rawJson);cs ObjectMapper의 .readTree()를 사용한다. 2.java jackson을 이용해 json을 pojo로 바꾸기 123456789101112131415161718192021import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.databind.DeserializationFeature;import com.faste..
Java8의 기능들 - Optional, Stream sort(정렬), Function Java8 Optional이란? 많은 존재 이유가 있지만 if(obj == null){}else{} 이 코드를 한줄로 깔끔하게 처리하기 위해 존재한다. 이걸 깔끔하게 처리 했을 때 functional programming에서 코드를 이쁘게 짤 수 있다. Optional optHello = Optional.ofNullable("hello"); System.out.println(optHello); Optional optNull = Optional.ofNullable(null); System.out.println(optNull);결과 Optional[hello] Optional.empty코드1 @Test public void optionalTest() { Optional opt = Optional.empty(..
java 파일로 저장하기, 한줄씩 불러오기 파일에서 String읽어오기, String[]으로 읽어오기1234567891011121314public class FileStringGetter { public String getString(String location) throws IOException { byte[] data = Files.readAllBytes(Paths.get(location)); String dataString = new String(data); return dataString; } public String[] getLines(String location) throws IOException { String str = getString(location); String[] lines = str.split(System.getPrope..
java 랜덤 1~5까지 10개 만들기 12for (int i = 0; i
Spring Boot에서 Bean Service를 띄울 때 구아바 AbstractService자동으로 띄우기 구아바의 Concurrency중에 AbstractService라는게 있는데 일단 Concurrency(컨커런시)는 뭔가 계속 떠있는 것을 의미한 스프링 앱을 만들어서 서버에 올린다는 것은 올린 스프링앱이 죽지않고 서버에 계속 떠있으면서 24/7로 죽지 않고 뭔가를 계속 하도록 만들기 위해서이다.이를테면 사용자의 api request를 받는다던지, 1초에 한번씩 db에 select를 날려서 변경을 감지한다던지 등 주로 이런 작업이다. 그럴려면 뭔가 띄워야 하는데 대체로 자바에서는 Thread를 띄운다. 그런데 이 Thread를 좀 더 관리하기 쉽게 띄울려면 구아바의 AbstractService를 사용한다. 컨커런시(Concurrency)는 구글에 찾아보면 패러럴(Paraller)하고 비교하는게 나오는데 아..