프로그래밍(Web)

    [바미] ON DUPLICATE KEY UPDATE문을 주의해서 사용하자.

    코드에서 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 통신 예제 코드.

    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 에피소드.

    안녕하세요. 요번에 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 스케줄러 삽질기.

    안녕하세요. 간만에 또 찾아왔습니다. 한 동안 스케줄러 때문에 삽질 아닌 삽질을 해서 스케줄러와 관련된 부분들을 나누고자 글을 올립니다. 제가 경험한 스케줄러의 형태는 2종류였습니다. 만약 매일 지정된 시간의 10분에 한 번 실행되는 스케줄러라 가정했을 때 서버 시작으로부터 10분에 실행되는 스케줄러. 지정된 시간의 10분에 실행되는 스케줄러. 였습니다. 저의 경우 매일 지정된 시간에 해야 했기 때문에 당연히 후자의 스케줄러를 추가적으로 만들어야 했습니다. 그 후엔 기존 코드에 작성되어 있는 형태대로 하루에 돌도록 만들었습니다. 그런데 매일 하루에 돌도록 설계되어 있는 스케줄러가 매일 지정된 시간에 돌지 않는 것이 였습니다. 몇 칠을 삽질하며 알게 된 것이 현재 설계되어 있는 스케줄러의 형태는 후자쪽이 ..

    [바미] Java ConcurrentModificationException 에러

    제가 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 타임존 이슈

    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 = ..

    [바미] 댓글 추가, 수정, 삭제 샘플코드

    게시판을 작성하다가 댓글 기능이 필요해서 인터넷을 검색했는데 검색이 잘 안되서 참고할 샘플을 찾다 유용하게 사용하고 있어 공유해봅니다. 글 수정 글 삭제 제목: 댓글 테스트 작성자: 허스크 게시글 내용 이름: 패스워드: 댓글 등록 게시판 출처 : https://huskdoll.tistory.com/126

    [바미] Golang JSON 필수 값 체크하기.

    지난 번에 Golang reflect 함수 사용하여 필수 값 체크 함수 만들기. 를 통해서 JSON 필수값을 reflect함수로 찾는 방법을 포스팅 한 적이 있습니다. 저기서는 for문 2개를 돌려서 찾는 방법이였지만 이번엔 validator을 사용하여 심플하게 처리할 수 있는 방법을 소개시켜드리려 합니다. 먼저 패키지를 다운 받아야 합니다. go get github.com/go-playground/validator/v10 그 후 아래와 같이 구조체를 선언 후, 필수 값으로 지정할 값을 아래와 같이 지정해줍니다. type ExStruct struct { A string `json:"a" validate:"required"` B string `json:"b" validate:"required"` C str..

    [바미] Node - Mysql2

    Node에서 Mysql쿼리를 사용하다보면 다중 쿼리가 필요할 때가 많이 있습니다. 물론 SQL문 함수로 다중쿼리를 처리하는 방법도 있지만 오늘은 Node의 Mysql2을 사용하여 다중쿼리 처리하는 방법에 대해 알아보도록 하겠습니다. Mysql2을 써보지 않은 분들은 'Mysql'은 아는데 'Mysql2'는 뭐야? 하실 겁니다. MySQL과 MySQL2의 차이점은 promise에 있습니다. mysql은 callback기반이기 때문에 promise를 사용하지 못하고 npm에 있는 promise-mysql 모듈을 따로 설치해서 사용해야하지만 mysql2는 promise를 지원하기 때문에 다른 모듈을 설치하지 않고 사용이 가능합니다. 그래서 promise는 pending, fullfilled, rejected ..