본문 바로가기

전체 글

(56)
curl 대체 코드 제목 그대로 php에서 curl 을 사용하고 싶은데 사용하지 못하는 경우 사용한 코드이다.해당 문제는 APM 를 배포하는 부분에서 발생했다.APM 을 배포하여 아파치와 PHP가 새로운 환경에 설치되는데 해당 PC에서 오류가 났었다.분명 내 PC에서 테스트시 문제가 없었지만 새로운 환경으로 배포하면 오류가 생기는 상황이라 당황스러웠다.코드도 완벽히 같은 상황에서 확인해보니 curl 사용하여 외부 api 를 호출하는 부분에서 오류가 생겼다.내가 테스트했던 pc인 경우 curl 을 설치했던 이력이 있어서 문제가 없었지만 새롭게 설치되는 환경에서는 해당 설치가 이뤄지지 않았기에 오류가 생겼던 것이다.매 환경마다 curl을 설치할 수는 없기에 curl을 사용하지 않기로 했다. 다음은 대체 코드이다GET 호출// ..
php header text파일 다운로드 파일을 따로 서버에 생성하지않고 즉시 txt 파일로 다운로드 받게하는 코드다. public function print_txt($data,$filename, $delimiter="\t"){ if( headers_sent() ) die('Headers Already Sent'); if(ini_get('zlib.output_compression')) ini_set('zlib.output_compression', 'Off'); $path_parts = pathinfo($filename); //파일 확장자 가져오기용 $ext = strtolower($path_parts["extension"]); switch ($ext) { case "pdf":..
쿼리 조건절 유의점 어찌보면 당연하지만 가끔씩 깜빡하는게 하나있다. 간단한 예시를 하나 들자면난 t_main 테이블의 f1 필드에 test 라는 데이터를 제외한 모든 데이터를 불러오려고 한다. 아래와 같이 쿼리를 짰다.select * from t_main where f1 != 'test';얼핏보면 문제가 없어 보이지만 저렇게 하게되면 f1필드의 데이터가 test가 아님에도 불구하고 검색되지 않는 것들이 발견된다.바로 f1이 null 인 데이터들은 결과로 나오지않는다... 이걸 주의해서select * from t_main WHERE f1 IS NULL OR f1 != 'test';or null 처리를 하거나 nvl 처리를 해주자(가급적 or 처리가 좋다)
[JS] 디스코드 노래 봇 5 노래봇에 재생목록, 삭제, 넘기기, 반복재생 등등 기능을 만들었는데 중요한 문제가 생겼다.유튜브 정책 변경으로 기존에 사용중이던 ytdl-core 라이브러리가 사용이 불가능해졌다.다른 방법을 찾아야하는 상황이다.일단 아래는 지금까지 작업했었던 코드다.const { Client, GatewayIntentBits } = require('discord.js');const { joinVoiceChannel, createAudioPlayer, createAudioResource, AudioPlayerStatus } = require('@discordjs/voice');const ytdl = require('ytdl-core'); //수정예정const { token, youtubeApiKey } = require..
drop 테이블 복구 drop table 테이블명 으로 삭제한 테이블을 복구하는 방법이다주의점으로는1. purge 를 사용하여 삭제한 테이블의 경우에는 복구되지 않는다.2. 복구한 테이블의 index명은 달라진다.  1. 휴지통에 있는 데이터 조회SELECT * FROM RECYCLEBIN- 삭제된 정보가 나오며 ORIGINAL_NAME과 OPERATION을 활용하여 복구가 가능하다. 2. 테이블 복구하기FLASHBACK TABLE 테이블명 TO BEFORE DROP 이름으로 복구할 때, 동일테이블명에 대해 여러오브젝트가 휴지통에 있는경우가장 최근 삭제된 순서로 Flashback(복구) 된다. 3. 특정 테이블 휴지통에서 제거-- 휴지통에서 삭제하려는 테이블의 ID (OBJECT_NAME)에 쌍따옴표로 감싸야 한다.PURGE..
[JS] 디스코드 노래 봇 4 이제 얼추 정리는 끝났다.유튜브search api도 가져왔고, 그걸 이용하여 노래 재생까지 완료된 상태다.여기에 명령어를 정리하여 코드를 정리해보자 현재까지 작성했던 내용을 바탕으로 조금 정리해본 코드이다.const { Client, GatewayIntentBits } = require('discord.js');const { joinVoiceChannel, createAudioPlayer, createAudioResource, AudioPlayerStatus } = require('@discordjs/voice');const ytdl = require('ytdl-core');const { token, youtubeApiKey } = require('./discordConfig.js');const sodi..
오라클 DB링크 오라클의 DB의 실제 운영서버에서 개발서버 쪽으로 데이터를 옮겨야하는 상황이 있었다.예전이였으면 데이터를 파일로뽑고, 그 데이터를 sqlldr로 넣는 방식으로 옮겼겠지만 이번엔 DB링크로 옮기게 되었다. 기존에 같은 서버에서 다른 스키마의 DB까지는 접근해서 사용했는데 다른 서버의 DB를 가져오는 링크는 처음 만들어봤다. (DBA한테 허락을 받았다) 자 만들어보자CREATE DATABASE LINK LIVE_MY_MAP -- 링크로 사용할 이름CONNECT TO MYMAP -- 링크할 서비스 DB 이름IDENTIFIED BY "TESTPWD123" -- 비밀번호 쌍따옴표 필수USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS =..
[JS] 디스코드 노래 봇 3 이런저런 일이 많아 잠시 내려놓았다가 시간이 생겨 또 추가해보았다.이번엔 직접 유튜브 링크를 작성하여 재생시키는게 아닌 특정단어로 해당 유튜브를 재생시키는 방법을 추가했다.고맙게도 node js 에 youtube-search 모듈이 있다.npm install youtube-search이후 https://console.developers.google.com Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com에 접속하여 프로젝트를 만들고 key를 발급받자자세한건 아래 블로그 참고https://bonniness.tistory.com/entry/%EA%B5%AC%EA%B8%80-Youtube-API-%EC%82%AC%EC%9A%A9-%EC%82%AC%EC%9..

반응형