개요 Socialite나 외부 Oauth를 통해 해당 회원 정보를 가져오는데 성공 하였지만, 내부적인 API을 사용하기 위해서는 내부적으로 구축한 인증 절차도 통과 해 줘야 한다. 하지만, 내부적으로 구축한 인증 절차를 통과하기 위해서는 내부 인증에 사용되는 email / password 값을 입력하는게 보통이지만 외부 oauth를 통과하기 위해 이미 외부 계정과 비밀번호를 입력한 유저에게 한번 더 email / password 값을 입력해야지만 로그인을 시켜주는 것은 절차상 너무 복잡한 절차이며 회원들이 이탈할 확률이 높아진다. 계정 통합을 위하여 가입시에 email / password 값을 추가적으로 받는 경우들은 많지만 매 로그인 시마다 해당 절차를 밟게 하는 것은 옳은 판단은 아닐 것이다. 다양한..
개요 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..
MutationObserver 레거시한 코드들을 유지보수 해야 하는 도중, dom 상태를 관측하여 특정 함수들을 실행시키고 싶은 경우가 생겼다. observer 패턴을 이용하여 react 에서의 getState 처럼, 특정 값이 변경 되었을 때 코드를 실행하고 싶었는데, js에서 MutationObserver 라는걸 지원해 주는 것을 확인 했다. https://developer.mozilla.org/ko/docs/Web/API/MutationObserver MutationObserver - Web API | MDN MutationObserver 인터페이스는 DOM 트리의 변경을 감지하는 기능을 제공합니다. DOM3 이벤트 명세의 일부였던 Mutation Events (en-US)를 대체합니다. devel..
모듈 참조 nest 에서는 내부 공급자 목록을 탐색하고, 동적으로 인스턴스화 하는 방법을 제공해 줍니다. ModuleRef를 이용하여 클래스에 주입할 수 있습니다. 먼저 다음과 같은 파일 구조를 가지고 있다고 가정하겠습니다. 각 모듈의 코드를 살펴 보겠습니다. AuthModule import { Module } from '@nestjs/common'; import { AuthController } from './auth.controller'; import { AuthService } from './auth.service'; import { TestService } from './test/test.service'; @Module({ imports: [], controllers: [AuthController..
심플한 정적 모듈 바인딩 구현 순환 종속성을 설명하기 전, 먼저 심플한 정적 모듈 바인딩을 구현해 보도록 하겠습니다. 다음과 같이, auth service, user service를 만들었다고 가정하겠습니다. 그 다음, 정적 모듈 바인딩을 위하여 user module에서 user service를 export 시켜주고 auth service 에서는 user module을 import 한 뒤 각 서비스에서 간단한 함수를 만들어서 정적 모듈 바인딩을 구현합니다. UsersModule import { Module } from '@nestjs/common'; import { UsersController } from './users.controller'; import { UsersService } from './u..
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로 회원가입..
서론 이번에 개발을 진행하면서, 인트라넷에 있는 Laravel Project를 AWS EC2에 배포해야 되는 상황이 왔다. AWS ECR을 사용하여, 도커 이미지를 빌드하고 EC2에서는 AWS ECR의 이미지를 당겨오는 방식으로 배포를 진행하였다. EC2 내부에 nginx가 설치되어 있는 상태이며 비용 문제상 EC2 내부에 mysql 도 같이 설치 되어 있는 상태였다. 일단 가장 중요한건 Dockefile 구성화 gitrunner 혹은 gitaction 에서의 처리 방법. .env 파일은 git repo에 등재가 되면 안되기 때문에 variables로 등록 된 후 배포시 파일을 생성하여 포함해 주도록 처리하였다. 전제로는, AWS ECR IAM 계정 및 정책이 있어야 한다. 또한, AWS CLI이 설치가..
개발하면서 JS에 메모리 누수가 있었나? 최근에 JS 메모리 누수에 관한 이야기를 듣게 되었다. 여태까지 개발을 진행하면서 프론트쪽에서 메모리누수에 관련된 이슈를 겪어본 적이 없었기에 생각도 못했던 주제였다. 출시했던 모든 제품에서 성능적인 문제는 대부분 서버에서 왔고, 프론트엔드쪽을 내가 개발을 하지 않았을 때 이긴 하지만 프론트엔드의 성능적인 부분은 전부 부자연스러움 이었기 때문. (해당 내용으로 인해서 기존 팀원이었던 직원들에게 많이 쓴소리를 하기도 하였다.) 1. 의도치 않은 전역변수로 인한 메모리 수누 function test() { text = "test" } test() 첫번째로, 내가 겪어보진 못했지만 JS 메모의 누수의 가장 대표적인 예. 진짜 생각도 못한 부분이었는데, 함수 내에 변수 ..
- Total
- Today
- Yesterday
- laravel
- 안성 공도 맛집
- php
- Web Editor Image Uplaod
- GitAction
- 서울 맛집
- 안성 맛집
- 성안길 맛집
- 성수동 맛집
- ckeditor
- PHP AWS S3
- CKEditor Image Upload
- 원곡 카페
- 칠곡 카페
- ansible
- webGPU
- 개발일지
- Google App Script API
- CKEditor5 Image Upload
- laravel passport
- S3
- 명일방주
- AWS
- Google App Script
- 안성 카페
- 공도 맛집
- next.js
- Vue.js
- hasura
- 성수 맛집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |