본문 바로가기
반응형

백엔드/Java22

멀티스레드 처리 내 뒤에 앉아있는 회사 동료와 멀티스레드 관련해서 대화한 내용을 기록한 것. 기존 시스템에 추가 기능을 개발할 때는 항상 신경을 써야한다. - 상황 - 기존에 다른 서버로 요청을 보내는 메서드가 있고 그 메서드를 주기적으로 호출하는 타이머가 있었다. 그런데 이 처리하는 부분이 어떤 문제로 동작안하는 경우가 있어서 안전장치 느낌으로 같은 메시지를 다른 루트로 받아서 보내는 코드가 추가됐다. 호출하는 루트가 추가돼서 멀티스레드환경이 된것이다. - 문제점 - 멀티스레드 처리를 안해서 동시 접근하여 예외 발생 이 경우 메서드를 동기화처리해서 마무리 같은 메시지가 여러번 간다. 거의 대부분 여러번 간다. 문제가 생겨서 껐다 켜지는 사이를 빼고는 항상 여러번 간다. 여러번 간다고 동작에 문제가 생기는 것은 아니다... 2020. 12. 7.
JSON Enum 파싱 참고 : Jackson Serialize/Deserialize Enum values https://stackoverflow.com/questions/37833557/jackson-serialize-and-deserialize-enum-values-as-integers Jackson: Serialize and deserialize enum values as integers Consider the following enum and class: public enum State { ON, OFF, UNKNOWN } public class Machine { String name; int numCores; State state; public Machine(String nam... stackoverflow.com 목.. 2020. 11. 10.
JSON 문자열 List 타입 파싱할때 LinkedHashMap으로 변환되는 문제 이렇게 되는 이유는 JAVA의 제네릭이 컴파일까지만 유지되고 실행단계에서는 사라져버리기 때문이다. 이번 상황은 GET 요청 URL에 JSON 포맷으로 데이터가 들어온다. 자동 파싱이 안돼서 문자열로 받고 바꾸는 작업 아래 new TypeReference() {} 부분이 문제다. List도 Generic이기 때문에 List가 실행단계에서는 List가 돼버린다. (타입이 없다...) 그래서 자바는 어 이게 뭐지 하고 LinkedHashMap으로 만들어서 넣음. public void setFilter(String filter) throws Exception { this.filter = filter; this.setFilterList(this.parseJson(this.filter)); } private Lis.. 2020. 9. 26.
문자열 배열을 문자열로 변환할 때 구분자 처리 문자열 배열을 문자열로 변환할 때 사용하는 코드 블럭 Collectors.joining(구분자, prefix, suffix) 아래 예시는 List을 받아서 SQL IN 쿼리에 사용할 수 있는 모양으로 바꾼다. SQL에서는 StringBuilder sb = new StringBuilder(); sb.append("("); sb.append(array.stream().collect(Collectors.joining(",", "'", "'"))); sb.append(")"); return sb.toString(); 2020. 9. 26.
[JAVA] String to Date, Date to String 형변환 https://nota.tistory.com/50 [JAVA] String to Date, Date to String 형변환 자바(JAVA) 형 변환(String과 Date) String to Date String from = "2013-04-08 10:10:10"; SimpleDateFormat transFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date to = transFormat.parse(from);.. nota.tistory.com new Date(String)으로 Date를 생성하면 Deprecated 됐다는 경고가 발생한다. 대신 이걸 쓰자. String to Date String from = "2013-04-08 10:10:10"; S.. 2020. 8. 6.
JVM이 이용가능한 프로세스 개수 Runtime.getRuntime().availableProcessors() 2020. 3. 17.
반응형