Loading...
우린 늘 친구였습니다

우린 늘 친구였습니다. 전 그저 당신이 가는 길을 묵묵히 응원해 줄 뿐입니다.저에게 친구라는 단어는 쉬우나 친구라는 자체는 아직 어렵습니다. 비록 몇년간 연락이 되지 않아도, 한번쯤 서로를 생각해 준다면그걸로서 친구라는 의미를 되새기엔 충분하다고 생각합니다. 너무 다가올려고도 하지 마십시오, 친구란 다가오는것만이 아닙니다.지켜보는것도 친구로서 하나일 수 ···

웹 소켓 서버(Websocket) - Ratchet 웹 소켓 서버에서 접속자를 제어

Ratchet 웹 소켓 서버를 실행하면 소켓의 정보만 있다면 로컬에서만 접속가능한 환경이 아닐 경우 TCP URI 정보만 있다면 누구든 클라이언트에서 웹 소켓을 연결하여 접속을 할 수 있게된다. 우리는 이를 사전에 막아 보안강화를 할 필요가 있다. 기본적으로 포트를 막는 방법엔 아래와 같이 두가지 방법이 있다. 1. iptables 를이용하는 방법이 가장 ···

웹 소켓 서버(Websocket) - Ratchet 라이브러리의 보안 프로토콜(wss) 소켓 생성방법

웹 소켓은 ws 와 wss 프로토콜 방식을 제공하는데 이는 일반적인 URI의 HTTP 와 HTTPS와 같이 일반전송과 암호화전송 정도로 이해하면 된다. ws 프로토콜을 이용할경우 일반적인 원문으로 전송이 되기 때문에 중요 데이터를 공격자는 그대로 볼 수 있다. 이는 DB로 본다면 비밀번호 칼럼을 그대로 원문으로 처리한것과 동일하다. 이럴경우 DB가 노출되면···

웹 소켓 서버(Websocket) - 자바스크립트 Websocket 이용한 간단한 채팅 프로그램 예제

자바스크립트에서 공식적으로 제공되는 Websocket 객체는 클라이언트 와 서버 간 데이터를 주고 받을 수 있도록 연결 스트림을 만들어 주는 기술로 일반 소켓통신은 서버간 통신였다면 웹 소켓은 클라이언트 to 서버간 통신으로 볼 수 있다. 그렇다고 해서 클라이언트만 이용가능한건 아니며 서버간 통신도 가능하지만 서버간 통신이라면 굳이 복잡한 웹 소켓을 보단 ···

웹 소켓 서버(Websocket) - PHP Ratchet 라이브러리 설치 및 실행

PHP를 통해 웹 소켓을 하기 위해선 소켓 서버가 있어야한다. 당연하게도 우리는 웹 소켓 프로그램을 만들기엔 오랜시간이 걸리고 어쩌면 영영 못만들 수 있다. 그래서 제공되는 라이브러리를 사용해야 하며 라이브러리는 Composer를 통해 쉽게 관리할 수 있다. 우선 들어가기 앞서 Composer 설치가 안되어 있을 경우 진행할 수 없으니 사전에 Compose···

순수 javascript의 fetch 함수를 이용한 커스텀 비동기 ajax 함수

순수 javascript 에서 ajax 통신을 할때 주로 XMLHttpRequest 또는 fetch 를 이용했을 것이다. XMLHttpRequest의 경우 현재도 많이 사용되는 방식이긴 하나 현재까지 와서는 이보다 더 강력한 fetch 함수를 많이 사용하고 있는 편이다. 이번편은 fetch 함수를 이용한 커스텀 비동기 ajax 함수에 대해 알아보도록 하자 ···

JQuery 에서 ajax 전송시 동기(async:false) 처리가 되지 않아 return 값을 받을 수 없을 시 대안

