[바미] Java - BigDecimal 반올림 메소드 주의사항.
·
프로그래밍(Web)/업무관련
버전이 업데이트 되면서 'ROUND_'로 시작하는 메소드 명들은 BigDecimal.ROUND_UP 올림 BigDecimal.ROUND_DOWN 버림 BigDecimal.ROUND_HALF_UP 반올림(5이상) BigDecimal.ROUND_HALF_DOWN 반내림(5이하) RoundingMode으로 사용하는 부분은 아래로 대체되었다. RoundingMode.UP RoundingMode.DOWN RoundingMode.HALF_UP RoundingMode.HALF_DOWN http://cris.joongbu.ac.kr/course/java/api/java/math/RoundingMode.html
[바미] linux서버 용량 관리하기.
·
프로그래밍(Web)/업무관련
안녕하세요. 회사 내에서 서비스를 운영하기 위해 많은 서버들이 사용되고 있는데요. 그 중에 37GB정도의 용량을 가진 Java 서버의 메모리가 80%넘게 찼다는 봇 알림을 받게 되었어요. 제일 처음 했던 것은 가장 많은 용량을 차지하는 디렉토리를 알아보기 위해 각 디렉토리마다 들어가 아래와 같은 'df' 명령어를 사용하였어요. du -ah | sort -n -r | head -n 10 위의 코드를 사용하면 해당 디렉토리 안에 용량을 가장 많이 차지하는 것 Top10을 뽑아줘서 굉장히 유용했어요. 그 결과 가장 많이 나온 디렉토리는 jar파일들을 저장하고 있는 디렉토리와 log를 쌓고 있는 디렉토리였어요. 로그 파일 정리하기 먼저는 로그를 쌓고 있는 디렉토리에 가서 오래된 log파일들을 정리했고, 그 결과..
[바미] ON DUPLICATE KEY UPDATE문을 주의해서 사용하자.
·
프로그래밍(Web)/업무관련
코드에서 SQL데이터를 가공하고, SQL INSERT 실행하여 DB에 저장하는부분에서 A~F 까지의 칼럼중에 D,E를 제외한 값들만 들어가지는 문제를 경험하게 되었습니다. 문제는 몇 번을 INSERT하더라도 A~F 칼럼만 INSERT가 되지 않더군요. INSERT INTO a (`a`,`b`,`c`,`d`,`e`,`f`) VALUES ('1INCH_USD','1675296000','0.53045','0.5753','0.52574','0.53045'), ('AAVE_USD','1675296000','88.793','93.326','87.961','88.7') ON DUPLICATE KEY UPDATE update_time = current_timestamp(3); 이런식의 코드였는데 처음에 했던 부분은 '..
[바미] React, Go(Gin) axios 통신 예제 코드.
·
프로그래밍(Web)/Javascript(TS,Node)
React import axios from "axios"; const api = axios.create({ baseURL: "http://localhost:3000", // headers: { "Content-Type": "application/json" }, withCredentials: true, }); export const getData = async () => { await api .get("data") .then((response) => { if (response.ok) { return response.json(); } console.log(response.data); }) .catch((error) => { console.log(error); }); }; function App() { con..
[바미] Java Milliseconds to Seconds 에피소드.
·
프로그래밍(Web)/업무관련
안녕하세요. 요번에 MiliSeconds to Seconds 처리하다 생긴 실수를 오답노트 삼아 글을 적어보려 합니다. 데이터의 time중에 Milliseconds형태로 들어오는 값이 있었습니다. 들어온 데이터를 들어온 데이터의 time값과 현재 시간을 비교하여 현재보다 과거인 경우 pass시키고, 현재보다 미래인 경우 처리합니다. 이게 무슨 말이냐면 현재 시간은 지금은 12시 24분 13초라고 가정했을 때 초 단위를 00초로 변경한 값을 말합니다. 즉 현재가 12시 24분 24초 일 때, 12시 24분 00초(현재시간)인 타임스탬프 값과 보다 미래인 값인 12시 24분 01초, 12시 24분 10초로 비교하는 것이죠. 00초로로 변경한 현재 시간 값은 seconds단위로 떨어지는 timestamp였고,..
[바미] Java 스케줄러 삽질기.
·
프로그래밍(Web)/업무관련
안녕하세요. 간만에 또 찾아왔습니다. 한 동안 스케줄러 때문에 삽질 아닌 삽질을 해서 스케줄러와 관련된 부분들을 나누고자 글을 올립니다. 제가 경험한 스케줄러의 형태는 2종류였습니다. 만약 매일 지정된 시간의 10분에 한 번 실행되는 스케줄러라 가정했을 때 서버 시작으로부터 10분에 실행되는 스케줄러. 지정된 시간의 10분에 실행되는 스케줄러. 였습니다. 저의 경우 매일 지정된 시간에 해야 했기 때문에 당연히 후자의 스케줄러를 추가적으로 만들어야 했습니다. 그 후엔 기존 코드에 작성되어 있는 형태대로 하루에 돌도록 만들었습니다. 그런데 매일 하루에 돌도록 설계되어 있는 스케줄러가 매일 지정된 시간에 돌지 않는 것이 였습니다. 몇 칠을 삽질하며 알게 된 것이 현재 설계되어 있는 스케줄러의 형태는 후자쪽이 ..
[바미] Java ConcurrentModificationException 에러
·
프로그래밍(Web)/업무관련
제가 Java에서 JsonArray를 사용하여 한 줄씩 가져오는 데이터를 하나로 묶기위해 dataAll()함수를 사용하다 위의 에러를 경험하게 되었습니다. JsonArray jsonArray = Utilfunc.getJsonString(onlineData, "data"); JsonArray data = new JsonArray(); for (JsonElement je : msg.getAsJsonObject().get("data").getAsJsonArray()) { JsonObject jo = new JsonObject(); jo.addProperty("symbol", je.getAsJsonObject().get("symbol").getAsString()); jo.addProperty("close_pri..
[바미] TypeORM 타임존 이슈
·
프로그래밍(Web)/업무관련
Typescript로 클라이언트 서버 개발 때 발견한 이슈를 공유하고자 글을 쓰게 되었습니다. 서버와 클라이언트가 Socket.io 통신을 통해 TypeORM을 사용하여 특정값을 조회한 데이터를 주고 받는 작업중에 TypeORM에서 조회한 타임존 값과 실제 테이블 제 컬럼값이 다른 것을 발견하였습니다. 예를들어 DB 내 실제 값은 2022-10-04 00:00:00 인데, 이 값을 TypeORM으로 가져왔을 때는 2022-10-03 15:00:00으로 변경되어 출력되어 있었던 것이죠. 처음에는 개발 서버 내부의 timezone이 상이해서 그런줄 알았는데 알고보니 코드 상에서 DB 연결을 위한 ORM 설정 부분에서 timezone 파라미터를 추가해주면 됐었습니다. const connectionInfo = ..
[바미] 댓글 추가, 수정, 삭제 샘플코드
·
프로그래밍(Web)/Javascript(TS,Node)
게시판을 작성하다가 댓글 기능이 필요해서 인터넷을 검색했는데 검색이 잘 안되서 참고할 샘플을 찾다 유용하게 사용하고 있어 공유해봅니다. 글 수정 글 삭제 제목: 댓글 테스트 작성자: 허스크 게시글 내용 이름: 패스워드: 댓글 등록 게시판 출처 : https://huskdoll.tistory.com/126
Bami