JJONG`sFACTORY

Programming

개요 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로 회원가입..
혁종
혁종
PHP 에서 대용량 데이터를 처리하는데에 있어서 푸시 메시지를 보낼때 큐를 사용한다던가 기존 쿼리가 너무 좋지 않아 쿼리 리팩토링을 한다던가.. 는 실제로 접해봐서 사용해 보긴 했는데 (푸시 메시지는 동시 접속자 수와 상관 없이 푸시를 허용한 모든 유저에게 보내야 하고 쿼리 리팩토링 해야 하는 경우는 직원들이 대용량 데이터 처리 할 때 속도가 너무 나오지 않아 자주 했었다.) 하지만 경험상 대용량 트래픽을 처리 해 본 적이 없어서 (ㅠ__ㅠ...뭔가 하나 쯤은 잘 되었으면 해 봤을 텐데..) 몇가지 해결 방안들을 알고는 있는데... 공부도 할 겸 자료 조사를 하다가, Chat GPT한테도 몇가지 물어 봤다. 1. PHP-FPM을 커스텀 하여 서버 자체의 성능을 올리는 방법은 뭐야? PHP 자체를 커스텀 ..
혁종
혁종
Next.js 는 client-side를 렌더링 하기 전에 SSR을 수행한는데, 이 때 window 전역객체가 로드 되지 않아서 localStorage is not defined 오류가 발생한다. 해결 방법들은 아래와 같다고 나오는데.. if (typeof window !== 'undefined') { // Perform localStorage action const item = localStorage.getItem('key'); } useEffect(() => { // Perform localStorage action const item = localStorage.getItem('key') }, []) axiosInstance를 설정 할 때에는 두가지 방법 다 사용하기 어렵다. 이 땐 아래와 같이 작성..
혁종
혁종
개인 프로젝트 진행 중에, Infinite scroll을 구현하고 싶어서.. 디자인 열심히 짜고 퍼블리싱 열심히 하고 첫 페이지 로드를 한 다음에 중간에 깨달은게, 상세 페이지 갔다가 뒤로 가기 누르면 이전 데이터가 infinite scroll에 존재 해야 한다는 점 이었다. 프론트쪽이 너무 오랜만이라.. Vue쪽에서는 Store를 이용해서 처리했던 기억이 있어서, 찾아보니 Next.js 에서는 redux 라는 라이브러리를 사용하여 stroe를 구성한다는걸 알았다. 스토어 구성부터 차근차근 구현 해 보자..! install redux package npm install @reduxjs/toolkit npm install react-redux npm install next-redux-wrapper 설치 이..
혁종
혁종
메모용이긴 한데.. Next.js 에서 외부 이미지 사용시 뜨는 오류이다. Next.js 버전이 올라가면서 해결 방법이 바뀌어서 메모메모.. next.config.js 아래에 아래 내용을 적어주면 됩니다~ images:{ remotePatterns: [ { protocol: 'https', hostname: '~~.cloudfront.net', port: '', pathname: '/**', }, ], } hostname 정도만 이미지의 hostname으로 변경해 주시면 됩니다!
혁종
혁종
API 형태로 개발을 진행 할 때, 클라이언트와의 협업 중 중요한 부분인 response 값 관리에 대한 정리 내용 입니다. 기능이 나온지는 오래 되었지만.. 개인적으로 업무 하는 것들도 많고 공부를 안 한지가 오래 되어서 정리 차 적어 봅니다. Laravel 내에서의 HTTP CODE값 굉장히 예전부터 Laravel을 사용하던 저는 따로 HTTP CODE값을 정의해 두고 사용하고 있었는데 이번에 개인 프로젝트를 진행하면서 공부겸 공식 문서를 몇가지 살펴보다가 HTTP CODE값이 현재 laravel 버전에서는 이미 정의 되어 있단는 걸 이제야 알았습니다 ㅠ_ㅠ.. Vender/sysfony/http-foundation/Response.php 내에서 정의된 값들을 확인 할 수 있습니다. public co..
혁종
혁종
서론 서비스를 진행하다 보면 SSL 인증서를 발급받아서 실 서버에 적용해야 되는 경우들이 많이 있습니다. 실 서비스라면 무조건 적용 해야 겠죠? 무료 인증서 발급으로는 letsencrypt 같은 친구들이 있지만, 와일드 카드 인증서의 경우 자동 갱신이 어렵다는 점과 3개월 마다 갱신을 해야 한다는 단점이 있습니다. 하지만 AWS에서 서버를 이용하고 있다면, Route53과 ACM(AWS Certificate Manager)를 이용한다면 갱신이 필요없는 인증서를 발급받아 적용 시킬 수 있습니다. EC2의 로드밸런싱과 Route53, ACM을 이용하여 SSL 인증서를 발급받아 적용시켜 보도록 하겠습니다. ACM을 이용하여 SSL 인증서 발급받기 먼저 인증서부터 발급 받아야 겠죠? AWS 콘솔로 이동하여 AC..
혁종
혁종
웹 서버 세팅 중 laravel log와 관련하여 Permission 오류가 뜨는 경우가 많이 있다.문구에서 알 수 있듯, 권한의 문제인데 웹서버에게 권한울 부여 하면 정상적으로 작동한다. sudo chown -R $USER:www-data storagesudo chown -R $USER:www-data bootstrap/cachechmod -R 755 storagechmod -R 755 bootstrap/cache위 명령어들을 입력해 주고, 다시 한번 확인해 보자!
혁종
혁종
서론 이번에는 앱 관리를 위해서 Laravel에 Firebase realtime database를 연동해 보도록 하겠습니다. 먼저, 구글 계정으로 로그인 해 주신 뒤, 파이어베이스 프로젝트를 생성해 줍니다. Firebase Setting 파이어베이스 프로젝트를 생성 후, 왼쪽 위에 톱니바퀴 아이콘을 클릭 해 주신 다음 프로젝트 설정 -> 서비스 계정 -> 서비스 계정 만들기를 클릭해 줍니다. 그러면, 새 비공개 키 생성 버튼이 활성화 되게 되는데, 해당 버튼을 클릭 후 키 생성 버튼을 눌러주셔서 json 파일을 다운로드 받아 주세요. 그 다음 Realtime Database를 생성해 줍니다. 왼쪽 메뉴에서 빌드->Realtime Database를 선택하여 데이터 베이스를 생성해 주세요. 잠금모드로 시작합..
혁종
혁종
혁종
'Programming' 카테고리의 글 목록