본문 바로가기

프로그래밍153

Visual Studio 2022 gRPC 서버 TLS 사용 보호되어 있는 글 입니다. 2022. 2. 21.
Visual Studio 2022 gRPC 클라이언트 개발 새 프로젝트 만들기에서 콘솔 앱을 선택합니다. 프로젝트 이름을 설정합니다. 닷넷 프레임워크를 선택합니다. gRPC 개발을 위한 패키지를 설치합니다. 도구 > NuGet 패키지 관리자 > 패키지 관리자 콘솔을 선택합니다. 하단 파워쉘에서 아래 명령을 실행합니다. Install-Package Grpc.Net.Client Install-Package Google.Protobuf Install-Package Grpc.Tools 솔루션 탐색기에서 설치된 패키지를 확인할 수 있습니다. 프로젝트에서 Protos 폴더를 만듭니다. 프로토콜 버퍼 파일을 해당 폴더에 복사합니다. echo.proto 파일의 내용은 다음과 같습니다. syntax = "proto3"; option csharp_namespace = "artgr.. 2022. 2. 6.
Mac OS 에서 mcrypt 설치하기 brew 를 사용하여 php 를 버전별로 설치하여 사용하고 있다면, extention 모듈을 pecl 을 이용하여 설치할 수 있습니다. mcrypt.so 를 연동하고 싶다면 다음과 같이 실행합니다. brew install mcrypt pecl install mcrypt 이 과정에서 아래의 이미지처럼 prefix 를 물어오는 경우, 해당 소스가 위치한 경로를 입력하여야합니다. 가령, /opt/homebrew/Cellar/mcrypt/2.6.8 과 같이 지정합니다. 2021. 2. 12.
Laravel 환경설정 - .env, nginx 1. 로컬 개발 환경 .gitignore 에 아래 파일을 추가합니다. .env.local .valet-env.php 라라벨 프로젝트의 루트 디렉토리로 이동한 후, valet link 명령어로 로컬 도메인(http://myproj.test)을 생성합니다. valet link myproj 마찬가지로 루트 디렉토리에서 .valet-env.php 파일을 생성한 후, APP_ENV 전역 변수를 설정합니다. 2020. 3. 18.
Laravel Nova 설치하기 Nova 는 라라벨 관리자페이지 라이브러리로 유료입니다. 해당 라이센스를 구매한 후, Releases 페이지에서 파일을 다운로드합니다. 압축을 푼 후, 디렉토리명을 nova 로 변경합니다. 사용할 라라벨 프로젝트의 루트 디렉토리에 해당 디렉토리(repos/nova)를 추가합니다. vi composer.json "require": { ..... "laravel/nova": "*" } ...... "repositories": [ { "type": "path", "url": "./nova" ] 아래 명령어를 실행합니다. composer update php artisan nova:install 데이터베이스 마이그레이션을 실행합니다. php artisan migrate 접속 URL 에 /nova 를 추가하여 접속.. 2020. 3. 5.
Mac OS 에서 라라벨 개발 환경 구축 - Valet brew 기반으로 설치가 가능하며, composer 의 경우 미리 설치하여야합니다. composer 실행의 경우, composer 또는 composer.phar 을 사용합니다. brew update brew install php composer global require laravel/valet 시스템 PATH 에 경로를 추가합니다. sudo nano /etc/paths /opt/homebrew/bin/valet valet 을 설치합니다. valet install 설치가 완료되었으면, ping abcde.test 로 test 로 끝나는 도메인으로 핑을 시도해봅니다. 올바르게 설치가되었다면, 127.0.0.1 로 부터 응답이 오게됩니다. 설치 후, 맥이 실행될때마다 자동으로 데몬이 실행됩니다. 만약, 도메.. 2020. 3. 2.
Laravel 5.8 Unit Tests 시 SQLite 를 메모리에서 사용하기 config/database.php 의 connections 에서 아래의 설정을 추가합니다. 'sqlite_testing' => [ 'driver' => 'sqlite', 'database' => ':memory:', 'prefix' => '', ], phpunit.xml 의 DB_DEFAULT 값을 sqlite_testing 으로 변경합니다. PHP Storm 을 사용할 경우, Languages & Frameworks > PHP > Test Frameworks 에서 phpunit.xml 을 지정하여야합니다. 단위 테스트 파일에서 RefresDatabase 을 선언합니다. 테스트 메소드가 호출될때마다 데이터베이스가 초기화(rollback, migrate)되므로, 초기화 데이터는 setUp() 에 추가합니다. 2019. 9. 4.
페이팔(paypal) sandbox 사용하기 1. https://developer.paypal.com/ - 개발자 페이지로 로그인합니다. Sandbox Access Token 을 생성합니다. 생성이 모두 끝나면, Accounts 메뉴를 선택하여 facilitator 와 buyer 가 생성되었는지 확인합니다. 각각 판매자와 구매자 계정이라고 보면 됩니다. 각 계정의 비밀번호를 변경하여 줍니다. 판매자의 경우, API 연동을 위한 기본 값들을 확인할 수 있습니다. 2. https://www.sandbox.paypal.com - sandbox 페이지로 로그인합니다. 이때 로그인 아이디, 비밀번호는 상기 developer 페이지에서 생성한 구매자 또는 판매자 아이디, 비밀번호를 사용합니다. 테스트를 위해 생성된 잔액을 확인할 수 있습니다. 이제 열심히 개.. 2018. 2. 22.
PHPStorm Terminal 을 git bash 로 교체하기 Windows 에서 PHPStorm 의 터미널은 당연한 얘기겠지만, 명령프롬프트가 실행됩니다. 이를 git 설치시 함께 배포되는 bash로 변경해봅니다. 설정(Ctrl + Alt + S) 에서 Tools > Terminal 로 들어갑니다. 그리고 아래와 같이 git 의 설치 경로에 있는 sh.exe 를 연결합니다.(64비트용으로 git 을 설치하였다면, C:\Program Files\ 아래 위치합니다.) "C:\Program Files (x86)\Git\bin\sh.exe" -login -i 터미널 창을 닫고 띄우면, 아래와 같이 bash 가 실행됩니다. 이렇게 간단한 것을 그동안 미련하게 작업해왔네요. ^^ 2017. 8. 31.
Angular 에서 RxJS unsubscribe() 관련 팁 import "rxjs/add/operator/takeWhile"; takeWhile() 을 이용하는 방법으로서 먼저 상기처럼 모듈을 임포트합니다. 그리고 멤버 변수로 boolean 을 선언한 후, 아래와 같이 subscribe() 를 호출합니다. .....private aliveResults: boolean = true; ..... this.service.getResults().takeWhile(() => this.aliveResults).subscribe( ); 끝으로 ngOnDestroy 이벤트에서 다음과 같이 처리합니다. ngOnDestroy() { this.aliveResults = false;} 이와 같이 사용하면 별도 unsubsribe()를 호출하지 않아도 됩니다. 저의 경우, Ajax 호.. 2017. 4. 27.
Laravel 점검 모드에서 AWS ELB health 검사 \App\Http\Middleware\CheckForMaintenanceMode.php 를 작성합니다. 2017. 4. 25.
PHP 7 에서의 예외처리 - Throwable, Exception, Error PHP 의 경우 Error 와 Exception 을 구분합니다. PHP 7 에서는 Error 중 E_ERROR, E_RECOVERABLE_ERROR 의 경우 Exception 처럼 사용(try, catch, finally)이 가능합니다.(그 외 Error 는 기존의 방식과 동일합니다.) 하지만, Exception 처럼 사용이 가능하다고 Exception 클래스를 상속받은 것은 아닙니다. 별도의 Error 클래스를 상속받았지요. 다만, Exception 과 Error 클래스는 모두 Throwable 인터페이스를 상속하여 구현되었습니다. Throwable { abstract public string getMessage ( void ) abstract public int getCode ( void ) abst.. 2017. 4. 21.
CentOS 7 NativeScript 개발 환경 구축하기 요근래 페이스북에서 네이티브스크립트 관련 글들이 자주 노출되길래 한번 설치해보았습니다. 주말인지라 집에서 작업해보았구요. 집에서는 리눅스 데스크탑을 주로 사용하고 있습니다.^^ 일단 설치 및 테스트 환경은 다음과 같습니다. CentOS 7 x64Node.js v6.10.1Java 1.8.0_121 (openjava)gcc 4.9.4PhpStorm - NativeScript 플러그인 설치 설치와 관련한 문서는 다음을 참고하였습니다. http://docs.nativescript.org/angular/start/ns-setup-linux 먼저, 32비트 런타임 라이브러리를 설치합니다. sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686 그리고 Andro.. 2017. 4. 8.
Angular4 업그레이드하기 기존, 개발 환경(2017/02/17 - [프로그래밍/언어 - PHP] - Laravel5 + Angular2 + Fuse-box 사용하기)에서 Angular4 로 업그레이드하였습니다.(Angular2 에 대한 하위 호환성 및 좀 더 작고 빠른 것이 Angular 4 의 특징이라고 할 수 있습니다.) 먼저, Windows 에서 npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dy.. 2017. 3. 28.
Laravel5 + Angular2 + Fuse-box 사용하기 먼저, Laravel5 + Angular2 환경을 구축하기 위하여 제법 복잡한 설정들을 하였습니다. 2016/11/09 - [프로그래밍/언어 - PHP] - Angular2 설치하기 - Laravel 5 하지만 개발하면서 불편한 점이 한두가지가 아니더군요. gulp typescript, gulp copy 명령어의 연속... 그리고 브라우저 새로고침 반복들... 이후, webpack 의 존재를 알게되었지만 이상하게 관련 설정을 하기 싫더군요.(게으름이...) 그러다 우연히 Fuse-box 란 놈을 발견하게 되었습니다. 자석에 이끌리듯 설정하게 되었네요. 1. 설치 npm 을 사용하여 fuse-box 를 설치합니다. npm install fuse-box --save-dev 2. 환경설정(디버그) 라라벨 설치.. 2017. 2. 17.