프로그래밍

    PHP Laravel 에서 사이트맵을 생성하는 간단한 방법

    PHP Laravel 에서 사이트맵을 생성하는 간단한 방법

    저와 같이 라라벨로 웹사이트를 만드신 분들 반갑습니다 구글이나 빙 등, 검색 포털 사이트에 나의 웹사이트를 공개하려면 사이트맵을 반쯤 필수적으로 등록해야합니다 글을 등록할 때마다 직접 색인을 해주는 방법도 있지만 글 작성이 빈번하게 일어나는 경우에는 너무 번거롭겠죠? 뭐 직접 프로젝트를 성공적으로 완성하신 분들이라면 당연히 아시겠지만... 사이트맵을 만들어주는 생성 사이트도 여럿 있지만 또 서버의 프로젝트 폴더로 옮겨줘야하니 매우 귀찮은 작업을 그나마 쉽게할 수 있는 방법을 공유합니다. 1. spatie의 sitemap generator 패키지를 설치 composer require spatie/laravel-sitemap 그리도 동시에 config도 생성 해줍니다 php artisan vendor:pub..

    Fail2ban으로 무차별 대입, SSH 접속 시도 방어하기

    Fail2ban으로 무차별 대입, SSH 접속 시도 방어하기

    해킹 봇의 공격을 받고있던 건에 대하여 현재 운영중인 서버의 커뮤니티에는 에러 발생 시 DB에 로그를 남기도록 에러 핸들링을 해두었는데 그런데 위와같이 불순한 로그들이 존재하는 것이 아닌가.... 지금은 실제 서버에 올린 후 운영에 알맞도록 보수를 진행중인데 이런 접속 0인 사이트도 타겟이 될 줄은 몰랐다 그리고 서버에 접속해서 로그를 까보니 아주 맹렬한 기새로 cms를 탈취하기위한 노력을 보게되었습니다 근데 현재는 직접 관리하기 때문에 CMS가 없기에.... 그저 안쓰러운 아무튼 이런 상황을 그냥 둘 순 없기 때문에 fail2ban을 사용해서 불순한 ip들을 자동적으로 차단하도록 조치를 해봤습니다 간략히 설정하는 방법을 적어보자면 1. fail2ban을 설치 2. 우분투 기준 /etc/fail2ban ..

    WebSocket을 활용한 PHP 라라벨 실시간 채팅 - 2. 자바스크립트에서 웹소켓과 통신하기

    WebSocket을 활용한 PHP 라라벨 실시간 채팅 - 2. 자바스크립트에서 웹소켓과 통신하기

    생각보다 빠릿하게 동작하는 모습 감격 웹소켓 서버 연결을 위한 자바스크립트 코드 작성 우선 자바스크립트단에 웹소켓 객체부터 생성해줍니다 var socket = new WebSocket('wss://도메인 이름/websocket'); -- nginx로 웹소켓 서버를 연 경우 또는 var socket = new WebSocket('wss://도메인 이름:포트번호'); -- 테스트 환경 및 로컬 구동 그리고 연결이 완료된 경우 실행되는 onopen 함수도 작성해주면 테스트 시나 특정 이벤트를 연출하기 좋습니다 socket.onopen = function(e) { console.log("웹소켓 연결 성공"); }; 이번엔 웹소켓서버로부터 메시지를 받았을 때 실행된 함수를 작성해줍니다 socket.onmessag..

    WebSocket을 활용한 PHP 라라벨 실시간 채팅 - 1. 웹소켓 서버와 컨트롤러

    WebSocket을 활용한 PHP 라라벨 실시간 채팅 - 1. 웹소켓 서버와 컨트롤러

    그래도 1장은 쓰고 자자 가장 중요한, 메시지를 서로 주고받은 부분에 대해서 말해보고자 합니다 우선 기본적인 라라벨 환경이 구축된 상태인 것을 상정하고 작성하겠습니다! composer require cboden/ratchet 우선 ratchet을 설치 해야겠죵? 그리고 우리가 할 작업이 세가지가 있습니다 첫째, server.php작성 둘째, server.php에서 사용할 웹소켓 컨트롤러 셋쨰, 자바스크립트를 통한 커넥팅 먼저 server.php를 작성해볼까요? 1. server.php 작성

    WebSocket을 활용한 PHP 라라벨 실시간 채팅 구현 - 개요

    WebSocket을 활용한 PHP 라라벨 실시간 채팅 구현 - 개요

    시작하기 전에 완성된 사진 프리뷰 먼저 한 스푼 고졸 국비 비전공 쓰리콤보로 어찌저찌 취업을 하고 정신을 차려보니 php와 라라벨이 주 언어, 프레임워크가 되어버린 ( 아무도 안 시킴 ) 사람입니다 지난 수 개월간 개인 프로젝트 겸 실제 서비스를 해볼 커뮤니티 사이트를 만들면서 ( 광고수익을 위한 ) 문득 개인적인 욕심으로 구현해본 채팅입니다 저 같은 경우에는 아래와 같이 테이블 구조를 만들었습니다 1. 대충 채팅방 테이블 2. 대충 채팅방 메시지 저장 테이블 3. 사용자가 속한 채팅방 키값 저장 테이블 데이터베이스 구조야 자유롭게 짜시길.... 사람마다 지향하는 바가 다르니까요 솔직히 라라벨의 로직 자체는 굉장히 맘에 듭니다 테스트도 빠르게 해볼 수 있고 구조가 단순해서 로직을 이것저것 테스트해보기 굉..

    리액트 튜토리얼 ( 기초 입문 ) - 5

    리액트 튜토리얼 ( 기초 입문 ) - 5

    본 게시물은 유튜브 "개발자의 품격" 님의 강의를 토대로 작성 되었습니다 이번엔 사용자의 입력을 받는 Input 컴포넌트를 만들어 봅시다 똑같이 컴포넌트 폴더에 Input.js 를 만들어주고 다음과 같이 작성 해줍니다 입력시 이벤트 그룹의 onChange 함수가 호출 되고 그에 따라서 현재 컴포넌트에서 만들어둔 onChange 함수가 호출이 됩니다 그리고 그 안에 있는 setTextValue가 실행이 되고 마지막으로 useState가 실행 되며 프로세스가 마무리 됩니다 곧 바로 이 다음, 여러 입력을 받는 예제도 작성 해봅니다 Input2라는 이름으로 이 다음 코드를 작성 해봅시다 디스트럭쳐링으로 선언한 변수를 스프레드로 불러와서 id 값과 같은 키를 찾아서 값을 처리 해준다