전체 글 327

[AWS] EB(Elastic Beanstalk) .ebextensions 사용하기

EB의 장점 : - 서버운영 및 인프라에 대해 잘 알지 못하더라도 AWS 클라우드에서 애플리케이션 배포를 손쉽게 할 수 있다. - 로드밸런싱, 오토스케일링, 애플리케이션 모니터링 등 주요한 여러 기능들을 자동으로 관리 해준다. EB의 단점 : - 서버 인프라에 익숙한 관리자들에게는 제한적인 관리 요소 - 신규 인프라 구성 및 커스텀에 제한적임 - 이를 커버하기 위해 커스텀을 위한 옵션을 제공하는데, .ebextensions 에 옵션을 작성하는 형태로 제공하고, 옵션을 사용하기 위해 이에 맞는 문법을 익혀야 함 .ebextensions 는 애플리케이션이 배포될때 최초에 실행되는 커맨드라고 이해하면 된다. .ebextensions 사용방법 1. 애플리케이션의 최상위(root) 위치에 .ebextensions..

AWS 2021.03.05

[AWS] EB(Elastic Beanstalk) 에 SSH로 접속하기

AWS EB 사용시에도 내부적으로는 EC2 인스턴스를 사용한다. 주의할 점은 EB에서 배포시마다 SSH로 접속할 수 있는 public ip가 변경되기 때문에, 배포 후에는 public ip를 다시 확인해서 접속을 시도 해야 한다. 1. EC2 대시보드에서 서버 정보 확인하기 Load Balancer 를 사용할 경우에는 위 처럼 EC2인스턴스가 여러개가 보이고, 각각 서버에 할당된 public ip가 존재한다. 2. Putty 등으로 SSH 접속 AWS에서는 서버 접속용 암호 키 파일(.pem)을 사용한다. 그런데 Putty 에서 암호키를 이용해서 SSH에 접속하기 위해서는 .pem이 아닌 .ppk 파일이 필요하다. PuttyGen 프로그램을 설치하고, pem 파일을 ppk로 변환할 수 있다. 방법은 아래..

AWS 2021.03.04

[AWS] EB(Elastic Beanstalk)에서 Log 파일 작성 시 퍼미션 오류 날때

문제 1. Elastic Beanstalk 사용 중 2. 라라벨 사용 중 로그파일 작성 시 3. config/logging.php 파일에서 로그파일 작성 위치 설정 시 'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/'.php_sapi_name().'_ranking_prod.log'), // storage/logs 에 생성 (퍼미션문제 발생) 'path' => 'logs/ranking_prod.log', // public/logs 에 생성 (퍼미션문제 없음) 'level' => 'debug', 'days' => 31, ], 위 설정상 문제는 storage 폴더 접근 권한이 문제이다. vi /etc/group 으로 확인해보면, AWS 기본계정..

AWS 2021.03.03

[Laravel] 라라벨 log 파일에 로그 출력하기