JQuery를 이용한 ajax 처리 시 보통 비동기로 처리하지만 동기 처리를 통해 결과값을 받아야하는 경우가 있다. 이때 ajax 옵션에 async:false 를 넣어주면 동기방식으로 처리를 할 수 있기에 자주 사용을 했었는데 특정 기기 환경에서 결과값을 받지 못하는 경우가 발생했다. 처음엔 AJAX 처리시 오류가 발생했나 하여 디버깅을 여러번 해보았지만 ···

HTML 태그의 data 속성처럼 특정 속성을 저장하고 javascript 객체로 가져오기 (for jquery)

HTML 태그의 data 속성은 공식 지원되는 객체 속성으로 jquery를 사용하여 data 속성을 가져오게 되면 객체형태로 쉽게 받을 수 있기때문에 활용도가 높은 편이다. 이번편은 data 속성은 잘 알려져 있기에 이번편에서는 data 속성과 같이 특정 속성을 저장하고 jquery를 통해 객체화 하는 방법에 대해 알아보자. 우선 방법을 소개하기전 data···

자바스크립트(javascript) 에서 try~catch 활용 예제

자바스크립트를 사용하다보면 런타임 중 에러를 무시하고 다음 라인을 실행해야 하는 경우가 발생한다. 이때 사용할 수 있는건 사전에 에러 발생이 안나도록 변수나 함수의 타입을 검증하는 예외처리가 필요하지만 try 블록을 이용하여 처리를 회치할 수 있다. 사실 try~catch 는 에러를 보완할 수 있는 수단이라기 보단 에러는 회피하는 용도로 사용되고, 커스텀 ···

RWS 프레임워크 프로젝트 개발 후기(1)

RWS 프레임워크는 Redinfo Web Sever 의 줄임말로 현재 운영되는 사이트를 통합한 프레임워크의 이름이다. 처음 개발을 시작한지 2년이 지난것같다. 최근에 대규모 업데이트를 하면서 어느정도 프레임워크 형태가 갖추어 지고 있긴 하지만 고려하지 못했던 사항들이 발생되어 지속적으로 업데이트 중에있다. 처음 개발을 시작하게된 목적은 사이트를 운영할때 조···

PHP8 도입은 언제쯤이 좋을까?

PHP와 함께 해온지 벌써 10년이 다되가는것같다. 내가 처음 사용한 버전은 PHP5 버전대였는데 영원할것같던 5도 이제 역사속으로 사라지고 PHP7로 갈아탄지가 엊그제 같은데 부지런하고 똑똑한 PHP 연구원들덕에 빠르게 사라질 듯 싶다. 솔직히 PHP8은 작년에 개발서버에 설치만 해놓고 언젠간 해야지라는 믿을 수 없는 결심만 하고 지금껏 모른척 했지만 회···

RWS 프레임워크 기반 로또 자동추첨 프로그램 업데이트 안내

오랫동안 미뤄왔던 로또 자동추첨 프로그램을 그디어 업데이트 하게 되었다. 이번 업데이트는 프로그램 업데이트 보단 RWS 프레임워크를 기반으로 변경한게 가장 크고 중간에 오픈했다가 포인트 분할 시스템을 잘 못 만져서 중단된 로또 게임도 다시 오픈하게 되었다. REDINFO 로또 원하는 번호를 조금더 현명하게 추출 하도록 도와주는 로또 자동 추첨 사이트 로또 ···

JQUERY 와 CSS 를 이용하여 텍스트가 길경우 더보기/접기 기능을 만들어보자

컨텐츠형 페이지를 만들다보면 특정 구간에 불필요한 내용이 길어져 일부 내용을 자르고 더보기 기능을 만들어야할 때가 있다. 더보기 기능은 간단할것 같으면서도 막상 만들려면 귀찮을때가 많이 있다. 특히나 반응형 작업 시에는 고정 크기 화면의 PC화면과는 다르게 크기별로 높이가 달라져 조건처리가 필요할 수도 있다. 이번편에 소개할 더보기 기능은 아래와 같이 두가···

PHP를 이용하여 문장의 앞뒤로 자르고 접두사 붙이기 (mb_substr_after / mb_substr_before)

