2022년 11월 16일 수요일
네이버 ncloud SENS (Simple & Easy Notification Service) jsp로 SMS 전송 개발
네이버 ncloud SENS (Simple & Easy Notification Service) java로 SMS 전송 개발
알바로 이것저것 하는 중에
네이버 ncloud SENS (Simple & Easy Notification Service) 로
문자 전송 (추후엔 카톡까지 연동) 을 개발하게 됨.
구글링 하다보니.. spring에서 돌리는 소스를 발견
내가 개발 중인 환경은 jsp 이기에 이 소스를 컨버젼해서 쓰면 되겠군.. (아싸 득템)
이란 마음으로 시작...
아오 썩을..
계속 401 오류가 나온다.. (Authentication Failed)
네이버 쉑끼들한데 문의를 해보니 원론적인 답변만...
API 문서 : https://api.ncloud-docs.com/docs/ai-application-service-sens
네이버 쉑끼들한데 일단 한마디..
니들이 뭐가 그리 잘나서 우리는 고객의 코드를 리뷰 안해줌~~ 이딴 소릴 지껄이냐..
내가 니들 서비스 공짜로 쓰냐! 다 돈내고 쓰는거고.. 내가 몇백줄을 보낸 것도 아니고..
거기다가.. 니들이 만든 문서하고는.. 온갖 개폼은 다 잡아놓은 문서임..
알아먹을려면 알아먹어봐라 라는 중2병스러운 쓰레기를 만들어 놓고는 꼴깝 좀 떨지마라..
그리고.. 잘못된 소스를 올려놓은 어떤 블로그에게 한마디..
님의 소스에 수많은 개발자들이 오늘도 삽질을 합니다.
좀 잘 좀 확인하고 올립시다.
내 뒤에 오는 사람들은 우리같은 고생은 안하는게 좋지 않겠습니까?
자 이제 진정하고.. 이제 소스 리뷰...
JAVA 버전부터..
2022년 6월 29일 수요일
2022년 6월 17일 금요일
구글 Flutter 로 하이브리드 웹 앱 띄우기 2
input type='file' 태그가 전혀 동작하지를 않는다!!
webview에 있는 버그(?) 라고..
webview_flutter_upload 란걸 써야 함!
2021년 6월 3일 목요일
Apache Zeppelin Dynamic Form + JDBC 연동
Apache Zeppelin 에는 Dynamic Form 이란 것이 있다..
paragraph에 사용자가 원하는 매개변수를 입력받을 수 있게 하는 양식을 제공하는 기능이다.
일단 메뉴얼 투척~~!
https://zeppelin.apache.org/docs/0.9.0/usage/dynamic_form/intro.html
메뉴얼 보면.. 매개 변수로 쓸 것을 ${변수명} 으로 사용하면 된다....
라고.. 아주~~~ 간단히 나와있다..
물론.. 이렇게 쓰면 되긴 된다..
그런데 말이지... 이렇게 쓰면.. 큰 문제가 생긴다..(나만 그런걸지도..)
일단 내가 하고 싶은거
공통 입력으로 시작일, 종료일, 매장 선택하여.. 매장별 매출등을 조회하고 싶음
1. 삽질 시작
아~~ 매뉴얼 대로 쿼리 안에다가 넣으니까 폼이 생기고... 오오~~ 신기하네~~ 잘된다..
흠.. 그럼.. 한 Note에 paragraph 3개 생성해서.. jdbc로 연동한 걸
하나는 표, 차트 두개로 해 볼까?
2. 당혹
흠... 되긴 되는데.. 이렇게 되면.. 각 paragraph 마다 입력 폼이 생기잖여.. 입력은 한번만 해서 돌려써야 욕을 안 먹는데..
흠?? 메뉴얼 아래쪽에 Using form Templates (scope: note) 란거 보니.. 전역 변수로 쓸 수 있는 것 같다..
첫번째 paragraph에다가 jdbc interpreter로 쿼리를 날릴때 ${변수명} 을 사용하면 값 입력 폼이 생기고, 이걸 두번째 paragraph에다가 사용하면 되겠지?
해서 jdbc interpreter에다가 $${변수명을} 쓰고 조회!
--> null point exception이 아마 발생할 것이다...
3. 고민
완전 당황함.. sql 프로파일러로 들여다 보니.. 쿼리가 오지도 않음..
왜 이럴까.. 정말 몇일을 고민함..
stacksoverflow에 질문해도 답하는 놈이 없음.
https://stackoverflow.com/questions/67767714/exchanging-variables-between-different-paragraphs
youtube 동영상을 보니.. 다들 기초 예제만 하지..
이렇게 결합해서 하는 경우가 없음.
하여.. 계속 몇일을 삽질을 하다가..
겨우 알아냄..
4. 해결
가) 일단 메뉴얼이 좀 부실하다.. 내용도 좀 잘못된 것이 많음
나) 다른 interpreter는 모르겠으나, 나처럼 jdbc 사용하는 경우에 대해선 메뉴얼이 너무 허접함
다) 하여간 정답 공개
a) 일단 공통으로 입력을 받을 폼은 첫번째 paragraph에 python으로 작성함.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | %python dtst = z.noteTextbox("시작일", "20200101") dted = z.noteTextbox("종료일", "20201231") print("Textbox note " + dtst) print("Textbox note " + dted) arrStore = [("001", "PubDept"), ("002", "Store1"), ("003", "Store2")] selStore = z.noteSelect("매장선택", arrStore ) print( "Select note " + selStore ) z.z.run("paragraph_1622092568030_1007352330") | cs |
1 2 3 | %jdbc EXEC USP_BIGDATA_003 '$${시작일}', '$${종료일}', '$${매장선택}'; | cs |
2021년 5월 26일 수요일
Apache Zeppelin 에서 Helium 사용하기
Zeppelin 기본 차트로는 기능이 많이 부족하다!
왜 내가 본 너튜브에는 차트가 멋지던데 내 화면은 왜 이렇나!!
하셨던 분들...
Apache Zeppelin 설치하니까.. Helium 이라고 써있는데..
이게 뭔가 하신 분들..
이게 오픈 소스 차트 프레임 웍이다~~ 이거지요...
너튜브엔 뭐 그냥.. 이렇게~ 저렇게 하시면 Helium 플러그인 중에
이런 차트를 enable, disable 하실 수 있어요~~ 라고 하던데..
개뿔~~!
플러그인 자체가 목록에 안 나옴!
이래저래 Helium Install 관련 찾아봐도 안 나옴.
결국은 메뉴얼 안에 답이 있다~~~ 이거지!!
https://zeppelin.apache.org/docs/latest/development/helium/overview.html
근데.. 메뉴얼이 애매함..
내장되어 있다고 했는데.. 정작 interpreter 폴더에도 helium이 없고
플러그인 이라던지.. 어떤 곳에도 흔적이 없음..
현재 Zeppelin 버전은 2021년 5월 기준 0.9.0 임.
메뉴얼을 잘 보니.. zeppelin-site.xml 이 안에다가 구성할 수 있다고 써 있음..
그런데 왜 안 보이지? 한참을 또 이것저것 찾아 봄..
.
.
.
.
.
.
.
야이~~! X불넘들아~~!!! 주석으로 막아 놓으면 어쩌라고!!!
파일 안에 주석으로 막혀 있어서 안 나왔던 거임!
주석 풀고 Zeppelin 재시작 -> Helium 메뉴 들어가면...
오오~~ 이제 잘 보일 것이다~!!!
최근에 몇가지 기술들을 구글링하고 영상도 보고 하면서 느낀거...
대기업 다니고, 영어 좀 씨부린다고 해서 다를거 없다.. 그 쉐리들도 몰라.. 다 기본만 설명하지 어려운건 쏙 빼놓고 지 잘하는 거만 떠들어 대더라..
결론 : 나도 잘났다..
끗~! 뭘봐!
2021년 4월 30일 금요일
Apache Zeppelin에서 jdbc 연동시 조회할때 TLS 관련 오류 발생
0. 현재 개발환경
- OS : Ubuntu 20.4
- Main DB : SQL Server on Linux 2019 Express
- 보조 DB : SQL Server 2008, SQL Server 2014
- Java : Apache Zeppelin 권장 버전 (OPENJDK 1.8)
1. 보다시피 버전차이가 엄청 남.
2. Zeppelin에 jdbc (9.2.1) 연결을 했을때, SQL Server 2014는 아무 문제가 없음
3. SQL Server 2008에 연결시 TLS 버전을 지원 안한다는 오류 발생함.
4. 해당 서버 버전의 TLS 1.0 프로토콜이 너무 오래되서 지원을 안함.
5. 일단.. 해당 서버의 OS인 Windows 2008 R2에 TLS 1.1 / TLS 1.2 설정을 해줌.
6. 동일 에러 발생 - SQL Server 2008 자체에서 TLS 1.0 통신만 지원하는 것으로 판단.
7. jdbc 4.2를 쓰면 된다는 개소리 믿고 삽질하다가.. 다음과 같은 글 발견..
https://blog.naver.com/PostView.nhn?blogId=hgp33&logNo=221293449287&from=search&redirect=Log&widgetTypeCall=true&directAccess=false
8. 뭐 내용은 Java jdbc 보안문제로 동일함.
9. 문득 깨닮음을 얻은 나는 Ubuntu의 JRE에 있는 security 설정을 건들면 되겠다는 생각이 듬.
10. 저 링크에는 싹 지우라고 했지만... 글 자체가 3년이 넘은지라..
내 목적인 TLS 관련 부분만 지움..
jdk.tls.disabledAlgorithms 에서 TLS 1.0, TLS 1.1을 지워주자..
11. 당근 바로 안된다.. 서버 재부팅!!!
12. 해결!
13. 끗! 뭘봐!
2020년 7월 7일 화요일
Synology에서 unzip 사용하기
http://www.cphub.net
2. 갱신하고 커뮤니티 탭으로 가서
iPKGui 와 Easy Bootstrap Installer 를 설치
3. iPKGui 를 사용하여 unzip을 깔았지만,
ssh로 들어가서 실행해도 command not found 나올 것임.
4. ssh 에서 /opt/bin/ 로 이동하면 ipkg 실행파일이 있음.
5. vi 나 nano를 사용해서 /etc/profile의 PATH를 추가해 줘야함..
6. nano를 쓸려면.. 다음으로 설치
sudo /opt/bin/ipkg update
sudo /opt/bin/ipkg install nano
sudo /opt/bin/nano /etc/profile
7. /etc/profile 을 열어보면..
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin가 있고..
끝에 :/opt/bin 를 추가해 줌..
8. 저장하고 닫은 다음.. 현재 세션에 바로 적용하려면..
source /etc/profile해주면 적용 완료..
9. 확인하려면..
echo $PATH | tr ":" "\n" | nl로 출력되는 것을 확인..
2020년 5월 15일 금요일
Classic ASP로 네이버 단축주소 개발하기..
- Function fnNaverShorten(longURL)
- Response.ContentType = "application/json"
- reqAPIUrl = "https://openapi.naver.com/v1/util/shorturl?url=" & longURL
- set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
- xmlhttp.open "POST", reqAPIUrl, false
- xmlhttp.setRequestHeader "content-type","application/x-www-form-urlencoded; charset=UTF-8"
- xmlhttp.setRequestHeader "X-Naver-Client-Id", naverShortenClientID
- xmlhttp.setRequestHeader "X-Naver-Client-Secret", naverShortenClientSecret
- xmlhttp.send
- if Request.QueryString("dbug") = "T" then Response.Write(reqAPIUrl)
- fnNaverShorten = xmlhttp.responseText
- set xmlhttp = nothing
- End Function
0. 일단.. 네이버개발자 센터에서 사전 준비 사항을 챙긴다!! (이것저것 생성 및 ID / 비번)
1. 난 그냥.. 컨텐츠 유형은 당연히 "application/json"
2. 뭐 너무 평범한 Classic ASP용 xml 통신 소스라.. 설명이 필요한지...
3. 발급한 ClientID와 ClientSecret를 잘 넣기만 해라..
4. 받는 Page에서 json 파싱은 알아서 해라.
5. 설명 귀찮다.. 끗...
2020년 1월 28일 화요일
안쓰던 구글 Nexus 7 2012 Wifi 모델을 살림.
큰 아들 중학교에 올라가기에 인강용으로 쓸려고
리뉴월드에 수리 맞겨서 살려냄..
간만에 켜보니 롬이 Omni 롬인데.. 반응이 너무 늦고 고스트 터치가 발생해서
검색을 해보니.. 요새는 LineageOS가 대세임..
간만에. NRT 로 밀고 재설치..
그런데.. Gapps를 설치할 때 지속적으로 오류가 발생..
처음엔 아무 생각없이 가이드 따라하다보니..
32 bit용을 안 깔고 64 bit 용을 설치하다가 오류..
정신차리고 다시 32 bit를 설치하려 했으나.. 지속적으로 70 오류가 발생..
구글링 해보니.. 내부 시스템 공간이 부족해서 그런건데.. 일반적인 해결 방법인
시스템 파티션 수리로는 되지 않는다.. 결국 찾아낸 것이 아래 링크..
가장 마지막 빌드로 했더니.. 손쉽게 해결..
삽질만 3일했네..
https://forum.xda-developers.com/nexus-7/development/rom-lineageos-14-1-nexus-7-2012-t3530261
2018년 4월 19일 목요일
2018년 2월 23일 금요일
법무법인이나 총판이란 곳에서 소프트웨어 라이선스 위반이라고 연락이 왔다면?
상당히 골때리는 라이선스이다..
결국은 상대측에서 고소취하로 갔지만...
SPLA 라이선스는 좀 말이 많을 듯 하다.. MS 맘대로 해석을 하면 어쩔수 없지 않을까...
결론 : 쇼핑몰 운영하는 분들은 SPLA 라이선스 꼭 체크하시길...
-
어찌어찌 번역은 다 해서 올려 놓았으나.. 회사에선 다음 빌드까지 기다려 주지 않기에 번역을 다운로드 해 봤다.. 구축한 웹 사이트에 로그인을 해보고.. 언어 설정으로 가 보았으나... 어라??? 한글 선택이 없다!!! 이거 뭐지??...
-
업무 처리하다 보니.. 엑셀로 데이터를 넘겨 받음.. 양이 좀 많아서.. 중복 데이터 삭제 기능 검색울 해 보았으나.. 엑셀의 중복 제거 기능만 나옴... 오픈오피스는 아무래도 마이너해서 그런가.. 한글로 검색 말고.. 영어로 구글링...
-
모든 일의 시작은.. 최근에 JRE를 업데이트를 했는데.. 32-Bit로 update가 된 듯... Eclipse 실행시 !ENTRY org.eclipse.osgi 4 0 2015-03-31 14:21:48.411 !MESSAGE Ap...
[낯선] 2026.06.20 이태원 MZK MuzikBar 공연
간만의 공연 이태원 비틀즈가 이전하여 MZK MuzikBar 로 새 단장 오픈을 한 뒤로 2번째 공연 새 베이시스트가 합류한 뒤로 첫 공연이기도 함.. 이래저래 틀린 부분도 많지만.. 그래도 간만에 그럭저럭 잘했다.. https://www.youtub...
