개요 Socialite나 외부 Oauth를 통해 해당 회원 정보를 가져오는데 성공 하였지만, 내부적인 API을 사용하기 위해서는 내부적으로 구축한 인증 절차도 통과 해 줘야 한다. 하지만, 내부적으로 구축한 인증 절차를 통과하기 위해서는 내부 인증에 사용되는 email / password 값을 입력하는게 보통이지만 외부 oauth를 통과하기 위해 이미 외부 계정과 비밀번호를 입력한 유저에게 한번 더 email / password 값을 입력해야지만 로그인을 시켜주는 것은 절차상 너무 복잡한 절차이며 회원들이 이탈할 확률이 높아진다. 계정 통합을 위하여 가입시에 email / password 값을 추가적으로 받는 경우들은 많지만 매 로그인 시마다 해당 절차를 밟게 하는 것은 옳은 판단은 아닐 것이다. 다양한..
laravel
개요 docker-compose.yml 파일에서 postgresql 도 같이 묶어서 개발 환경을 손쉽게 구축하기 쉽게 구현하였지만, 실제 프로덕션 환경에서는 외부에 존재하는 postgresql에 접근해야 한다. 이에 따라, 로컬에서도 외부 postgresql에 접근하여 테스트가 가능하게 하고, prod env를 따로 설정하여 배포를 손쉽게 처리하기 위하여 Enviroment 관리를 진행한다. Environment 종류 기본 설정된 Env 파일들은 다음과 같습니다. 해당 파일들은 ignore 대상이며, git repository 에서 변수로 관리 됩니다. .env .env.dev .env.local .env.prod 사용 Environment 변경 기본적으로 아무런 옵션을 주지 않으면 .env 파일을 En..
개요 이전에 Laravel, hasura, postgresql을 연동하여 세팅 하였다. 코드로 graphql schema를 관리하기 위해서 lighthouse와 playground를 추가적으로 설정해 보자. 구현 먼저 lighthouse를 설치한다. lighthoust는 laravel 에서 QueryQL을 사용하기 위한 프레임워크이다. $ composer require nuwave/lighthouse 이후, schema를 추출하기 위하여 아래와 같은 명령어를 실행한다. $ php artisan vendor:publish --tag=lighthouse-schema 위 명령어를 실행한다면 graphql/schema.graphql 파일이 app dir 하위에 들어오게 된다. 다음 컴포져를 이용하여 playgr..
개요 이번에 새로운 프로젝트를 시작하면서 hasura를 사용해 보자는 제안이 있었다. 기존에 hasura를 사용 해 본 적은 있긴 하였으나 cloud 형태로 사용해 보았기 때문에 로컬 서버의 구축과 배포등을 어떻게 해야 할 지 고민이 되었다. 일단 데이터베이스 마이그레이션과 시딩을 해 줘야 하는데 hasura에서 제공해 주긴 하지만, factory 관리와 모델 관리등 조금 더 프로그래밍 적으로 관리하고 싶은 마음이 생겼다. 그렇기 때문에 기존에 자주 사용하던 laravel과 연동하여서 시스템을 구축해 보았다. 현재 생각하는 바로는 laravel로 관리할 대상 포인트 들은 다음과 같다. - 데이터 모델 - 데이터베이스 마이그레이션 - 데이터베이스 시딩 - 인증 - 파일 업로드 관리 구축 준비 먼저, php..
Third party api를 이용하면서, 자체 API 서버를 구축하고 싶다. 개발을 진행하다보면 언젠가 오는 순간인데, Third party api를 사용하면서 자체적인 api 서버도 구축해야 할 때가 많다. Third party api를 이용하기 위해선 Oauth 방식으로 인증을 구현하면 되는데, 자체 API 서버도 Oauth로 구축하게 된다면 SPA 형태로 개발된 클라이언트 사이드 측에서는 API서버의 resource와 third party 의 resource를 이용하기 위해선 두번의 인증을 거쳐야 하는 불편함이 있다. 또한 요즘 많이 다양한 어플리케이션에서 지원되는 기능 중 계정 통합이라는 기능이 있는데, 과거에는 kakao로 로그인, naver로 로그인 등 third party api로 회원가입..
기존에 response 관리에 대해서 포스팅을 한 적이 있다. [Laravel] Response 관리 API 형태로 개발을 진행 할 때, 클라이언트와의 협업 중 중요한 부분인 response 값 관리에 대한 정리 내용 입니다. 기능이 나온지는 오래 되었지만.. 개인적으로 업무 하는 것들도 많고 공부를 안 jjong-factory.tistory.com 별도로, API 서버로만 활용 할 때 서버 오류 등이 발생 했을 경우 Laravel의 기본 오류 창이 return 되는 경우가 있는데 해당 경우 프론트쪽 개발자가 보면 솔직히 조금 난잡한 데이터가 오기 때문에 해당 부분을 일반적인 API 오류시의 return 방식으로 처리 하는 방법을 적어 둔다. 일단 나는 아래와 같은 방식으로 처리하긴 하는데, 다른 방법도..
스케줄러를 큐로 돌려서 서버 부하를 최소화 하자! 어제 스케줄러에 대하여 포스팅을 했었다. 이미지 업로드, 대량의 데이터 연산 처리가 필요하기 때문에 queue를 이용하여 작업을 진행해야 한다고 했었었는데, Schedule에서는 기본적으로 queue를 지원해준다. 해당 기능을 이용하기 위해서는, 일단 laravel queue 세팅을 진행해 줘야 한다. php artisan queue:table 데이터베이스에 큐 대기열을 넣어주는 테이블 생성 코드를 저절로 만들어 준다. 당연히 이후 migrate를 시켜주면 테이블이 생성됨을 확인할 수 있다. php artisan migrate 이후, .env 파일에 다음을 추가해 준다. QUEUE_CONNECTION=database 이렇게 하면, 설정 완료! 사용방법 사..
일정 시간이 되면 저절로 컴퓨터가 작업 해 주면 좋겠는데.. 개발을 진행하다 보면 일정 시간이 되면 알아서 컴퓨터가 특정 작업을 해 주면 좋은 상황이 반드시 오게 되어 있다. 어떤 상황인지에 따라서 해결 할 수 있는 방법으로는 굉장히 여러가지가 있는데, 단순히 DB에 일정 데이터를 삽입하거나 수정하는 거라면 DB 자체의 스케줄링을 사용 해도 될 것이고 서버에서의 cron이나 window 서버라면 window 서버의 작업 스케줄링을 사용해도 될 것이다. 그 중에서도 이번에는 Laravel 의 Task Scheduling 기능에 대해 포스팅 해 보려고 한다. 왜 Laravel Scheduling을 사용해? 위에서는 여러가지 방안이 존재한다고 했는데, 왜 소스코드 상에서의 Scheduling을 사용할까? 당연..
XSS 공격에 대한 Middleware 구축 app\Http\Middleware에 파일을 생성한다. php artisan을 사용해도 되고 그냥 만들어도 된다.. 추가한 Middleware에 다음과 같은 내용을 추가합니다.
EC2 세팅 가장 먼저 프리티어로 EC2를 개설했다. 데이터 베이스 들도 따로 구축 해 주고 싶긴 한데... 비용 문제상 EC2 내부에 구축 하기로 했다. 일단 SSH로 접속 후, apt를 update, upgrade 진행을 먼저 했다. 이후 nginx를 먼저 설치해 주었다. apt-get install nginx 정상적으로 설치된 걸 확인 후, 개발 환경과 맞추어 PHP를 설치! 로컬에서 8.2 버전을 사용 중이라 해당 PHP 버전으로 설치 해 주었다. add-apt-repository ppa:ondrej/php apt-get install php8.2 이후 서버 코드를 clone 해 주고 .env를 세팅, 이 때 .env의 APP_DEBUG는 false값으로 지정 해 주어야 한다. composer를 ..
Laravel + MongoDB 세팅 먼저 JSON 데이터로 되어있는 게임 데이터를 최적화 하여 사용 할 수 있도록 MongoDB를 세팅을 진행 하였다. https://github.com/jenssegers/laravel-mongodb GitHub - jenssegers/laravel-mongodb: A MongoDB based Eloquent model and Query builder for Laravel (Moloquent) A MongoDB based Eloquent model and Query builder for Laravel (Moloquent) - GitHub - jenssegers/laravel-mongodb: A MongoDB based Eloquent model and Query bui..
API 형태로 개발을 진행 할 때, 클라이언트와의 협업 중 중요한 부분인 response 값 관리에 대한 정리 내용 입니다. 기능이 나온지는 오래 되었지만.. 개인적으로 업무 하는 것들도 많고 공부를 안 한지가 오래 되어서 정리 차 적어 봅니다. Laravel 내에서의 HTTP CODE값 굉장히 예전부터 Laravel을 사용하던 저는 따로 HTTP CODE값을 정의해 두고 사용하고 있었는데 이번에 개인 프로젝트를 진행하면서 공부겸 공식 문서를 몇가지 살펴보다가 HTTP CODE값이 현재 laravel 버전에서는 이미 정의 되어 있단는 걸 이제야 알았습니다 ㅠ_ㅠ.. Vender/sysfony/http-foundation/Response.php 내에서 정의된 값들을 확인 할 수 있습니다. public co..