Programming129 [og] 카카오톡 메시지에 URL 첨부시 제목이 URL로 나오는 경우 및 테스트 방법 6월 부터인가? 갑자기 카카오톡에 특정 사이트 URL을 전송하면 보여주던 이미지와 제목에서 이미지는 정상인데 제목이 문제가 되었다. 제목이 URL로만 보인다. 잘되는 것이 안되니 호기심이 생기네... 카카오톡은 어떤 것을 참조해서 제목을 가져오는 걸까? 카카오톡의 테스트 URL? 개발자 센터 일단 카카오톡 메시지로 전송이 되면 어떻게 되는지 미리 알수 있는 방법은 카카오톡 개발자 센터에 있다. 생뚱맞기는 하지만 카카오 스토리 > RESTAPI > 웹 페이지 스크롤링에서 테스트를 제공한다. [페이지 링크] 테스트는 간단하지만 개발자 센터에서 API 테스트기 때문에 액세스 토큰을 발급받아야 한다. 카카오톡 아이디만 있으면 되는 걸로 알고 있으니, 귀찮겠지만 테스트를 위해서 개발자센터에 등록 후 토큰을 발급 .. 2020. 6. 6. [Laravel] Eloquent ORM, Query Builder로 실행한 full query 확인 개발 중 자주 쿼리를 확인하는 일이 있다. 그런데 ->toSql()로 하게 되면 바인딩 전 쿼리만 나와서 해당 값이 정상 들어갔는지 확인이 어려울 수 있다. 이번에는 mysql 4.x old 버전에 쿼리 질의를 할 일이 생겼는데, php 5.x 버전 부터 mysql 4.x 버전을 지원하지 않고, 어느 언어를 사용하더라도 4.x 버전을 미지원이라는 장벽을 맞이하게 되었다. 결국 원격으로 php 5.x 저 버전에 raw 쿼리를 던져서 질의 하도록 미들웨어 개념의 api를 만들었다. 기본 어드민 툴은 laravel에서 사용을 해야 하니 raw query를 생성해서 던지는 작업을 해야하는 경우가 생긴 것이다. 머 이유가 어찌 됐건 일단 바인딩된 최종 raw query 획득을 위한 작업을 진행하기 위해서 설정 작.. 2020. 5. 30. [Linux] 가끔 필요한 내용 정리 n일 이전 생성 파일 보기 및 삭제 # n일 이전 생성 파일 보기 find 폴더/ -mtime +n find 폴더/ -mtime +n -print # n일 이전 생성 파일 삭제 find 폴더/ -mtime +n -delete find 폴더/ -mtime +n -exec rm {} \; 2020. 5. 18. [Python] 텔레그램 채팅봇 만들기 요 근래 말이 많은 텔레그램입니다. 원격지 컴퓨터에 명령 실행할 방법을 찾다가, 메신저를 통해서 실행해 보자는 아이디어 차원에서 한번 챗봇을 보게 되었는데, 파이썬 + 텔레그램 봇 구성이 생각보다 쉬워 공유를 해봅니다. telepot 모듈 설치 pip install telepot --upgrade 소스 샘플 import telepot from telepot.loop import MessageLoop import time TOKEN_MAIN = 'BOT_TOKEN' StartMsg = """ BOT 기본 명령어 1. /help : 도움말 2. 안녕 """ # 특정 명령어가 입력할 때 반응 def execcommand(message, chat_id): args = message.split(' ') comma.. 2020. 5. 15. [VueJs] vue-chartjs 로 멀티라인 그래프 그리기 머신러닝 같은 강좌나 책을 읽다 보면 간혹 마주치는 단어가 시계열 혹은 시계열화 이란 것입니다. 말은 어려워 보이는데 영어로는 "time series" 라고 합니다. 한글은 어렵지만 영어는 어느 정도 뜻이 이해가 갑니다. 그냥 순차적으로 먼가 하는 거구나... 라는 센쑤~! 개발자들이 디비 등에서 추출한 정보는 보통 테이블 형식의 텍스트로 제공하는 경우가 많습니다. 이것을 보기 좋게 그래프 형태로 변형해서 보여주면, 직관적으로 이해하게 되고, 실시간 의사결정이 가능해 진다고 합니다. 예전부터 알고는 있었지만, 막상 그래프 표현은 좀 어렵기는 합니다. vuejs에서는 되게 쉽습니다. 시계열의 대표적인 것이 Line Chart 일 것 같아서, 소스로 좀더 쉽게 만들어 보도록 하겠습니다. Line Charts.. 2020. 5. 11. 배민의 우아한테크세미나 온라인 진행 관련 세미나 동영상: https://www.youtube.com/watch?v=BlEzbGTQ9Zs 우아한테크세미나 동영상 자료 2020년 5월 7일 개최한 "우아한테크세미나" 발표 내용은 아래와 같습니다. 발표자료 1부 - 엔티티 클래스 설계와 퍼시스턴스 프레임워크의 활용 * 발표자료 (원페이지뷰) : https://bit.ly/2YNxlV7 * 발표자료 (슬라이드) : https://benelog.github.io/entity-dev/ 2부 - Spring Data JDBC Advanced * 발표자료 : https://bit.ly/3fCkRpg * 참고코드 : https://bit.ly/2SFjwE8www.bit.ly/2YNxlV7 참 멋지네요. 2020. 5. 8. [Apple] WWDC20 - 6월 22일 온라인으로~! 오늘 오전에 애플에서 받은 메일입니다. WWDC이 계절이 다가오고 있습니다. 벌써~~~!!! 애플의 가장 큰 개발자 행사인 WWDC 2020이 코로나 영향으로 6월 22일 온라인으로 진행을 한다고 합니다. 관련 링크는 개발자 페이지로 이동하구요. https://developer.apple.com/wwdc20/?cid=CDM-DM-P0012725-444312&cp=em-P0012725-444312&sr=em 앱 스토어를 통해서 "Apple Developer" 라는 앱을 배포 중입니다. 이곳에서 관련 강좌 등의 내용을 지속 업데이트 할 예정으로 보입니다. 이번 컨퍼런스의 특이사항은 Swift 관련 학생 대회?(Swift Student Challenge)를 5월 17일까지 진행한다고 합니다. 대회 우승자?에게.. 2020. 5. 6. [Python] psycopg2 에서 실행된 쿼리문 전체 보기 import psycopg2 as pg2 from psycopg2.extras import DictCursor conn = pg2.connect() cursor = conn.cursor(cursor_factory=DictCursor) cursor.execute('select %s, %s', ('test', 2)) cursor.query "select E'test', 2" 2020. 4. 29. [VueJs] CKEditor 연동하기 // 설치 npm i --save @ckeditor/ckeditor5-vue @ckeditor/ckeditor5-build-classic // package.json 확인 "dependencies": { "@ckeditor/ckeditor5-build-classic": "^16.0.0", "@ckeditor/ckeditor5-vue": "^1.0.1" } // template 파일 샘플 팁 언어를 한국어(ko) 로 지정을 해도 메뉴들이 여전히 영어로 나올 경우, 한국어를 직접 참조할 수 있도록 추가 import '@ckeditor/ckeditor5-build-classic/build/translations/ko'; 참조 URL : https://ckeditor.com/docs/ckeditor5/lates.. 2020. 4. 27. [Python] 이름으로 특정 프로세스 종료 시키기 보통 콘솔에서 동작을 시킬때 동일한 프로그램이 좀비형태로 안죽고 있거나, 일정 시간 오버해서 동작하는 경우 강제로 종료시켜야할 필요성이 있을때 사용하면 유용합니다. import psutil # python filename.py로 실행된 프로세스를 찾음 for proc in psutil.process_iter(): try: # 프로세스 이름, PID값 가져오기 processName = proc.name() processID = proc.pid if processName[:6] == "python": // 윈도우는 python.exe로 올라옴 commandLine = proc.cmdline() # 동일한 프로세스 확인. code 확인 if 'filename.py' in commandLine: parent_p.. 2020. 4. 27. [VueJs] component 에서 벗어날때 이벤트 처리하기 페이지 이동 전에 특정 이벤트를 처리하고 싶은 경우가 있는 경우 유용합니다. // component LIFECYCLE components: { ... }, mounted: { ... } methods: { ... }, beforeRouteLeave (to, from, next) { ... } // 컴포넌트를 벗어나는 경우 처리할 이벤트 // 샘플 beforeRouteLeave(to, from, next) { const answer = window.confirm('데이터 저장이 되지 않았습니다. 이 페이지를 나가시겠습니까?') if (answer) { next() } else { next(false) // false를 추가한 경우 페이지 이동을 하지 않음 } } 2020. 4. 26. [Python] 엑셀 처리 방법 pip install openpyxl 디렉토리 내의 엑셀 파일 목록 전체를 읽어서 분석하기 코드 일부 import openpyxl import os dirList = [ 'D:\\admin', 'D:\\front' ] currentNo = 0 def analsysEcxcel(filename, currentNo): # 엑셀파일 열기 wb = openpyxl.load_workbook(filename) # 현재 Active Sheet 얻기 ws = wb.active # Active Sheet 지정하기 # ws = wb.get_sheet_by_name("Sheet1") # 국영수 점수를 읽기 for r in ws.rows: row_index = r[0].row # 행 인덱스 if row_index < 2: # .. 2020. 4. 16. [VSCode] sftp + euckr 파일 원격 수정 ftp-simple 원격 FTP 연결 플러그인 ftp-simple 설치 Setting > Command-Palette 클릭 > ftp-simple 검색 ftp-simple: Config - FTP connection setting 선택 [ { "name": "service_name", "host": "domain", "port": 22, "type": "sftp", "username": "ID", "password": "비밀번호", "path": "/home/", // 원격지 디렉토리 위치 "autosave": true, "confirm": true // 저장할때마다 OK 창 뜨는 것이 귀찮으면 false로 변경 } ] ftp-simple 실행: Remote directory open to workspace 파일을 수정하고.. 2020. 4. 7. [Laravel] gmail을 이용해서 메일 보내기 Laravel 기본 vendor를 이용하여 메일 전송하는 소스 입니다. 1. 메일 발송용 컨트롤러 생성 php artisan make:controller MailController 2019. 12. 15. [ReactJS][설정] File Template for WebStorm React 맥에서 입맛에 맞는 에디터 찾기가 쉽지 않습니다. 특히나 맥맹인 저로써는 Visual Studio for Mac도 그리 좋아하지 않습니다. 애초에 텍스트 에디터나 리치 에디터 쪽에는 애플이 별로 신경을 쓰지 않은 것으로 보이네요. 적어도 맥맹인 저에게는 그렇습니다. =_=;;그나마 마음에 드는 녀석이 바로 WebStorm 이네요. 코딩의 즐거움을 줄이기? 위해서 ReactJS용 템플릿을 만들어 보았습니다. 만든 김에 귀찮아서 package.json, webpack.config.js 템플릿도 만들었습니다. 지우고 다시 설정하면 되도록 계속 조정을 할 생각입니다. ^^Preferences > Editor > File and Code Templates > + (add)1. React File (js.. 2017. 6. 28. [개발툴][mac] Visual Studio for Mac Preview 버전 다운로드 VISUAL STUDIO 혹시나 했는데, 진짜 일까 했는데...Visual Studio가 맥용으로 나왔네요. 설마... MS가 윈도우를 포기한 것은 아니겠죠??? ^^그래도 한글은 그지 같은 이느낌..은 기우여야 할 건데~~좋은 밤 되십시오. 2016. 11. 17. [xamarin][XMFS] XAML Previewer, Gorilla Player Xamarin.Forms가 아쉬운 것이 여러가지 있지만, 디자인 결과를 보기 위해서 매번 컴파일 해야 한다는 것입니다. 그걸 해결해줄 녀석이 하나 있네요. 아직 베타버전이기는 하지만 고릴라 플레이어 입니다. 고릴라 플레이어 사이트고릴라 플레이어 다운로드 페이지 이녀석을 사용하는 데 꽤나 애를 먹었습니다. 난독증이 있는지, 이해력이 떨어지는지... ㅠ,.ㅠ;; 한참 헤매다가 겨우 알아 먹었습니다. 사용방법 시뮬레이터에 고릴라 플레이어 설치 1. 고릴라 플레이어를 설치하면 "Gorilla Player by UXDivers" 창이 뜹니다. 없다면 트레이 아이콘에서 "Getting Started Walkthrough"를 선택하여 실행합니다. 2. 두번째 탭(2-Installing Gorilla Player on.. 2016. 6. 20. [xamarin][FORMS] blog 샘플 소스 따라 하기 #0 개요 c#을 잘 모릅니다. 그래도 몇년 전에 사 놓은 책이 몇 권 책장을 차지하고 있네요. 안봐서 문제겠지만요. xamarin도 익히 들었지만 솔직히 잘 모릅니다. 모바일 개발에 적용해 보려고, 그동안 해보고 싶었지만 월 $25의 가격정책은 높은 벽으로 넘기 어렵웠습니다. "공부하려고 하는데 돈을 내야 하다니..." 게다가 이래 저래 치여서 살다보니 짬이 안나는 시간도 문제였습니다. 머... 다들 그러시잖아요?? ㅠ,.ㅠ;;그러다 얼마 전 MS가 xamarin을 인수하고, 감사하게도 무료로 풀었다는 반가운 소리에, 다시 힘을 얻어서 이것 저것 만져 본지도 벌써 석달이 되어 갑니다. 공부할 짬을 낼 수 없는 현실이 문제라고 하소연을 해 보지만... 역시 아무 것도 모르는 초보자에게 새로운 언어와 툴은 장벽입니다.. 2016. 5. 9. [AngularJS] AngularJS 2와 TypeScript로 SPA 만들기 #1-1 샘플 소스 분석 My First Angular 2 App 만들기 [링크] Angularjs 2 샘플 소스 다운받기 (QuickStart) 샘플 소스를 따라 하면 마지막에 npm start 가 나옵니다. 이 소스는 특별히 문제가 없어 보이지만, 다음 Tutorial의 소스인 Tour of Heroes를 따라하다 보면 NodeJS 위에서는 정상동작을 하나, 실제 웹서비스에서는 오류가 나옵니다. 데이터를 제대로 읽지 못해서 그런 것으로 보입니다. 그래서 TypeScript를 사용하는 것은 NodeJS 서버 위에서 사용을 해야하는 건가? 하는 고민을 하기도 했습니다. 실은 제가 NodeJS 프로젝트는 WebStorm 에디터를 이용해서 하고 있어서, 툴에 대한 종속성 문제가 생기는 거라, 좀 헤깔렸습니다. NodeJS + Ang.. 2016. 5. 5. [AngularJS] AngularJS 2와 TypeScript로 SPA 만들기 #1 환경 설정 SPA 만들기를 시작하면서 필요에 의해서 웹페이지 하나를 만드는데, 테이블이 2개, 셀렉트 박스가 3개가 서로 맞물려서 데이터를 주고 받아야 하는데, 이걸 처리하려고 하니 일반 웹페이지에서는 페이지 갱신을 여러번 해줘야 하고, 그럴때 마다 할일없이 데이터 요청을 계속하게 되는 악순환?이 생겨서, 처음에는 그냥 페이지 로드하면서 백단에서 async하게 ajax call을 해볼 생각이었다. 문득 백단에서 호출하는 녀석을 ajax로 할 거면 angularjs로 하는 것도 괜찮지 않을까? 하는 생각을 했다. 그러면 이번에 나온 angularjs 2는 어떨까? 그러고 보니 angularjs가 typescript를 지원한다는데... 이참에 그것도 한번 해볼까? typescript를 잘 지원하는 에디터가 visual.. 2016. 5. 3. [JS] AngularJS를 Laravel에서 사용하기 Laravel에서 디자인 블레이드의 변수는 {{}}를 사용하는데, 이 내용은 AngularJS와 동일합니다. 해서 변수를 지정하는 "{{}}"변경하는 작업이 필요합니다.var myApp = angular.module('MyApp', []).config(function($interpolateProvider) { $interpolateProvider.startSymbol('[[['); $interpolateProvider.endSymbol(']]]');});저는 {{}} 대신에 [[[ ]]]로 변경을 했습니다. [Shift]키를 한번이라도 덜 눌러 보려는 꼼수? 입니다. ^^;; 2014. 3. 25. 이전 1 2 3 4 5 6 7 다음 반응형