본문 바로가기

분류 전체보기100

구글 커스텀 서치 (Google Custom Search JSON API, Custom Search Site Restricted JSON API ) 설정하기. Google Custom Search > Programmable Search Engine를 이용하여 웹을 구성하면 매우 간단하게 구성되지만, 디자인을 커스텀할 수 없다.. > Google Custom Search 를 이용하면 디자인을 커스텀할 수 있다! > 단점은.. 하루에 100 쿼리가 제한이고, 유료 전환 시 1000 쿼리당 $5다... > 게다가 Google Custom Search JSON API는 유료모드에서도 하루 10000쿼리 제한이 있다. > 단, 사이트의 제한이 있는 Custom Search Site Restricted JSON API는 유료모드 시 쿼리 제한이 없다. 먼저, Google Custom Search를 구성하려면 Programmable Search Engine을 구성해야 한다.. 2023. 9. 14.
Spring에서 서버 상태를 체크하는 Interceptor !! Spring Interceptor에 등록하여 서버 상태를 예쁘게 출력해주는 Interceptor . 아래 그림처럼 Console창에 아주 예쁘게 뿌려준다. Class 명 : MitwServerStatusCheckerInterceptor 전문 제공 import org.springframework.lang.Nullable; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Mitw Se.. 2023. 9. 14.
JSON 형태의 문자열(Json String)을 Map<String, Object> 형태로 변경해주는 함수 네이버 로그인 같은 api 형태를 사용할 때 반환되는 값은 Json String 형식이다. RestTemplate를 사용하면 만사 OK라서 해당 내용은 필요가 없다. 특정 환경상 RestTemplate가 힘든 경우 .. 1. Gson 활용 (재귀 필요없음) import com.google.gson.*; import java.util.Map; public class MainClass { /** * Json 형태의 String 값을 Map으로 변환하는 함수 : Gson은 Long이 아니라 double로 변경해서 문제가 생긴다. * */ private Map jsonStringToMap(String jsonString){ Gson gson = new GsonBuilder() .setLongSerializati.. 2023. 9. 14.
Javascript- html2canvas (현재 웹화면을 스크린샷 찍어서 서버로?) (feat. java spring) 먼저.. 공식 사이트 https://html2canvas.hertzen.com/ html2canvas - Screenshots with JavaScript Try out html2canvas Test out html2canvas by rendering the viewport from the current page. Capture html2canvas.hertzen.com function screenshot() { return new Promise((resolve, reject) => { html2canvas(document.querySelector('#capture_element')).then((canvas) => { resolve(canvas.toDataURL()); }).catch((error) =>.. 2023. 7. 12.
javascript - F12, 마우스우클릭, Ctrl+Shift+I 방어 개발하다보면 몇번쯤은 사용하게 되는 부분.. 하지만.. 크롬에서 주소창 맨 우측 점 3개 버튼 > 도구 더보기 > 개발자 도구는 막을 수 없다.. 2023. 5. 22.
HTTP STATUS CODE Status-Code = | "100" => Continue | "101" => Switching Protocols | "200" => OK ; 신난다. | "201" => Created | "202" => Accepted | "203" => Non-Authoritative Information | "204" => No Content ; HTTP Response body 가 없음. | "205" => Reset Content | "206" => Partial Content | "300" => Multiple Choices | "301" => Moved Permanently | "302" => Found ; 리다이렉트~ | "303" => See Other | "304" => Not Modified | ".. 2023. 5. 10.
[Python 기초] 로또번호 API 사용하기. 로또번호를 분석하고 싶다는.. 와이프의 요청으로 만들어 본...;; [로또복권 공식 API URL] https://www.dhlottery.co.kr/common.do [파라미터] method getLottoNumber 컨텐츠타입 drwNo 1063 회차정보 [응답정보] returnValue success/fail 결과 성공/실패 drwNoDate 2023-04-15 추첨일자 totSellamnt 108347135000 총 상금(원) firstWinamnt 3770311875 1등 상금(원) firstPrzwnerCo 7 1등 당첨자 수(명) firstAccumamnt 26392183125 총 1등 상금(원) drwNo 1063 추첨회차 drwtNo1 3 첫번째 번호 drwtNo2 6 두번째 번호 drw.. 2023. 4. 28.
리프레시 타임! 고전게임 철권3 한판하고 갑시다. 로딩은 쫌 걸리네요. 왼/오른 손/발이 반대로 되어있어서 조이스틱 모양에서 반대로 수정 후 게임을 진행. 시작은 Enter 2023. 4. 28.
ffmpeg - pcm확장자의 음성파일을 wav로 변환시키자. my_voice.pcm 파일을 convert_my_voice.wav로 변환을 시키려고 함. ffmpeg -f s16le -ar 8k -ac 1 -y -i my_voice.pcm convert_my_voice.wav > 옵션 -f : s16le로 설정 (force format, audio 형식) -ar : 8k(8000)으로 설정 (audio sample rate, 샘플링 속도) -ac : 1 (audio channels, 오디오 채널) (1- mono, 2- stereo) -y : 덮어쓰기 (동일파일명이 있더라도 묻지말고 덮어쓴다) -i : my_voice.pcm (input file, 입력하는 파일) 위 옵션으로 convert_my_voice.wav 라는 파일을 만든다. FFMPEG의 많은 옵션들은 아.. 2022. 9. 17.
[MySQL/mariaDB] 구분자로 잘라서 행으로 반환하자. (feat. json_table()) 먼저 json_table() 함수를 사용하기 위해서는 mysql >= 8.0.4 / mariadb >= 10.6.0 을 만족해야 한다. 아래와 같은 테이블 table_name이 존재하고, 데이터는 아래와 같다고 가정을 함. select * from table_name tn; select tn.idx, jb.datas from table_name tn join json_table( replace(json_array(arrsdata), ',', '","'), '$[*]' columns (datas varchar(50) path '$') ) jb; 과정은 다음과 같다. 먼저 데이터를 json_array() 함수를 사용하여 데이터를 JSON화한다. 그러면 대략 아래와 같은 모양이 됨. select json_ar.. 2022. 5. 20.
pydub - wav를 추출하여 묵음 제거 후 시간을 잘라서 저장해보자. pydub는 ffmpeg에 의존한다. apt install -y ffmpeg pydub도 설치를 한다. pydub는 pip로 설치를 하는 방법과 git clone을 통해 설치하는 방법, zip파일을 다운받아서 설치하는 방법이 있는데. pip install pydub or git clone https://github.com/jiaaro/pydub.git pip install pydub를 활용하려니 pycharm에 python3.7의 경우 해당 모듈을 찾을 수 없다고하여, git을 통하여 설치하고 프로젝트안에 넣어버렸다. 전반적인 설치방법이나 기본 가이드는 아래의 URL에서 확인이 가능하다. GitHub - jiaaro/pydub: Manipulate audio with a simple and easy hi.. 2022. 5. 13.
podman - rootless, daemonless 설치 후 딱히 서버에 권한 그룹 관리를 하지 않은 상태에서 실행. users로 docker run을 활용하여 컨테이너를 올리려니.. port forward (-p 옵션) 에서 rootless라고 안된다.. rootless 방식이 보안적인 면에서 좋기는 하겠으나, docker가 아닌 podman이 깔려서 갑작스레 30분만에 작업을 끝내야하는 상황에서는 벙~~ 상황이 상황이라 root를 사용해버렸지만.. 그리고 daemonless라 컨테이너간 통신도 bridge가 존재하는 docker와 달라서... podman inspect [컨테이너id] 로 gateway ip(10.88.0.1)가 아닌 컨테이너한테 부여된 ipaddress를 찾아서 해당 통신이 되도록 하였다.. docker였으면.. 172.17.0.1로.. 2022. 5. 12.