두가지 방법 소개 1. 기본 라라벨 설정으로 로그 찍는 방법 사용 예 ) Log::info('=== 로그 찍기 ==='); 2. monolog 라이브러리를 이용해 로그 찍는 방법 사용 예 ) $log->info('=== 로그 찍기 ==='); 1. 기본 라라벨 설정으로 로그 찍기 - config/logging.php 파일에 로그 설정을 작성 return [ 'default' => env('LOG_CHANNEL', 'stack'), 'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['daily'], 'ignore_exceptions' => false, ], 'daily' => [ 'driver' => 'daily', 'path' => sto..

Laravel 2021.02.19

[Javascript] 랜덤 숫자 추출 방법 (범위 지정)

자바스크립트에서 범위를 지정하여 랜덤으로 숫자를 추출하는 방법 Math.random() 함수와 Math.floor() 함수를 이용해서 범위 지정 가능한 랜덤 숫자 출력 함수를 만든다. Math.random() 함수는 0이상~1미만의 난수를 생성한다. (예 : 0.52938372) Math.random(); Math.floor() 함수는 해당숫자와 같거나 해당숫자 보다 더 작은 정수를 반환 한다. Math.floor(2.5); //결과 2 Math.floor(-2.5); //결과 -3 Math.random() 함수를 이용하여 범위지정을 할 수 있는 함수를 만든다. function randomNum(min, max){ var randNum = Math.floor(Math.random()*(max-min+1)..

Javascript 2021.02.03

[Javascript] div 요소의 top(시작) 위치 알아내기

현재 브라우저에서 얼마나 스크롤 이동 했는지 확인 var winX = window.pageXOffset; var winY = window.pageYOffset; 현재 보고있는 화면 기준으로 특정 요소의 위치 알아내기 var div = document.getElementById("div_id"); var divTop = div.getBoundingClientRect().top; var divBottom = div.getBoundingClientRect().bottom; var divLeft = div.getBoundingClientRect().left; var divRight = div.getBoundingClientRect().right; 또 다른 방법. var divTop = document.query..

Javascript 2021.01.19

[Laravel] Timestamp 값 계산 / 비교

라라벨에서의 시간 비교 1. datetime 형식의 데이터를 timestamp 형식으로 변환 (초 단위) 2. 현재 시간을 timestamp로 변환 3. 서로 계산 및 비교 1. datetime 형식의 데이터를 timestamp 형식으로 변환 (초 단위) 주의할 점 : 라라벨 Model의 기본 속성인 created_at 과 같이 Eloquent 가 아닐때는 시간을 저장해서 사용중인 경우에는 datetime 값을 new Carbon() 으로 변환 해줘야 기본 created_at 속성과 동일한 오브젝트가 된다. new Carbon() 형태로 만들어야 getTimestamp() 사용이 가능. 안그러면 오류남. $resetDatetime = new Carbon($info->$datetime); $datetime..

Laravel 2020.12.23

[PHP] timestamp 계산 D-day 계산

php 현재시간을 타임스탬프로 확인 time(); 현재 서버의 UNIX TIMESTAMP 를 보여준다. 대부분 서버에서 시간비교를 할 때, DB에서 Datetime 형식의 값을 가져와서 비교하게 되는데 $current_time = time(); //현재 서버의 UNIX timestamp $datetime = '2020-12-22 14:26:50'; //계산할 시간 $date_timestamp = strtotime($datetime) // timestamp로 변환 //floor 나머지 내림 / ceil 나머지 올림 / round 반올림 //timestamp의 단위는 초(seconds)이기 때문에 60으로 나눠주면 분이 된다. $d_day_m = floor(($date_timestamp - $current_..

PHP 2020.12.22

[Laravel] Error: Integrity constraint violation: 1052 Column

Error: Integrity constraint violation: 1052 Column 'user_id' ~ 위와 같은 에러는 무결성 조건 위반 에러임 이유는, 여러 테이블에서 join 을 이용해 검색을 처리할 때 검색 조건에 user_info.user_id 혹은 user_file.user_id 처럼 테이블을 명시하지 않고 user_id 이렇게만 사용하는 경우 어느 테이블의 user_id 외래키(Foreign Key) 를 사용하는지 모호하기 때문에 나오는 에러이다. 자신의 쿼리를 찍어보고 외래키 검색조건에서 테이블을 명시해주면 해결 됨

Laravel 2020.12.09

[Laravel] DB Query Log 작성 방법

/app/Providers/AppServiceProvider.php 파일 내 작성 DB::listen(function ($query) { \Illuminate\Support\Facades\File::append( storage_path('/logs/query.log'), $query->sql . ' [' . implode(', ', $query->bindings) . ']' . PHP_EOL ); }); // $query->time 등으로 쿼리 시간도 확인 가능 웹사이트에서 쿼리가 실행된 후 storage/logs/query.log 를 확인해보면 쿼리가 찍힐것이다. 쉘에서 편하게 실시간 확인 방법 tail -f query.log

Laravel 2020.12.09

[PHP] mail 함수 사용 시 한글 깨짐 문제

1. form 으로 메일 보내는 php 파일로 올때 한글이 깨질 때 2. 실제로 메일을 받았을 때 제목 등의 한글이 깨질 때 위 두가지만 잡아주면 거의 문제 없다. 웹호스팅을 사용한다면 기본적으로 php 에서 제공해주는 mail 함수 사용이 가능하다. 웹호스팅 받고 mail() 그냥 쓰면 발송 잘 됨. 1. form 을 이용해 POST 등으로 넘어온 데이터(한글)가 깨질 때 header("Content-Type:text/html;charset=utf-8"); 2. 메일의 제목이 한글인데 깨질 때 $subject = "=?EUC-KR?B?".base64_encode(iconv("UTF-8","EUC-KR",$subjectName))."?="; 끝.

PHP 2020.12.02

[건강보험] 피부양자 자격 박탈 / 유지 방법

피부양자 자격 박탈 (feat.국민연금) 피부양자 조건 산정은 매년 한 번 11월에 실시한다. 그래서 11월 중순~말 사이에 안내문을 받게 될 것이다. 우선, 안내문을 받았다는 것 자체는 보험공단에서 이미 소득조건이 피부양자 자격 박탈 조건으로 판단하여 보낸 것이다. 그래서 뭔가 보험공단에 증명을 해야 한다. 우선 안내문 안에 '2019 귀속분' 등으로 소득을 증명하라고 써있을 것이다. 그럼 2019년도에 나의 소득을 증명하면 된다. 증명은 11월 30일까지 해야 12월1일부터 지역가입자로 변경되는 불상사가 없을 것이다! 피부양자 자격 유지 조건 : 소득, 재산, 가족 이렇게 3가지의 조건을 만족해야 피부양자 유지가능. 가족이나 재산 등은 기본적인 것이기 때문에 가장 헷갈릴 수 있는 '소득' 으로 정리해..

기타 2020.11.26

[Laravel] json 형태로 response 만들기

API 개발 시 원하는 형태의 JSON 으로 응답하는 방법 1. 서비스에서 오는 값이 collection 형태일 경우 바로 return 하면 됨 public function apiRequest(Request $request, ApiService $apiService) { $result = $apiService->getList($request); return $result; } 2. 서비스에서 오는 값이 String 형태일 경우 $result = $model->save() $model = new myModel(); . . . $result = $model->save(); 위 처럼 save 결과값은 String 형태 (true / false) 로 리턴되기 때문에 JSON 으로 변경해서 응답 해줘야 오류가 안..

Laravel 2020.11.25
반응형