주로 컨텐츠 관련된 작업을 하다보면 글이 길경우 잘라야 하는 경우가 있다. 보통 문장의 뒷부분을 자르고 접두사(...)를 붙이는 경우가 많다. 다만 요즘은 반응형으로 사이트를 많이 제작하다보니 PC기준으로 최대한 글자수를 자르고 CSS로 말줄임 처리를 하는 경우가 많다. 이번편에서는 간단하게나마 PHP를 이용하여 문장의 뒷부분 또는 앞부분 자르는 함수에 대···

QR코드 생성 및 PHP 활용 방법 (QR Code API)

QR코드란 문자열로 된 정보가 저장된 코드인데 보통 2차원 데이터 코드라고 한다. 이건 수학에 좀더 관심있는 사람이라면 쉽게 이해할 수 있겠지만 그런걸 깊게 파고 싶다면 역사부터 시작해야하니 본 포스팅에서는 넘어가고 QR코드는 정사각형으로된 정보코드로 이해하고 넘어가자. (솔직히 나도 설명하기 힘듬) QR코드는를 보기전에 이와 비슷한 바코드가 있는데 바코드···

PHP를 통해 카카오 Karlo 를 이용해보자 - v2 버전

카카오에서 제공하는 Karlo (인공지능 이미지 생성 기능)가 v2 버전으로 상향 되었다. 물론 v1도 아직까지는 사용가능하지만 기능이 한층 더 상향된 v2를 권장하기에 이번에 변경된 API 기능에 대해 소개하려고한다. 카카오 Karlo v2 업그레이드 안내문 본 포스팅은 앞서 작성한 포스팅 v1 포스팅을 이용하여 진행하였으며 v2에서

페이스북 로그인 API를 연동한 공개 서비스를 생각하고 있다면 이것만은 꼭 알고 진행하자

이번편은 제목 그대로 페이스북 로그인 API를 연동하여 공개 서비스를 생각하고 있다면 꼭 알고 진행해야할 사항에 대해 간단하게나마 알려주려고한다. 페이스북 로그인 API는 오래전부터 카카오, 네이버, 페이스북 3대 SNS 로그인 서비스중 하나로 불릴만큼 많이 사용되었는데 점점 시간이 지날수록 개발자에게는 폐쇄적인 API로 변하면서 점점 인기가 떨어지고 있는···

PHP의 mb_strlen 결과와 javascript의 length 결과값이 다를때 대처

지금까지 개발하면서 mb_strlen 과 Javascript의 길이가 다를 수 있다는걸 인지하지 못하였다. 아무래도 서버단에서만 체크하다보니 디테일한 부분은 인지를 못했던것같다. 보통 우리가 javascript로 글자수를 판별할 시에는 아래와 같이 `변수.length`와 같이 판별을 할것이다. <script> var a = "한글 입니다."; a···

블로그 서버 이전에 대한 고려와 전체 사이트 개편 계획

최근들어 물가도 많이 상승했고 똑똑한 GPT 덕분인지는 모르나 REDINFO 로 운영되는 모든 사이트의 방문자가 뚝 떨어진것을 볼 수 있었다. 물론 이득을 위한 실서비스가 아닌 개발 용도로 운영하는 사이트들이긴 하나 유독 내가 운영하는 사이트들만 유입이 적다보니 개발 의지도 줄어들게 되고 이럴때면 내 옆에 우뚝 서있는 서버가 슬퍼서 울고 있는것같다. (`G···

phpSyntaxCheck - PHP 문법 체크 라이브러리

phpSyntaxCheck 본 라이브러리는 PHP(ver7+) 로 제작되었으며 쉘 명령어인 php -l 을 이용하여 PHP 문법에 어긋난 파일을 사전에 찾아 점검할 수 있는데 목적을 두고 있습니다. 쉘(Shell) 명령어를 사용하는 만큼 반드시 php 실행권한이 있어야 하며 해당 권한이 없는 경우 이용이 불가능한점 미리 참고 바라며 본 라이브러리는 복잡한···