dev-blackcat의 등록된 링크

키자드에 등록된 총 721개의 포스트를 확인하실 수 있습니다.

Naver Blog

[CentOS7] 라라벨(Laravel) 푸셔(Pusher) 웹소켓 사용하기

pusher 회원가입 Pusher Channels | Build Realtime Features Anywhere Easily build scalable realtime graphs, geotracking, multiplayer games, and more in your web and mobile apps with our hosted pub/sub messaging API. #PusherChannels pusher.com config/app.php 파일 수정 # "config/app.php" 파일을 수정합니다. 하단의 내용이 주석처리 되어 있다면 주석해제 없다면, 추가해주세요. App\Providers\BroadcastServiceProvider::class, laravel-websockets 설치 composer require beyondcode/laravel-websockets php artisan vendor:publish --provider="BeyondCode\LaravelW

Naver Blog

[PHP] 출력 비교(echo, print, print_r, var_dump)

출력 비교 $message = "Hello, World"; ----- echo $message; => Hello, World print($message); => Hello, World print_r($message); => Hello, World string(14) var_dump($message); => "Hello, World" $message = array("Hello", "World"); OR $message = array(); $message[0] = "Hello"; $message[1] = "World"; OR $message = [ "Hello", "World" ]; ----- echo $message; => Array print($message); => Array print_r($message); => Array ( [0] => Hello [1] => World ) var_dump($message); => array(2) { [0]=> string(6) "Hello"

Naver Blog

[PHP] 배열로 값을 만든 후 변수로 사용하기 (List)

배열 변수 사용 # "$message" 배열에 값을 추가 주의할점은 키값이 없어야 합니다. $message = [ "TEST1", "TEST2", "TEST3", ]; # "$message"에 담은 값을 각각 변수로 사용 list($a, $b, $c) = $message; ----- echo $a; => TEST1 echo $b; => TEST2 echo $c; => TEST3 특정 위치의 값을 변수로 사용 # 아래와 같은 방법은 가독성도 떨어지고 햇갈릴 수 있기 때문에 특별한 경우 사용하지 않는게 좋을것 같습니다. $message = [ "TEST1", "TEST2", "TEST3", ]; # "쉼표(,)"로 배열에 3번째 값을 "$a" 변수로 지정합니다. list(,, $a); ----- echo $a; => TEST3

Naver Blog

[PHP] 문자열 압축 하여 사용해보기 (gzdecode, gzinflate, gzuncompress)

압축 종류 명령 설명 gzencode() gzip 명령줄 도구와 동일한 GZIP 파일 형식을 사용합니다. 이 파일 형식에는 선택적 메타데이터, DEFLAT 압축 데이터 및 CRC32 체크섬 및 길이 검사를 포함하는 바닥글이 있습니다. gzcompress() ZLIB 형식이 사용됩니다. 압축 형식, DEFLAT 압축 데이터 및 ADLER32 체크섬이 포함된 바닥글만 식별하는 짧은 헤더를 제공합니다. gzdeflate() 원시 DEFLAT 알고리즘을 자체 사용하며, 이는 다른 두 형식 모두에 대한 기본입니다. 예제 # 용량 절감과 보안 향상을 위해 문자열을 압축한다. # 압축 $VALUE = "[email protected]" $VALUE = gzcompress($VALUE); print($VALUE); => x+KOILMtK,K-KT # 해제 $VALUE = "[email protected]" $VALUE = gzcompress($VALUE); $VALUE = gzuncompress($VALUE

Naver Blog

[VSCODE] 비주얼스튜디오코드(Visual Studio Code) 추천 익스텐션

Korean Language Pack for Visual Studio Code Korean Language Pack for Visual Studio Code # 비주얼 스튜디오 코드 한글화 Auto Complete Tag Auto Complete Tag 단축키 설명 Alt + . 단축키로 닫는 태그가 빠진 곳을 자동으로 변경합니다. # Auto Close Tag Visual Studio IDE 또는 Sublime Text와 동일한 HTML/XML 닫기 태그를 자동으로 추가합니다. # Auto Rename Tag 쌍으로 구성된 HTML/XML 태그의 이름을 자동으로 바꿉니다. Bracket Pair Colorizer 2 Bracket Pair Colorizer 2 # 일치하는 대괄호 색상을 지정하기 위한 사용자 지정 가능한 확장입니다. 즉, 대괄호의 시작과 끝이 되는 괄호의 색상을 표시하여 가독성을 높여줍니다. Rainbow Brackets Rainbow Brackets # 위의 "B

Naver Blog

[CentOS7] YUM 사용시 오류 발생(rpmdb, BDB0113, rpmdb open failed)

YUM 오류 발생 # 아래의 경우 /var/lib/rpm의 db가 깨졌을 가능성이 높은데, 해당 명령어 두줄로 간단히 해결 할 수 있습니다. 오류: rpmdb: BDB0113 Thread/process 5632/139869042812736 failed: BDB1507 Thread died in Berkeley DB library 오류: dbenv->failchk의 db5 오류(-30973): BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery 오류: db5(을)를 이용하여 Packages 인덱스를 열 수 없습니다 - (-30973) 오류: /var/lib/rpm 안의 패키지 데이터베이스를 열 수 없습니다 CRITICAL:yum.main: Error: rpmdb open failed # "RPM"의 "DB"삭제 후 다시 리빌드를 진행해줍니다. 이후 정상적으로 yum을 통해 패키지 설치 진행할 수 있습니다. rm -f /var/lib

Naver Blog

[Ubuntu] "gpg: can't connect to the agent: IPC connect call failed" 오류 해결하기

해결 방법 sudo add-apt-repository ppa:rafaeldtinoco/lp1871129 sudo apt update sudo apt install libc6=2.31-0ubuntu8+lp1871129~1 libc6-dev=2.31-0ubuntu8+lp1871129~1 libc-dev-bin=2.31-0ubuntu8+lp1871129~1 -y --allow-downgrades sudo apt-mark hold libc6 참고 링크 WSL Ubuntu 20.04 - gpg: can't connect to the agent: IPC connect call failed · Issue #5125 · microsoft/WSL I have a fresh installation of Windows 10, and I am trying to get a development environment with WSL set up. I enabled WSL and installed Ubuntu

Naver Blog

[Node.js] 노드(Node.js) 최신 버젼 설치 및 업데이트 (수정)

CURL 추가 "command line data transfer tool"의 약자 "setup_16.x" 여기에 숫자를 넣어주면 특정 버젼도 설치 가능합니다. curl -sL https://deb.nodesource.com/setup_16.x -o nodesource_setup.sh nodeJS 설치 "PPA"가 구성에 추가되고 로컬 패키지 캐시가 자동으로 업데이트 됩니다. 이제 이전 섹션에서와 같은 방법으로 "NodeJS" 패키지를 설치할 수 있습니다. ※ 만약, "NodeJS"를 업데이트 하고 싶다면 더 높은 버젼으로 추가 후 설치하면 됩니다. sudo bash nodesource_setup.sh sudo apt install -y gcc g++ make sudo apt install -y nodejs sudo apt install build-essential 노드, NPM 버젼 확인 node -v npm -v NPM 최신버젼 설치 sudo npm install -g npm gp

Naver Blog

[AWS] [Lightsail] 비트나미(Bitnami) 소스(코딩) 수정 후 홈페이지 바로 적용되게 하기

Opcache 값 수정 AWS "php.ini" 기본 경로 vi /opt/bitnami/php/etc/php.ini 값 "1" => "0" 수정하기 opcache.enable=0 아파치 재실행 ※ "AWS 라이트세일 서버 기준" sudo /opt/bitnami/ctlscript.sh restart apache php.ini

Naver Blog

[AWS] [Lightsail] 지메일(Gmail, Gusite) 보안 수준이 낮은 앱의 액세스 허용하기(SMTP)

주의 사항 1. 구글 계정 로그인시 보안 부분 해제하기 서버에서 메일 발송시 구글 계정 로그인 시도 2. SMTP 사용 후 메일이 발송되지 않으면, 구글 계정으로 접속해서 "보안 수준이 낮은 앱의 엑세스 허용" 부분 및 로그인 관련 보안 경고 사항으로 뜨는지 확인(클릭 후 허용 필요) ※ "G SUITE" 계정의 경우는 "보안 수준이 낮은 앱의 엑세스 허용"은 다른 페이지에서 허용 가능함 IMAP 설정 지메일 "IMAP" 설정 G Mail 설정 G Mail 설정 보안 수준이 낮은 앱의 엑세스 허용 G SUITE 계정의 경우 로그인 - Google 계정 하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인 내 계정 찾기 계정 만들기 Google 계정 하나면 OK myaccount.google.com "G suite" 계정의 경우 상단 링크를 통하여 허용 필요 하단은 SMTP 사용시 관련 오류 발생 AuthenticationFailedException: 535-5.7.

Naver Blog

[AWS] [Lightsail] 지메일(Gmail) DNS 설정하기

DNS 설정 "라이트 세일" 사이트 접속 후 "네트워킹" 클릭 만약, "DNS"가 없다면 "DNS 영역 생성"을 해주시고 이미 생성했다면, 하단 "DNS 영역"에서 해당하는 서버를 클릭 후 "관리"로 들어갑니다. 해당 "DNS 레코드"를 추가하기 해서 아래 사진 처럼 "MX 레코드"를 추가해줍니다. (하위 도메인 "@", 또는 "공백") MX 레코드 우선순위 1 매핑 ASPMX.L.GOOGLE.COM MX 레코드 우선순위 5 매핑 ALT1.ASPMX.L.GOOGLE.COM MX 레코드 우선순위 5 매핑 ALT2.ASPMX.L.GOOGLE.COM MX 레코드 우선순위 10 매핑 ALT3.ASPMX.L.GOOGLE.COM MX 레코드 우선순위 10 매핑 ALT4.ASPMX.L.GOOGLE.COM 네트워킹 DNS 레코드

Naver Blog

[CentOS7] 아파치(Apache) 최신버젼 설치 (CODEIT 방법)

관련 패키지 설치 # "EPEL 저장소" 설치 yum install -y epel-release # "wget" 설치 yum install -y wget # 의존성 패키지 설치 yum install -y libjpeg* libpng* freetype* gd-* gcc gcc-c++ gdbm-devel libtermcap-devel 아파치 설치 # "Code IT" 저장소 활성화 cd /etc/yum.repos.d && wget https://repo.codeit.guru/codeit.el`rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides redhat-release)`.repo # 설치 가능한 아파치 버젼 확인 yum info httpd # 아파치 설치 yum install -y httpd # 서비스 등록 systemctl enable httpd # 아파치 시작 systemctl start httpd # 아파치 버전 확인 httpd -v

Naver Blog

[TypeScript] 타입스크립트 노드(nodeJS) 설치하여 사용해보기(tsconfig.json)

패키지 설치하기 타입스크립트 글로벌 설치 npm install -g typescript 프로젝트 폴더를 만든 후 패키지 설치 npm install typescript --save-dev 설정 파일 만들기 tsconfig.json "tsconfig.json" 파일 만들기 첨부파일 tsconfig.json 파일 다운로드 npx tsc --init ※ 옵션 내용은 업로드 파일 참조 (파파고 번역) 간단하게 테스트 해보기 test.ts 디버그(F5)를 이용하여 디버깅 하기 const test = "test"; const test1 = 123; const test2 = () => console.log(test1);

Naver Blog

[TypeScript] 타입스크립트 Lodash 설치

Lodash 설치 Lodash는 자바스크립트 유틸리티 라이브러리 유틸리티 라이브러리로 "array", "collection", "date", "number", "object" 등이 있으며, 데이터를 쉽게 다룰 수 있도록 도와줍니다. (예를 들면, 배열 안에 중복 값을 제거하거나 object 배열 안에 특정 값만 추출하기 등 특히, 자바스크립트에서 배열 안의 객체들의 값을 핸들링할때 유용합니다.) ※ 설치 후 소스코드에 변수나 함수에 대해서 정보가 뜨고 "import" 같은 경우에도 자동으로 잡아줍니다. npm install lodash npm install @types/lodash 참고 링크 lodash에 대해서 자주 사용하는 함수들 안녕하세요. 오늘은 많이 사용되는 javascript 라이브러리 lodash에 대해서 간단하게 알아보고, 자주 사용되는 기능 몇 가지만 알아보도록 하겠습니다. lodash란? lodash는 자바스크립트 유틸리티 라이브러리 입니.. ithub.tistor

Naver Blog

[TypeScript] 타입스크립트 타입(변수, 함수 등) 알아보기

모든 타입 정의 변수 "any"으로 모든 타입과 값을 포함합니다. (함수도 가능) const a: any; 타입별로 예제 보기 변수 "number"로 선언 const a: number = 123; # "boolean"로 선언하면서 "a"가 큰지 확인 const b: boolean = a >= 100; "string"로 선언하면서 "b"의 조건문 const c: string = b ? "UP" : "DOWN"; "number[]"으로 배열로 선언 const a: number[] = [1, 2, 3]; "Array<number>"으로 배열로 선언 (위와 같은 선언이지만 다른 방법) const b: Array<number> = [1, 2, 3]; "[number, string]"으로 인덱스 별로 선언(튜플 Tuple) const a: [number, string] = [1, "abc"]; "undefined"으로 선언(undefined만 가능) const a: undefined = und

Naver Blog

[TypeScript] 타입스크립트 에넘(enum) 알아보기

enum # "enum"은 값을 숫자와 문자열을 넣을 수 있으며, 선언하지 않아도 자동으로 "1"이 할당됩니다. const enum Car { Hyundai, Kia, Samsung = "르노"; } const a: Car = Car.Hyundai; const b: Car.Hyundai | Car.Kia = Car.Kia; ※ 숫자도 가능 console.log(Car.Samsung); => "르노" console.log(Car["Samsung"]); => "르노" # 문자열의 경우 단방향으로만 매핑이 됨 console.log(Samsung["르노"]); => X const enum Car { k3, = 3; k5, = 4; k7 = 1; } # 숫자형의 경우 양방향으로 매핑이 됨 console.log(Car["k7"]); => 1 console.log(Car["1"]); => k7 ※ "enum" 객체 앞에 "const"를 붙이게 되면, 컴파일 후 "enum" 객체가 만들어지지 않아

Naver Blog

[CentOS7] Let’s Encrypt 무료 인증서 크론탭(Crontab)으로 자동 갱신 하기

크론탭 설치 Crontab # "cronie" 설치 yum -y install cronie # 시작 및 서비스 등록 systemctl start crond systemctl enable crond ※ 우분투(Ubuntu)는 기본 패키지에 있지만, 센토스(Centos7)은 없음 크론탭 수정 및 추가 Modify and Add 명령어 설명 crontab -e crontab를 편집할 수 있는 에디터 실행 crontab -l crontab에 등록된 작업 리스트 확인 crontab -r crontab에 등록된 모든 리스트 삭제 # "크론탭" 수정 crontab -e # 내용 추가 매월 1일 03시에 인증서를 갱신 후 아파치 재실행 0 18 1 * * /usr/bin/certbot renew --renew-hook="sudo systemctl restart httpd" ※ "Crontab" 수정시 줄 바꿈을 사용할 수 없으며 1개의 줄로 작성해야 합니다.

Naver Blog

[CentOS7] 유료 SSL(HTTPS) 인증서 적용하기

SSL 인증서 모듈 설치 yum install -y mod_ssl 인증서 발급 파일 업로드 # 외부에서 유료 SSL 구입시 발급 받는 파일 4개가 있습니다. "/etc/httpd/ssl" 경로로 다운받은 4개의 파일을 업로드 해줍니다. /etc/httpd/ssl/ca.pem /etc/httpd/ssl/ssl.crt /etc/httpd/ssl/ssl.key /etc/httpd/ssl/sub.class1.server.ca.pem 퍼미션 # 보안을 위해 디렉토리와 파일의 권한을 수정합니다. sudo chown -R root:root /etc/httpd/ssl # 파일의 권한을 600(소유자만 읽기, 쓰기 허용) sudo chmod 600 /etc/httpd/ssl/*.* 가상 호스트 설정 Virtual Host # "ssl.conf" 파일 연후 수정 아래 값들을 찾아 수정 vi /etc/httpd/conf.d/ssl.conf # "<VirtualHost _default_:443>" 값을

Naver Blog

[CSS] 사용자 지정 CSS 속성 사용하기 (변수)

변수 선언하기 # CSS에서도 변수를 선언하여 사용 할 수 있습니다. 이것을 "규칙 집합의 선택자"라고 합니다. # 보통 앞에 "--"를 입력하여 나오는 뒤의 단어는 자유롭게 선언이 가능합니다. :root { --default-color: red; --main-color: blue; } h1 { --default-color: red; --main-color: blue; } ※ 사용자 지정 속성의 이름은 대소문자를 구분합니다. 따라서 "--my-color"와 "--My-color"는 서로 다른 속성으로써 처리합니다. 변수 사용하기 h1 { background-color: var(--default-color); => red background-color: var(--main-color); => blue } 예제 # 아래와 같이 "background-color: brown" 반복되고 있을때, .one { color: white; "background-color: brown;" margin

Naver Blog

[VSCODE] 비주얼스튜디오코드(Visual Studio Code) PHP 익스텐션 셋팅(설정)하기

PHP 다운로드 PHP: Downloads Current Stable PHP 7.4.9 ( Changelog ) ¶ php-7.4.9.tar.bz2 (sig) [12,431Kb] 06 Aug 2020 2e270958a4216480da7886743438ccc92b6acf32ea96fefda88d07e0a5095deb php-7.4.9.tar.gz (sig) [16,129Kb] 06 Aug 2020 c0c657b5769bc463f5f028b1f4fef8814d98ecf3459a402a9e30d41d68b2323e php-7.4.9.tar.xz (sig) [10,048Kb]... www.php.net # 위 사이트 이동하여 최신 PHP 다운로드 합니다. 아래 다운로드중 "쓰레드"와 "논쓰레드"의 차이는 있지만, "에디터에 연동하여 사용할것이기 때문에 아무거나 다운로드 받아도 상관없습니다." ※ 단, 윈도우 환경에서 PHP와 아파치 등 사용할 계획이라면 "쓰레드"와 "논쓰레드" 차이점을 알

Naver Blog

[VSCODE] 비주얼스튜디오코드(Visual Studio Code) 원드라이브(OneDrive) 충돌 해결 (수정)

충돌 원인 # "원 드라이브"에 프로젝트 폴더를 업로드된 상태에서 "VSCODE"의 "SFTP" 기능중 "WATCH" 기능을 사용하게 되면, 서로 충돌(계속 리프레쉬)이 나면서 계속 업로드를 반복하게 됩니다. 즉, "원 드라이브"에서 새로운 파일 감지를 하면서 리프레쉬를 하게 되고, 여기서 "SFTP"도 새로운 파일 감지를 하게 되면서 계속 무한루프에 걸리게 됩니다. 현재 원인 해결을 원드라브에서 찾을려고 했으나 불가하여, 어쩔 수 없이 "SFTP"의 "WATCH" 기능중 "UPLOAD"를 "FALSE"를 하여 사용중입니다. # "요청 기반 파일 관리" 이 부분도 해제합니다.

Naver Blog

[HTML] 스타일시트(stylesheet) 리소스 우선 순위(퍼포먼스)

리소스 우선 순위 명령어 설명 preload 몇 초 안에 자원이 필요할 때 prefetch 다음 페이지에 자원이 필요할 때 preconnect 곧 자원이 필요하겠지만 아직 전체 URL을 모르는 경우 프리로드 preload # "as 속성"을 사용하여 리소스의 유형을 브라우저에 알려줘야 합니다. 올바른 유형이 설정되어 있지 않다면 브라우저는 해당 리소스를 사용하지 않습니다. # "preload"는 브라우저가 반드시 리소스를 가져오게 만듭니다. 중복 참조하면 중복된 만큼 리소스를 가져오기 때문에 중복해서 참조하지 않도록 해야 합니다. # "preload"는 현재 페이지에서 반드시 사용되는 리소스에만 사용되어야 합니다. <link rel="preload" as="script" href="super-important.js"> <link rel="preload" as="style" href="critical.css"> 프리커넥트 preconnect # "preconnect"를 사용하면 브라우

Naver Blog

[Vanilla] 자바스크립트(JavaScript) 구글 리캡차(reCAPCHA) V2, V3 적용하기

구글 리캡차 등록 reCAPTCHA reCAPTCHA is a security service that protects your websites from fraud and abuse. www.google.com # 위 사이트 이동 후 오른쪽 상단 "Admin Console" 클릭 하여 등록합니다. "V2", "V3" 모두 등록해도 됩니다. # 등록 후 나오는 "사이트키", "비밀키"는 꼭 백업해둡니다. 구글 리캡차 등록 리캡차V2 사용하기 # 스크립트 추가 <script src="//www.google.com/recaptcha/api.js"></script> # 엘리먼트 태그 추가 <div class="g-recaptcha" id="captcha" data-sitekey="사이트키"></div> # 콜백 추가 function grecaptcha() { // "grecaptcha.getResponse()" 부분이 핵심 입니다. // 리캡차 이미지를 클릭했다면 0 이상의 숫자가 나오고,

Naver Blog

[AWS] 아마존 EC2 방화벽 관련 의견

보안과 방화벽에 관해서... 평소에 자주 사용하는 아마존의 경우 기본적인 보안 포트는 허용이 되지만, 이외의 포트는 허용되지 않는다. 즉, 외부와의 협력이 필요할때 포트를 열었는데 안된다면, 아마존 측에 요청을 해야 된다. 하지만, 아마존의 답변 시간은 최대 48시간이다... 그리고 한번만에 해결되면 좋겠지만 그럴일은 거의 없다. 메일을 몇번 주고 받아야 되는지 안되는지 알 수 있고 한번 메일이 왔다갔다 하는데 드는 시간이 엄청나다... 그래서 제가 하고 싶은 말은 아마존 사용법은 익혀두시고 아마존에 있는 특별한 기능을 사용하지 않는 경우에는 웬만하면 국내 호스팅사를 사용하는게 정신적으로 편합니다. 그렇다고, 국내 호스팅사들의 보안이 허술하다? 그건 아니라고 봅니다. 클라이언트나, 개발자가 기본적인 룰만 지켜주고 웹 취약점만 조심하면 보안에서는 크게 문제될게 없습니다.

Naver Blog

[PHP] 브라우저 확장 프로그램 디버깅(Debug)

Xdebug 확장 프로그램 # "PHP"를 디버깅하는 더 좋은 방법은 "Xdebug"을 통해 이루어집니다. 대부분의 브라우저는 디버깅 프로세스를 초기화하는데 필요한 쿠키/쿼리 문자열을 전달하는 데 도움이되는 도우미 확장을 제공합니다. 크롬 : Xdebug Helper 파이어폭스 : Xdebug(가장 쉬운) 오페라 : Xdebug 사파리 : Xdebug Toggler ※ 확장 프로그램 설치는 구글 검색 Clockwork 확장 프로그램 Clockwork Clockwork is a development tool for PHP available right in your browser. Clockwork gives you an insight into your application runtime - including request data, performance metrics, log entries, database queries, cache queries, redis commands, dis

Naver Blog

[PHP] 웹소켓(임시)

https://github.com/RickySu/phpsocket.io RickySu/phpsocket.io Socket.IO php server side alternative. Contribute to RickySu/phpsocket.io development by creating an account on GitHub. github.com https://github.com/walkor/phpsocket.io walkor/phpsocket.io A server side alternative implementation of socket.io in PHP based on workerman. - walkor/phpsocket.io github.com

Naver Blog

[HTML] 웹 스토리지(Web Storage API) 란 무엇인가? (로컬, 세션 스토리지)

Web Storage API 구분 공통 설명 로컬 스토리지 (LocalStorage) 1. 페이지 프로토콜별로 구분합니다. HTTP(http://example.com) HTTPS(https://example.com) 위 두개의 프로토콜은 각각 다른 Storage에 저장됩니다. 2. 키와 값은 항상 각 문자에 2바이트를 할당하는 UTF-16 DOMString의 형태로 저장합니다. 객체와 마찬가지로 정수 키는 자동으로 문자열로 변환합니다. 위와 같지만, 브라우저를 닫았다 열어도 데이터가 남아있습니다. 1. 유효기간 없이 데이터를 저장하고, JavaScript를 사용하거나 브라우저 캐시 또는 로컬 저장 데이터를 지워야만 사라집니다. 2. 저장 공간이 셋(로컬, 세션, 쿠키) 중 제일 큽니다. 3 사생활 보호 모드" 중 생성한 localStorage 데이터는 마지막 "사생활 보호" 탭이 닫힐 때 지워집니다. 세션 스토리지 (SessionStorage) 각각의 URL에 대해 독립적인 저장 공

Naver Blog

[VSCODE] 비주얼스튜디오코드(Visual Studio Code) 로그인 후 설정 값 동기화 하기

동기화 설정 # 마이크로소프트, 깃허브 계정으로 로그인 하여 현재의 "VSCODE" 설정 값을 동기화 할 수 있습니다. 1. 왼쪽 상단 "파일" > "기본 설정" > "설정" 클릭해주세요. 2. 검색 및 오른쪽 끝에 보면 "동기화" 관련 버튼이 있습니다. 클릭해주세요. 3. 마이크로소프트, 깃허브 계정으로 로그인 해주세요. => 방화벽 관련 팝업이 뜨면 허용 눌러주시면 됩니다. 이제 어떤 PC든 동기화 과정만 거치면 원래 쓰던 설정값 대로 똑같이 사용 할 수 있습니다. ※ 단, 확장 프로그램은 자동 설치가 안되는것 같습니다. ※ 추가 팁, "본체와 노트북 둘다 사용자 계정이름을 동일"하게 했습니다. 확장 프로그램은 직접 설치해야된다지만 "설정값에서 경로 같은 부분은 바꿀 필요가 없어집니다." VSCODE 동기화 설정 VSCODE 동기화 설정

Naver Blog

[VSCODE] 비주얼스튜디오코드(Visual Studio Code) PHPCS 설치하는 방법

PHP 설치 [VSCODE] 비주얼스튜디오코드(Visual Studio Code) PHP 익스텐션 셋팅(설정)하기 PHP 다운로드PHP 압축해제 후 폴더 옮기기비주얼 스튜디오 코드 익스텐션비주얼 스튜디오 코드 설정... blog.naver.com # 위의 링크를 통해 먼저 "PHP" 설치해주세요. 컴포저 설치 Introduction - Composer Dependency management System Requirements Installation - Linux / Unix / macOS Downloading the Composer Executable Locally Globally Installation - Windows Using the Installer Manual Installation Using Composer Introduction # Composer is a tool for dependency management in PHP. It allows you to declar..

Naver Blog

[VSCODE] 비주얼스튜디오코드(Visual Studio Code) PHPCS + PHP-CS-FIXER 같이 사용하기

PHPCS 설치하는 방법 이전 게시글 참고 [VSCODE] 비주얼스튜디오코드(Visual Studio Code) PHPCS 설치하는 방법 PHP 설치컴포저 설치php_codesniffer 설치VSCODE 설정 blog.naver.com PHP-CS-FIXER 파일 다운로드 FriendsOfPHP/PHP-CS-Fixer A tool to automatically fix PHP Coding Standards issues - FriendsOfPHP/PHP-CS-Fixer github.com # 위 사이트 이동 후 아래 글에서 "php-cs-fixer.phar" 다운로드 하기 Locally Download the php-cs-fixer.phar file and store it somewhere on your computer. # 다운 받은 파일은 저는 "C:\composer" 폴더에 넣어주었습니다. PHP-CS-FIXER 익스텐션 설치 # VSCODE에서 "php-cs-fixer" 검색하면

Naver Blog

[PHP] PHP8 Attributes 미리 알아보기

Attributes란? https://365ok.co.kr/tj/okdown/7046 # Attributes는 "주석"이라고도 하는 이러한 속성의 목적은 메타데이터를 클래스, 메서드, 변수 등에 체계적으로 추가하는 것입니다. # 즉, 기존에 사용하던 "PHP DocBlock" 방식인 주석을 기억하시나요? 예로들면 아래와 같은 겁니다. /** * @Route("/about") */ # 위의 주석은 실제로 실행되지는 않지만, "Reflection API" 제공하여 주석을 편리하게 검색 할 수 있습니다. 위의 주석을 아래와 같이 바꿀 수 있습니다. <<Route('/about')>> 쉬운 예제 https://365ok.co.kr/tj/okdown/7046 class AboutPage extends AbstractController { /** * @Route("/about") */ public function page() {} } => class AboutPage extends Abstra

Naver Blog

[PHP] PHP8 Named Params 미리 알아보기

Named Params란? # 이제 이름을 바꾸거나 객체 다형성을 제공하지 않고 명시적으로 선언된 파라미터만 사용할 수 있습니다. 즉, 아래와 같습니다. function Email(string $to, string $from = "[email protected]", string $content = "test", bool $option = false) {} # 기존 사용 방식 Email("[email protected]", "[email protected]", "내용"); # 네임드 파라미터 방식 Email(to : "[email protected]", options : true); # 잘못된 방식(디폴트 값을 네임드로 적어둔 뒤에 네임드 없이 적을 경우) Email(options : true, "[email protected]"); ※ 위와 같이 이름을 지정하고 기존 디폴트 값들의 순서 상관없이 건너뛸 수 있습니다. 단, 주의 할점은 기존 디폴트 값을 가장 앞에 두고나서 일반적

Naver Blog

[PHP] PHP8 Nullsafe Operator 미리 알아보기

Nullsafe Operator란? # "null"이 아닌 경우 표현식의 결과에 대해 메서드를 호출하거나 속성을 가져오기를 원하는 것은 상당히 흔한 일이다. 현재 PHP에서 "null" 리드를 확인하면 "더 깊은 내포 및 반복이 발생하는 문제가 있음" $country = null; if ($session !== null) { $user = $session->user; if ($user !== null) { $address = $user->getAddress(); if ($address !== null) { $country = $address->country; } } } => # "null"로 평가될 때 전체 체인의 실행이 중지되고 null로 평가된다. "null"이 아닌 경우, 일반 -> 연산자와 동일하게 동작한다. $country = $session?->user?->getAddress()?->country; 예제 class MyClass { public function foo()

Naver Blog

[PHP] PHP8 Match Expression(Swtich) 미리 알아보기

Match Expression란? # 스위치(swtich) 대신 매치(match)를 통해서 간략하게 사용 가능합니다. 예제는 아래와 같습니다. $message = null; $value = 1; switch ($value) { case 1: $message = "Hello"; break; case 2: $message = "World"; break; Default: $message = "Hello, World"; } => $message = match ($value) { 1 => "Hello", 2, 3, 4 => "World", default => "Hello, World" }; # 단, 주의해야 할 점은 매치(match)의 경우 "default" 처리 하는 과정이 없고, "$value"의 값이 매치에 없다면 "Fatal Error"를 나타내게 됩니다. 예제는 아래와 같습니다. $value = 5; $message = match ($value) { 1 => "Hello", 2, 3

Naver Blog

[PHP] PHP8 Non Capturing Catches (try, catch) 미리 알아보기

Non Capturing Catches란 # 현재 PHP는 변수에 걸리는 예외를 처리해야 합니다. try { foo(); } catch (SomeException $ex) { die($ex->getMessage()); } # 그러나 변수를 사용하지 않더라도 다음과 같이 지정해야 합니다. try { changeImportantData(); } catch (PermissionException $ex) { // "$ex" 변수를 지정해야 됨 echo "이 작업을 수행할 수 있는 권한이 없습니다."; } => # 예외를 변수에 캡처하지 않고 예외를 포착할 수 있도록 허용 try { changeImportantData(); } catch (PermissionException) { // "$ex" 변수를 지정안해도 됨 echo "이 작업을 수행할 수 있는 권한이 없습니다."; } 참고 링크 PHP: rfc:non-capturing_catches PHP RFC: non-capturing catc

Naver Blog

[PHP] PHP8 Mixed Type 미리 알아보기

Mixed Type란? mixed # 위의 사진 처럼 "Mixed Type"는 여러 타입을 받거나 반환할 수 있습니다. 보통은 string, int, bool 이런식으로 타입을 선언하지만, mixed를 쓰면 여러 타입을 받을 수 있다는 얘기입니다. 아래의 예제를 확인해보세요. class A { public function bar(): mixed {} } class B extends A { public function bar(): int {} } # 하지만, 당연히 반대로 사용이 불가합니다. 즉, int로 타입이 지정된 곳에 mixed(any)로 사용 할 수 없다는 얘기 입니다. class A { public function bar(): int {} } class B extends A { public function bar(): mixed{} } # 기존에는 여러 타입을 받기 위해서는 앞에 타입을 지정하지 않았습니다. 이제는 "mixed"로 명시적으로 표시 할 수 있기 때문에 가독성에

Naver Blog

[PHP] PHP8 Constructor Promotion 미리 알아보기

Constructor Promotion # 먼저, 예제를 살펴보겠습니다. "public float $" 부분을 중점으로 보시면 됩니다. class Point { public float $x; // 각각 프로퍼티 선언 public float $y; // 각각 프로퍼티 선언 public float $z; // 각각 프로퍼티 선언 public function __construct( float $x = 0.0, float $y = 0.0, float $z = 0.0, ) { $this->x = $x; $this->y = $y; $this->z = $z; } } => # "__construct"에 직접 프로퍼티 선언이 가능해집니다. class Point { public function __construct( public float $x = 0.0, public float $y = 0.0, public float $z = 0.0, ) {} } 참고 링크 PHP: rfc:constructor_p

Naver Blog

[PHP] PHP8 Throw Expression 미리 알아보기

Throw Expression란? # 이제는 함수에서 예외처리가 가능해집니다. function test() { return throw new Exception(); } try { test(); } catch (Exception) { // test()가 예외처리로 빠짐 } 예제 # 화살표 함수는 하나의 표현식만 받아들이기 때문에 이전에는 불가능했다. $callable = fn() => throw new Exception(); # 중복 연산자에서도 사용이 가능 $a = isset($a) ? $a : throw new InvalidArgumentException(); => $a = $a ?? throw new InvalidArgumentException(); # 엘비스 연산자에서도 사용이 가능(if/else) $a = $b ?: throw new InvalidArgumentException(); # $value 배열이 비어 있지 않은 경우에만 설정됨. $value = !empty($arr

Naver Blog

[PHP] PHP8 Stringable 미리 알아보기

Stringable란? # "Stringable" 인터페이스는 "__toString()"을 구현하는 모든 힌트를 입력하는 데 사용할 수 있다. 클래스가 "__toString()"을 구현할 때마다 자동으로 뒤에서 인터페이스를 구현하므로 수동으로 구현할 필요가 없다. class Foo implements Stringable { public function __toString(): string { return 'foo'; } } $foo = new Foo(); echo $foo; // -> foo 예제 https://pronist.tistory.com/60 class MyClass implements Stringable { public function __toString(): string { return 'Hello, world'; } } echo new MyClass(); // -> Hello, world 참고 링크 PHP: rfc:stringable PHP RFC: Add String

Naver Blog

[PHP] PHP8 Static Return Type 미리 알아보기

Static Return Type란? # "self"를 반환하는 것은 이미 가능했지만, "PHP8"에서 "static"은 유효한 반환 유형이 아니었습니다. PHP의 동적 유형 특성을 감안할 때 많은 개발자에게 유용한 기능입니다. class Foo { public function test(): static { return new static(); } } class Foo { public function test(): static { return $this; } } # 내용이 허술하여 보충 내용 필요(업데이트 예정)... 참고 링크 PHP: rfc:static_return_type PHP RFC: Static return type Date: 2020-01-08 Author: Nikita Popov [email protected] Target Version: PHP 8.0 Status: Implemented Implementation: https://github.com/php/php-src/pu

Naver Blog

[PHP] PHP8 Union Types 미리 알아보기

Union Types란? # 기존의 타입에는 여러 타입을 함께 사용 할 수 없었지만, 이제는 여러 타입을 적어 줄수 있습니다. # 기존 방식 function test(string $number) { } => # 유니온 방식 function test(string|int $number) { } # "null" 타입도 받을 수 있습니다. function test(null|int $number) { } # 앞에 "?"을 붙여서 "null"을 받을 수도 있습니다. function test(string $number, ?string $name) { } # 리턴 타입을 "int|false"을 줄 수 있습니다. "int|false"만 리턴 타입을 지정해줄 수 있습니다. (거의 사용하지 않을것 같군요.) function test(): int|false { }

Naver Blog

[PHP] PHP8 WeakMap 미리 알아보기

WeakMap란? # 일반적인 사용 사례는 데이터를 강제로 유지하지 않고 개별 개체 인스턴스와 연결하여 장기 실행 프로세스에서 메모리를 효과적으로 관리하는 것입니다. 예를 들어, 약한 맵을 사용하여 계산 결과를 메모 할 수 있습니다. 예제 # 이것은 각 객체에 대해 한 번만 computeSomethingExpensive() 메서드를 호출합니다. 동시에 객체가 파괴되면 맵에서 캐시 된 값도 삭제합니다. 일반 배열(또는 오히려 SplObjectStorage)로 동일한 작업을 수행하면 "메모리 누수가 발생"합니다. class FooBar { private WeakMap $cache; public function getSomethingWithCaching(object $obj) { return $this->cache[$obj] ??= $this->computeSomethingExpensive($obj); } // ... } 참고 링크 PHP: rfc:weak_maps PHP RFC: Wea

Naver Blog

[CentOS7] PHP 8 설치하기

PHP8 설치하기 sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum -y install yum-utils sudo yum -y install --enablerepo=remi-test php80 # 버젼 확인 php80 --version

Naver Blog

[Vanilla] 자바스크립트(JavaScript) 엘리먼트 전, 앞, 뒤, 후에 넣기 (insertAdjacentHTML)

구문 # "insertAdjacentHTML"는 이미 사용중인 엘리먼트를 다시 파싱하지 않아서, "innerHtml" 보다 "작업이 덜 드므로 빠르다." # 기본 사용 방법 element.insertAdjacentHTML(position, text); # 엘리먼트 앞에 넣기 beforebegin # 엘리먼트 안에 첫번째에 넣기 afterbegin # 엘리먼트 안에 마지막에 넣기 beforeend # 엘리먼트 뒤에 넣기 afterend 포지션 값과 위치 # 위의 "position"에 들어갈 명령어 입니다. "p" 엘리먼트 태그에 넣을때 위치 입니다. <!-- beforebegin --> <p id="test"> <!-- afterbegin --> foo <!-- beforeend --> </p> <!-- afterend --> 응용 예제 # 실제로 사용할때 예제 (위의 "p" 태그 기준으로) "insertAdjacentHTML" 뒤의 엘리먼트는 변수 할당 후 넣어줘도 되고, 직접 작성

Naver Blog

[Vanilla] 자바스크립트(JavaScript) 엘리먼트 앞, 뒤에 넣기 (appendChild, prepend, insertBefore)

구문 # "append"는 "appendChild"를 대신하여 사용합니다. # 특정 엘리먼트 앞에 넣기 부모노드.insertBefore(삽입 할 노드, 기준 점 노드); # 엘리먼트 안 앞에 넣기 엘리먼트.prepend() # 엘리먼트 안 뒤에 넣기 엘리먼트.appendChild(); 예제 # 특정 엘리먼트 앞에 넣기 <form> <input type="text" id="first" value="test" /> </form> <script> let form = document.querySelector("form"); let input = form.querySelector("input"); let input2 = Object.assign(document.createElement("input"), { type : "hidden", id : "second", value : "이 태그는 "first" 인풋 태그 위로 갑니다." }); form.insertBefore(input2, input

Naver Blog

[CentOS7] phpMyAdmin 로그인 세션시간 늘리기

config.inc.php 수정 # 아래 파일 연후 맨 하단에 추가 기존에 값이 있다면 값 수정 vi /etc/phpMyAdmin/config.inc.php => $cfg['LoginCookieValidity'] = 36000; php.ini 수정 # 아래 파일 연후 아래 내용 수정 vi /etc/php.ini => session.gc_maxlifetime = 36000; 아파치 재시작 systemctl restart httpd

Naver Blog

[CentOS7] phpMyAdmin 사용하지 않는 테이블 숨기기

config.inc.php 수정 # 아래 파일 연후 맨 하단에 추가 이외 더 숨기고 싶은 테이블이 있다면, "테이블1|테이블2" 이런식으로 추가해주면 됩니다. vi /etc/phpMyAdmin/config.inc.php => $cfg['Servers'][$i]['hide_db'] = '(information_schema|mysql|performance_schema|phpmyadmin)'; 아파치 재시작 systemctl restart httpd phpMyAdmin 재로그인 # "phpMyAdmin" 로그인이 되어있다면, 로그아웃 후 다시 로그인 해주세요.

Naver Blog

[CentOS7] phpMyAdmin 왼쪽 DB 테이블 보이는 갯수 늘리기

config.inc.php 수정 phpMyAdmin # 위에 사진처럼 왼쪽에 있는 테이블 목록 수를 늘립니다. 아래 파일 연후 맨 하단에 추가 (숫자를 변경하여 원하는 테이블 목록을 수정) vi /etc/phpMyAdmin/config.inc.php => $cfg['MaxDbList'] = 100; 아파치 재시작 systemctl restart httpd

Naver Blog

[CentOS7] phpMyAdmin 행(컬럼) 보이는 갯수 늘리기

config.inc.php 수정 phpMyAdmin # 위의 사진처럼 행 갯수를 늘립니다. 아래 파일 연후 맨 하단에 추가 (너무 많이 늘리면 버벅일 수 있으니 최대 100까지 추천) vi /etc/phpMyAdmin/config.inc.php => $cfg['MaxRows'] = 100; 아파치 재시작 systemctl restart httpd

Naver Blog

[Ubuntu] 18.04 apache2 phpMyAdmin 설치하기

phpMyAdmin 설치 phpMyAdmin phpMyAdmin phpMyAdmin # phpMyAdmin 설치 sudo apt install phpmyadmin php-gettext # 아파치 재시작 sudo systemctl restart apache2 apache2.conf 수정 # 아파치 수정 파일 sudo vi /etc/apache2/apache2.conf # 최상단에 추가 Include /etc/phpmyadmin/apache.conf # 아파치 재시작 sudo systemctl restart apache2 ※ 프록시 및 가상호스트 사용으로 인한 phpMyAdmin 접속 불가시 일시적으로 프록시, 가상호스트를 해제하시면 됩니다.

Naver Blog

[NGINX] Nginx 설치하기

Nginx 레포 기준으로 설치 Nginx 레포로 설치시 # "nginx.repo" 파일 생성 vi /etc/yum.repos.d/nginx.repo # 하단 내용 저장 [nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 EPEL 레포 기준으로 설치 Epel 레포로 설치시 # 위 "Nginx"에서 관리하는 "Repo"를 기준으로 설치할 수 있으며, 아래 처럼 "EPEL"에서 관리하는 "Repo"로 버전에 대한 검증을 마친 후 등록 하여 설치가 가능합니다. "epel-release"는보다 안전하지만 업데이트 반영 주기는 다소 느립니다. yum install -y epel-release Nginx 설치 yum install -y nginx Nginx 설정 # 하단 설정을 통하여 포트 등등 수정 가능 vi /etc/nginx/conf

Naver Blog

[Node.js] npm (The operation was rejected by your operating system) 오류 해결

원인 The operation was rejected by your operating system 1. 전역으로 설치된 NPM이 해당 보조 계정에서 접근 권한이 없을때 발생될 수 있습니다. 해당 NPM 폴더를 이외 계정에서도 접근가능하게 하거나, 관리자 권한을 줘야 해결되는 문제 입니다. 2. 우분투 20 버젼의 경우 npm 이슈가 있을 수 있습니다. 되도록이면 18.04 버젼을 이용 3. 기존 프로젝트가 "npm"이 아닌 "yarn"으로 설치된 경우 "yarn"으로 설치 진행 ※ 아래 링크를 통해서 관리자 권한을 부여해보세요. [Windows10] 우분투(Ubuntu) 어드민 권한 추가하기(SUDO) root 계정으로 로그인sudoers 파일 권한 변경sudo 권한 추가passwd 파일 수정root 그룹 추가 blog.naver.com

Naver Blog

[Windows10] 우분투(Ubuntu) vscode 을(를) 열 수 없습니다. (Error: 알 수 없는 오류가 발생했습니다.)

퍼미션 문제 vscode "vscode"에서 파일이 안열리는 경우에는 퍼미션 권한 문제일 가능성이 높습니다. 해당 퍼미션을 755로 변경하거나 권한을 주면 됩니다.

Naver Blog

[CentOS7] aws ec2 쉘 스크립트 라라벨(이외) 자동 실행

아마존 기본 부트 쉘스크립트 실행 # "aws ec2"의 경우 "/var/lib/cloud/scripts/per-boot/" 안에 쉘 스크립트를 만들어 넣으면 자동으로 서버 재부팅시 실행됨 라라벨 쉘 스크립트 응용 # "laravel_startup.sh" 파일을 만듬 sudo vi /var/lib/cloud/scripts/per-boot/laravel_startup.sh # 안에 내용을 넣음 "#!/bin/bash" 은 필수 즉, 라라벨 디렉토리 이동이 성공하면 서버를 실행해라는 명령 입니다. #!/bin/bash cd /home/라라벨 디렉토리... || exit 1 echo "php artisan serve" # "root"가 아닌 다른 계정도 실행하기 위한 권한 변경 sudo chmod 755 /var/lib/cloud/scripts/per-boot/laravel_startup.sh ※ 이외에도 쉘 스크립트를 응용하여 사용하시면 됩니다.

Naver Blog

[VSCODE] 비주얼스튜디오코드(Visual Studio Code) 단축키 만들기(console.log 등)

사용자 코드 조각 생성 vscode # "VSCODE" > "파일" > "기본 설정" > "사용자 코드 조각" 후 상단에 언어가 나오면 선택(여기서는 javascript 선택) # 하단 내용으로 수정 { "Print to console": { // "con"으로 입력시 출력 "prefix": "con", "body": [ "console.log('$1');", "$2" ], // 설명 "description": "console.log" } } # 아래 이미지 처럼 "con" 입력하고 엔터치면 "console.log("");" 생성됨 ※ 이외 언어도 응용해서 생성 vscode

Naver Blog

[Ubuntu] 18.04 Could not get lock /var/lib/dpkg/lock-frontend - open 오류 해결하기

발생 원인 # "/var/lib/dpkg/lock" 파일이 존재할 경우 패키지 및 인덱스를 업데이트 하지 않는다고 합니다. 즉, 특정 호스팅 업체에서 서버 개설 후에 VPS를 사용하는 경우 서버에 설치된 우분투 이미지에 세팅되어 있는 경우가 있어서 그럴 수 있습니다. 그래서 위의 "lock" 관련 파일을 삭제하여 다시 업데이트 하면 해결 할 수 있습니다. 해결 방법 # 프로세스 모두 종료 sudo killall apt apt-get # "lock" 관련 파일 삭제 (없으면 건너띄기) sudo rm -rf /var/lib/apt/lists/lock sudo rm -rf /var/cache/apt/archives/lock sudo rm -rf /var/lib/dpkg/lock* # "dpkg" 재등록 sudo dpkg --configure -a # 우분투 다시 업데이트 sudo apt update 참고 사이트 우분투 APT Could not get lock /var/lib/dpkg/lo

Naver Blog

[Laravel] jwt (Argument 3 passed to Lcobucci\JWT\Signer\Hmac::doVerify() must be an instance) 오류 해결

원인 # "jwt" 시크릿키가 생성되어 있지 않아서 발생되는 문제 Argument 3 passed to Lcobucci\JWT\Signer\Hmac::doVerify() must be an instance of Lcobucci\JWT\Signer\Key, null given 해결하기 # "jwt" 시크릿 키를 생성하여 해결 php artisan jwt:secret

Naver Blog

[Mysql] (/usr/sbin/mysqld: unknown option '--skip-locking') 오류 해결하기

발생원인 # "MySQL 5.5 버전"부터는 잠금 건너뛰기 지시문이 더 이상 사용되지 않는다. 즉, "my.cnf" 파일안에 "skip-locking"이 더이상 사용되지 않는다는 뜻 원인해결 # "centos" 기준이며, "ubuntu"의 경우 위치를 모르면 검색 "find / -name my.cnf" vi /etc/my.cnf # 아래 내용을 주석 처리 #skip-locking # "mysql" 재시작 systemctl start mariadb 참고 링크 Unable to start MySQL: Error unknown option '--skip-locking' Applicable to: Plesk Onyx for Linux Symptoms The Plesk is down. The MySQL service is not starting after upgrade from 5.1 to 5.5 version, with the following errors in /var/log/mysqld

Naver Blog

[Laravel] (package information was loaded from the local cache and may be out of date) 오류 해결하기

발생원인 https://repo.packagist.org coult not be fully loaded (Could not resolve host: repo.packagist.org), package information was loaded from the local cache and may be out of date # 즉, "Git"이 잘못된 프록시를 사용하는 경우 위에 해당하는 오류가 발생할 수 있습니다. 따라서, "Git" 작업이 성공적으로 작동하도록 해당 프록시를 재구성하면 됩니다. 원인해결 git config --global http.proxy http://proxyuser:[email protected]:8080 and git config --global --unset http.proxy git config --global --unset https.proxy # 이후에도 컴포저가 안되면 재부팅 참고 링크 https://github.com/desktop/de

Naver Blog

[Laravel] 디버그바(Debug Bar) 설치하기

디버그바 설치 디버그바(Debug Bar) # 컴포저를 통해 "디버그바" 패키지 설치 composer require barryvdh/laravel-debugbar --dev # ".env" 파일에서 "true" 변경 APP_DEBUG = true # 웹 사이트 접속 후 하단 디버그바 확인

Naver Blog

[Apache2] 우분투에서 Apache2 완전 삭제하기

Apache2 삭제하기 # "Apache2" 서비스 중단 sudo service apache2 stop # "Apache2" 관련 패키지 모두 삭제 sudo apt-get remove -y apache2* # "purge"를 이용하여 설정파일도 모두 삭제 한다. sudo apt-get remove -y --purge apache2* # 남은 의존성 패키지 등 자동 정리 sudo apt-get -y autoremove # 우분투 업데이트 sudo apt update sudo apt -y upgrade

Naver Blog

[Nginx] Ubuntu 18.04 (Nginx + php7.4 + php-fpm) 설치 및 설정하기

Nginx 설치하기 # "Nginx" 설치 sudo apt install -y nginx # 자동 시작 등록 sudo update-rc.d nginx defaults sudo update-rc.d nginx enable PHP 7.4 및 관련 패키지 설치 php7.4 package : Ubuntu php7.4 package in Ubuntu libapache2- mod-php7. 4: server-side, HTML-embedded scripting language (Apache 2 module) libapache2- mod-php7. 4-dbgsym: debug symbols for libapache2- mod-php7. 4 libphp7.4-embed: HTML-embedded scripting language (Embedded SAPI library) libphp7. 4-embed- dbgsym: debug symbol... launchpad.net # "php7.4" 관련 패

Naver Blog

[Nginx] Ubuntu 18.04 let's encrypt 무료 SSL 적용하기

"certbot" 레포지토리 추가 # 입력 후 엔터 sudo add-apt-repository ppa:certbot/certbot # 업데이트 sudo apt update sudo apt -y upgrade certbot 설치 # "certbot" 설치 sudo apt-get install python-certbot-nginx -y # "nginx" 설정 파일 수정 "server_name"의 도메인 추가 입력하기 sudo nano /etc/nginx/sites-available/default # "nginx" 문제 없는지 확인 sudo nginx -t # "nginx" 재시작 sudo service nginx restart 방화벽 변경하기 # "ufw" 상태 확인 sudo ufw status # "ufw" "active"으로 변경 sudo ufw enable sudo ufw allow 'Nginx Full' sudo ufw allow OpenSSH 인증서 받기 # 인증서 받기 sud

Naver Blog

[Notion] 노션 단축키

기본 단축키 단축키 기능 (cmd/ctrl) + n 새로운 페이지 생성 (cmd/ctrl) + shift + p 기존에 생성된 특정 페이지에 하위를 생성할지 선택 (cmd/ctrl) + shift + n 노션을 새 윈도우 창에서 열기 (cmd/ctrl) + p 페이지 검색 (cmd/ctrl) + [ 이전 페이지(뒤로 가기) (cmd/ctrl) + ] 다음 페이지(앞으로 가기) (cmd/ctrl) + u 상위 페이지로 이동 (cmd/ctrl) + shift + l 다크, 화이트 모드 변경 (cmd/ctrl) + \ 왼쪽 사이드 메뉴 감추기/표시 마크다운 단축키 단축키 기능(텍스트를 감싸주면) ** 굵게 * 기울임 ` 인라인(들여쓰기) ~ 취소선 단축키 기능(비어있는 텍스트에 입력시) *, -, + 입력 후 space 글머리 기호 목록 [] 체크박스(공백 없이) 1. 입력 후 space 번호가 매겨지는 목록 기호 목록 # 입력 후 space 헤더 ## 입력 후 space 서브 헤더 >

Naver Blog

[Notion] 노션 웹 클리퍼 (Notion Web Clipper) 북마크, 즐겨찾기, URL 바로 저장하기

크롬 확장프로그램 설치 Notion Web Clipper Use our Web Clipper to save any website into Notion. chrome.google.com # 웹 클리퍼를 이용하면 어떤 웹사이트라도 노션에 저장할 수 있습니다. 확장프로그램 설정 노션 # 노션 로그인 후 "새로운 링크 데이터베이스" 생성시 "나의 링크"가 생성되며, 리스트 형식으로 추가됨

Naver Blog

[Centos] 도커(Docker) 설치하기

도커 삭제하기 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine 도커 설치하기 # 도커 레포지토리 추가 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 도커 최신버젼 설치 sudo yum install docker-ce # 도커 자동실행 등록 sudo systemctl enable docker # 도커 계정 권한 등록 sudo usermod -aG docker $USER # 도커 데모 실행 sudo systemctl start docker # 도커 상태 확인 sudo sy

Naver Blog

[Git] 계정(아이디, 비밀번호) 캐시 저장하기

계정 저장 sudo git config --global user.name "이름" sudo git config --global user.email "이메일@email.com" 캐시 저장 # 아래 명령어 실행 후 깃 명령어를 사용하여 계정 입력하면 저장됨 EX) sudo git pull ... 등등 sudo git config credential.helper store # 시간을 지정하여 캐시 저장(초) sudo git config --global credential.helper 'cache --timeout 7200' 캐시 삭제 sudo git credential-cache exit 참고 링크 Git - git-credential-cache Documentation English Topics Version 2.29.0 git-credential-cache last updated in 2.29.0 NAME git-credential-cache - Helper to temporar

Naver Blog

[Apache2] WSL 우분투 (Protocol not available: AH00076: Failed to enable APR_TCP_DEFER_ACCEPT) 오류 해결

아파치 설정 파일 수정 # "아파치2" 설정 파일 열기 sudo nano /etc/apache2/apache2.conf # 맨 하단에 추가 AcceptFilter http none AcceptFilter https none # "아파치" 재시작 sudo service apache2 restart

Naver Blog

[SocialLogin] 애플 소셜 로그인 개발자 등록하기

개발자 등록하기 등록하기 전 - Apple Developer Program 등록해야 할 사항 개인으로 등록하기 개인 또는 개인사업자/1인 기업인 경우, 이중 인증 이 켜져 있는 Apple ID로 로그인하여 시작하십시오. 법적 이름 및 주소를 포함한 기본적인 개인 정보를 제공해야 합니다. 조직으로 등록하기 조직으로 등록하는 경우 이중 인증 이 켜져 있는 Apple ID 와 다음 사항이 필요합니다. D-U-N-S 번호 조직의 정보 및 법인 상태를 확인하려면 해당 조직에 D-U-N-S 번호 가 있어야 합니다. Dun & Bradstreet 에서 지정하는 고유한 이 9자리 번호는 표준 비즈니스 식별자로 흔히 ... developer.apple.com # 애플 로그인 후 위 링크로 이동하여 개발자 등록해줍니다. 개인도 가능하니 입력할 양식만 채워서 등록하면 됩니다. 참고 링크 To see this page, you must enable JavaScript. Pour afficher cette

Naver Blog

[Ubuntu] aws 볼륨 파티션 크기 확장하기

볼륨 조정 파티션 크기 조정 전 파티션 크기 조정 후 # 파티션 확인 lsblk # 위 이미지에서의 파티션 이름은 "xvda1" 입니다. 디바이스 이름과 파티션 번호를 구분하는 공백을 추가해야합니다. sudo growpart /dev/xvda 1 # 크기 확장 sudo resize2fs /dev/xvda1 # 파티션 확인 및 볼륨 확인 lsblk df -h

Naver Blog

[Laravel] permission denied

퍼미션 및 소유자 변경 # "nginx" 및 "apache"가 디렉토리에 대한 권한이 필요 sudo chown -R ubuntu:www-data storage sudo chown -R ubuntu:www-data bootstrap/cache # 퍼미션을 755로 변경 sudo chmod -R 775 storage sudo chmod -R 775 bootstrap/cache

Naver Blog

[Ubuntu] phpmyadmin 최신 버젼 업데이트

최신 버젼 업데이트 Downloads Since July 2015 all phpMyAdmin releases are cryptographically signed by the releasing developer. You should verify that the signature matches the archive you have downloaded. Verification instructions are placed in our documentation in the Verifying phpMyAdmin releases chapter. phpMyAdmin 4.9.7 Rele... www.phpmyadmin.net # 우분투 업데이트 sudo apt-get update sudo apt-get -y upgrade # "wget, unzip" 설치 sudo apt-get install -y wget sudo apt-get install -y unzip # 기본 "phpmyadmin" 설치 su

Naver Blog

[Ubuntu] PHP 최신버젼 설치

최신 버젼 설치 sudo apt-get update sudo apt -y install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt-get update # PHP 7.4 설치 sudo apt -y install php7.4 # PHP 관련 의존성 라이브러리 설치 sudo apt-get install -y php7.4-{bcmath,bz2,intl,gd,mbstring,mysql,zip,common} NGINX 사용하기 # 우분투에 "PHP"를 설치하면 아파치가 구성된다. "Nginx"와 "PHP"를 실행하는 데 관심이 있는 사용자의 경우 "Apache" 서비스를 중지하고 비활성화해야 한다. # 아파치 종료 sudo systemctl disable --now apache2 # "Nginx" 및 "php7.4-fpm" 설치 sudo apt-get install nginx php7.4-fpm # "p

Naver Blog

[Ubuntu] MariaDB(Mysql) 설치하기 (수정)

Mysql 설치 # 최신 sudo apt update # "Mysql" 설치 sudo apt-get install -y mysql-server # 방화벽 "ufw"에서 "Mysql" 허용 sudo ufw allow mysql # "Mysql" 등록 및 실행 sudo systemctl enable mysql sudo systemctl start mysql 초기 셋팅 # MariaDB 초기 설정 "Set root password"에서 엔터 후 사용할 비밀번호 2번 입력 후 모두 엔터 입력해주시면 됩니다. 최초 계정에는 비밀번호가 없기 때문에 엔터 후 비밀번호 설정 하신 후 모두 엔터하시면 됩니다. sudo mysql_secure_installation ※ 위 MariaDB 서비스를 시작해야 오류가 발생되지 않음 ※ 위 초기 설정이 안되는 경우 MariaDB가 실행되고 있는지 체크 root 계정 비밀번호 변경 # "Mysql" 접속 sudo /usr/bin/mysql -u root -p

Naver Blog

[Ubuntu] Nginx PHP 접속이 안되고 파일 다운로드 될 경우 조치

설정 파일 수정 첨부파일 default. 파일 다운로드 첨부파일 fastcgi_params. 파일 다운로드 # "Nginx" 설정 파일 수정 sudo vi /etc/nginx/sites-available/default # "location / {" 아래에 추가 "php7.4-fpm.sock" 부분에 버젼 수정 location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; include fastcgi_params; } # "fastcgi_params" 설정 파일 수정 아래 내용으로 교체 sudo vi /etc/nginx/fastcgi_params fastcgi_param QUERY_STRING

Naver Blog

[Ubuntu] MariaDB(Mysql) 완전 삭제하기

완전 삭제하기 # 순서대로 진행하면 됩니다. "Mysql"의 경우 삭제 후 재설치시 구성을 제대로 하지 못하는 부분이 있습니다. sudo apt-get remove --purge mysql* sudo apt-get purge mysql* sudo apt-get autoremove sudo apt-get autoclean sudo apt-get remove dbconfig-mysql sudo apt-get dist-upgrade sudo apt-get install mysql-server # 폴더 삭제 sudo rm -rf /var/log/mysql sudo rm -rf /var/log/mysql.* sudo rm -rf /var/lib/mysql sudo rm -rf /etc/mysql # 다시 한번 삭제 sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-5.7 mysql-client-core-5.7 su

Naver Blog

[Ubuntu] 우분투 18.04 자동 업데이트 끄기

APT 설정 파일 수정 # "10periodic" 파일 수정 sudo vi /etc/apt/apt.conf.d/10periodic APT::Periodic::Update-Package-Lists "0"; APT::Periodic::Download-Upgradeable-Packages "0"; APT::Periodic::AutocleanInterval "0"; APT::Periodic::Unattended-Upgrade "0"; # "20auto-upgrades 파일 수정 sudo vi /etc/apt/apt.conf.d/20auto-upgrades APT::Periodic::Update-Package-Lists "0"; APT::Periodic::Unattended-Upgrade "0"; 기본값 # "10periodic" 파일 기본값 udo vi /etc/apt/apt.conf.d/10periodic APT::Periodic::Update-Package-Lists "1"; APT::

Naver Blog

[Ubuntu] 엘라스틱 서치(ElasticSearch) 설치하기

Elasticsearch 설치하기 # 레포 추가 curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list # 업데이트 sudo apt update # "elasticsearch" 설치 sudo apt install elasticsearch # "elasticsearch" 시작 및 시작등록 sudo systemctl enable elasticsearch sudo systemctl start elasticsearch 외부접속 허용 # 외부접속 허용시에만 진행하면 됩니다. sudo vi /etc/elasticsearch/elasticsearch.yml # 아래 내용을 찾아서 수정

Naver Blog

[Nginx] Ubuntu 18.04 Gzip 활성화

Nginx.conf 설정 파일 수정 # "Nginx.conf" 파일 수정 아래 내용중 "gzip on" 부분을 찾은 후 넣습니다. 내용을 수정하셔도 되고 해당 부분을 삭제하고 아래것을 복사하여 넣어도 됩니다. sudo vi /etc/nginx/nginx.conf # Gzip 활성화 gzip on; # HTTP/1.0 및 HTTP/1.1 모두에 대해 압축을 사용하도록 설정합니다. gzip_http_version 1.1; # 압축 수준(1-9)입니다. # "5"는 크기와 CPU 사용량을 완벽하게 절충하여 다음과 같은 기능을 제공합니다. # 대부분의 아스키 파일(레벨 9와 동일)이 75% 감소합니다. gzip_comp_level 5; # 이미 작고 많이 줄어들 것 같지 않은 것은 압축하지 마세요. # 기본값 20 Byte gzip_min_length 256; # 프록시를 통해 당사에 연결하는 클라이언트도 데이터를 압축합니다. # "Via" 헤더로 식별됩니다(CloudFront 필요) gz

Naver Blog

[MySQL] Ubuntu 18.04 Mysql(MariaDB) 최신 설치 및 업데이트

Mysql(MariaDB) 최신 설치 및 업데이트 # "Mysql(MariaDB)" 최신 업데이트 기존 이전 버젼 설치 되어있어도 업데이트 가능 위에 링크로 접속하여 특정 버젼 및 최신 버젼 입력 (현재 10.5) sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.ubuntu-tw.org/mirror/mariadb/repo/10.5/ubuntu xenial main' # 우분투 업데이트 sudo apt update # "MariaDB" 최신 설치 중간에 기존에 있던 "50-server.cnf" 나오면 "Y" 입력 기존에 있던 파일은 같은 폴더에 "old"로 백업되

Naver Blog

[MySQL] Ubuntu 18.04 Mysql(MariaDB) 설정 및 튜닝(최적화)하기

Mysql(MariaDB) 설정 및 튜닝 50-server.cnf 첨부파일 50-server.cnf 파일 다운로드 # 설정 변경하기 단, 버젼이 낮은 "Mysql"의 경우 "innoDB" 관련된 내용이 없음으로, 업데이트 권장 sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf # [mysql] 바로 아래 입력 접속 "IP"에 대한 "Resolving"을 진행하는데 대부분의 "IP"의 경우 등록되지않아 쓸데없는 리소스를 사용하기 때문에 "skip" 해준다. skip-host-cache skip-name-resolve # 하단 "Fine Tuning" 설정 값 변경 key_buffer_size = 256M max_allowed_packet = 1G thread_stack = 192K thread_cache_size = 8 # This replaces the startup script and checks MyISAM tables if needed # t

Naver Blog

[Ubuntu] 엘라스틱 서치(Elastic Search) analysis-nori plug-in 설치하기

analysis-nori plug-in 설치하기 cd /usr/share/elasticsearch/bin/ sudo ./elasticsearch-plugin install analysis-nori 생성하기 # 테스트 중 사용하지 마세요. curl -X PUT http://localhost:9200/nori_test -H "Content-Type: application/json" -d '{"settings": {"index": {"analysis": {"analyzer": {"korean": {"type": "nori","stopwords": "_korean_"}}}}}}' curl -X PUT http://localhost:9200/nori_test/_settings -H "Content-Type: application/json" -d '{"analysis": {"tokenizer": {"nori_user_dict": {"type": "nori_tokenizer","decompoun

Naver Blog

[VSCODE] 비주얼스튜디오코드(Visual Studio Code) PHP-CS-Fixer 사용하기

설치하기 # 컴포저로 설치하기 composer global require friendsofphp/php-cs-fixer VSCODE 익스텐션 설치 PHP-CS-Fixer # "VSCODE" 설정 파일에 추가 "php.suggest.basic" : false, "[php]" : { "editor.formatOnSave" : true, "editor.defaultFormatter" : "junstyle.php-cs-fixer", }, "php-cs-fixer.executablePath" : "C:/Users/윈도우계정명/AppData/Roaming/Composer/vendor/bin/php-cs-fixer.bat", "php-cs-fixer.executablePathWindows" : "C:/Users/윈도우계정명/AppData/Roaming/Composer/vendor/bin/php-cs-fixer.bat", "php-cs-fixer.onsave" : true, "php-cs-fixe

Naver Blog

[Windows10] PHP 컴포저(Composer) 설치하기

컴포저 설치하기 Composer Download the installer to the current directory Verify the installer SHA-384, which you can also cross-check here Run the installer Remove the installer WARNING: Please do not redistribute the install code. It will change with every version of the installer. Instead, please link to t... getcomposer.org 위 사이트 접속후 상단에 "Composer-Setup.exe" 클릭 후 설치진행 설치되었는데 오류가 뜬다면, 뒤로가기 후 개발자모드(DeveloperMode) 체크 후 진행 설치 완료 후 "CMD" 환경에서 "composer" 입력시 도움말이 표시됨 ※ 만약 마지막 "php.ini" 다음 설치에서 오류가 난다면 이미

Naver Blog

[Windows10] Ubuntu 18.04 레포지토리(apt install) 수정으로 다운로드 속도 높이기 (수정)

레포지토리 주소 변경 파일 수정 sudo vi /etc/apt/sources.list ":" 입력 후 붙여넣기 %s/archive.ubuntu.com/mirror.kakao.com Iwinv(스마일서브) 서버의 경우 (mirror.kakao.com가 훨씬 빠름) %s/maxio.clouds.mirror.kakao.com/mirror.kakao.com 저장 후 업데이트 sudo apt-get update DNS nameserver 변경 sudo rm /etc/resolv.conf sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' sudo bash -c 'echo "[network]" > /etc/wsl.conf' sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf' sudo chattr +i /etc/resolv.conf

Naver Blog

[Laravel] 아티즌(Artisan) 명령어 리스트

※ 라라벨에 설치되어있지 않은 경우 명령어가 안될 수 있음 Available commands 명령어 설명 clear-compiled 컴파일된 클래스 파일 제거 db 새 데이터베이스 CLI 세션 시작 down 애플리케이션을 유지 보수/데모 모드로 전환 env 현재 프레임워크 환경 표시 help 명령에 대한 도움말 표시 inspire 고무적인 인용문 표시 list 명령어 나열 migrate 데이터베이스 마이그레이션 실행 optimize 프레임워크 부트스트랩 파일 캐시 최적화 serve 서버 시작 test 서버 테스트 시작 tnker 애플리케이션과 상호 작용 up 응용 프로그램을 유지 보수 모드에서 해제 auth 명령어 설명 auth:clear-resets 만료된 암호 재설정 토큰 플러시 buyer 명령어 설명 buyer:cancel 구매 영수증 48시간 후 구매 취소 미지급 cache 명령어 설명 cache:clear 응용 프로그램 캐시 플러시 cache:forget 캐시에서 항목 제거

Naver Blog

[Ubuntu] Could not get lock /var/lib/dpkg/lock-frontend 에러 해결

해결방법 # 오류 로그 E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? # 설정 sudo killall apt apt-get sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock* sudo dpkg --configure -a sudo apt update sudo apt -y upgrade

Naver Blog

[숨고] 소프트웨어 개발쪽으로 사용해본 후기(내 돈내고 너 상담)

숨고를 사용해본지 약 3주 정도 되는것 같습니다. 하지만, 계약건은 1개가 될까말까인 상황입니다. (견적도 낮고 요구사항도 많음, 안할 예정) 숨고의 장점이라고 한다면 낮은 접근성 입니다. 실제로 오는 견적들도 기존 유지보수 관련된 부분이라면 어떤 언어로 되어있는지 아무것도 적혀있지 않고(선택하는 목록 자체가 없음) 그리고 내용도 매우 부실합니다. 즉, No Plan No Design Yes Idea 인것이죠 (거의 70 ~ 80%) 그렇다면 제가 활동을 잘 하지 않았냐? 그건 아닙니다. 견적수가 낮은것들과 그나마 위에 데이터들보다도 나은 견적 내용을 보고 견적을 보내고 했습니다. 계약이라는것 자체가 굉장히 낮고 이어지기가 어려운 부분인데 고객과 상담을 할려면 4800캐시? 정도를 내야합니다. 그 사람이 할 생각이 있는지 없는지 모르는 불확실한 상황에서요. 처음 가입하고 이벤트로 3만 캐시를 더 받아서 6만원 결제 했습니다. 총 9만 캐시에서 시작을 했습니다. 현재는 모두 다 소진한

Naver Blog

[CentOS7] ModSecurity: Access denied with code 403 포비든 오류 해결하기 카페24(cafe24)

403 포비든 ModSecurity 해결하기 # 우선 퍼미션을 조정하고, 아파치 및 "SELINUX" 소유권을 줘도 403 포비든 문제가 발생했을때 입니다. 관련 내용으로는 "SSL"의 "ModSecurity"가 문제입니다. # httpd.conf 열기 sudo vi /etc/httpd/conf/httpd.conf # 하단의 내용을 찾아서 추가 만약 없다면 추가 "SecRuleInheritance Off" "SecRuleEngine Off" <Directory /www/html/directory/> SecRuleInheritance Off SecRuleEngine Off </Directory>

Naver Blog

[CentOS7] php ffmpeg 설치하기

[Linux] ffmpeg-php 0.7.0 설치 on Centos 6 ffmpeg-php 0.7.0 설치 on Centos 6 설치 방법 1. 필요 호환성 패키지 설치 rpm --import http://pa... m.blog.naver.com YUM 으로 FFMPEG 설치하기 & FFMPEG-PHP 설치하기 (Centos 6.5) FFMPEG 와 FFMPEG-PHP 를 설치하는데 애를 먹었었다가.. 드디어 해결했다!! (FFMPEG 는 동영상 변환등 많은 기능이 있지만 나 같은 경우는 PHP 에서 동영상을 업로드 할 때 썸네일을 추출및 기타 정보를 가져오기.. overcode.tistory.com

Naver Blog

[PHP] Ubuntu 18.04 PHP 8 설치하기

PHP8 퍼포먼스 관련 테스트 간략 내용 # PHP8의 경우 PHP7.4 대비(OPcache 및 GIT 모두 키더라도) 약 3배 정도 성능이 높습니다. # PHP8은 이번에 넘어오면서 "TTFB"가 굉장히 빨라졌습니다. 패키지 및 레포지토리 업데이트 sudo apt update sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common sudo add-apt-repository ppa:ondrej/php # 업데이트 한번더 실행 sudo apt update PHP8 설치하기 # PHP 8.0 설치 sudo apt install -y php8.0 PHP8 익스텐션 설치 sudo apt install php8.0-<extension> php8.0-amqp php8.0-common php8.0-gd php8.0-ldap php8.0-odbc php8.0-readline php8.

Naver Blog

[Nginx] Ubuntu Nginx 최신버젼 설치

패키치 설치하기 sudo apt install -y curl gnupg2 ca-certificates lsb-release 레포지토리 수정 # 최신 버젼 echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list # 안정화 버젼 echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list # 공식 서명키 등록 curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add - sudo apt-key fingerprint ABF5BD827BD9BF62 Nginx 설치하기 sudo apt update sudo apt i

Naver Blog

[PHP] connect() to unix:/var/run/php/phpfpm.sock failed Permission denied 해결하기

www.conf 수정을 통한 접근 권한 설정 # 각 PHP 버젼에 맞게 이동 cd /etc/php/8.0/fpm/pool.d # www.conf 파일 수정 sudo vi www.conf # 아래 내용을 찾음 www-data는 아파치 nginx는 nignx로 설정 listen.onwer = www.data listen.group = www.data # 필자는 "nginx"를 사용하기 때문에 아래 처럼 변경 listen.onwer = nginx listen.group = nginx # 재시작 PHP는 버젼에 맞게 실행 sudo service php8.0-fpm restart sudo service nginx restart

Naver Blog

[Vanilla] 자바스크립트(JavaScript) Array Ops의 성능(번역)

미디엄은 최근 ES6에서 어레이를 중복제거하기 위한 다양한 접근 방식에 대한 사만다 밍의 이 기사를 다루었습니다. 어레이에서 중복을 제거하는 작업은 기본 엔진이 대용량 데이터 세트를 전송하는 방법을 처리하는 일반적인 작업입니다. 솔루션을 벤치마킹하는 것은 많은 목록을 처리해야 할 때 좋은 조언입니다. 얼마 전 대형 어레이와 유사한 문제를 해결해야 했고 새로운 지혜와 비교했을 때 제 솔루션이 어떻게 비교되는지 알고 싶어졌습니다. 한 시간 후, 결과가 나왔습니다: 저는 깜짝 놀랐습니다. 아마 당신도 그럴 거예요. 7백만 멤버의 배열에 대한 벤치마크는 밀리초 단위입니다. .filter()를 사용 간단히 말해 어레이를 사용합니다.필터링하여 배열을 반복하고 배열에 있는 요소의 첫 번째 항목만 선택합니다. 이는 가장 직관적이지 않지만 모든 플랫폼에서 성능 가격을 받습니다. set() 사용 이 접근 방식은 ES6에서 새로 사용할 수 있는 Set 객체를 사용합니다. 집합에는 중복된 구성원이 없는

Naver Blog

[Windows10] 비주얼스튜디오코드(VSCODE) WSL 퍼미션 해결하기

VSCODE 설정 변경 단축키 "CTRL" + "," 연후 오른쪽 상단 설정 열기(JSON) 클릭하여 추가 ※ "WSL2"에서 해결된다고 함 "remote.WSL.fileWatcher.polling" : true, 참고 링크 VS CODE에서 npm install 시 EACCESS 권한 오류 발생 해결방법이 잘 정리가 되어 있네요. lahuman.github.io

Naver Blog

[Node.js] NPM yarn 설치하기

npm yarn 설치하기 npm 설치 npm install -g yarn yarn 버젼 확인 yarn --version

Naver Blog

[PHP] 컴포저(composer) ErrorException: Method ReflectionParameter::getClass() is deprecated in 오류 해결하기

composer.json 수정하기 # 하단 내용을 버젼을 명시 및 추가 후 저장 "php": "^7.4|^8.0" # 컴포저 업데이트 composer update

Naver Blog

[Node.js] Let's Encrypt ./letsencrypt-auto has insecure permissions! 오류 해결하기

오류 내용 cd /usr/local/bin 루트에서 letencrypt 깃 클론 후 다시 해주면 됩니다. Requesting to rerun ./letsencrypt-auto with root privileges... Skipping bootstrap because certbot-auto is deprecated on this system. ./letsencrypt-auto has insecure permissions! To learn how to fix them, visit https://community.letsencrypt.org/t/certbot-auto-deployment-best-practices/91979/ Your system is not supported by certbot-auto anymore. Certbot cannot be installed. Please visit https://certbot.eff.org/ to check for other alternati

Naver Blog

[Ubuntu] 18.04 Tmux 설치 및 실행하기

Tmux 설치하기 sudo apt install tmux Tmux 실행하기 구분 명령어 설명 기본 tmux 실행하기 tmux attach -t 0 SSH 종료 후에도 실행 유지 CTRL + B 명령어 모드 실행 CTRL + D 나가기 화면(PANE) % 화면 가로 분할 " 화면 세로 분할 상하좌우 방향키 화면 이동 { 화면 위치 이전 자리 위치로 } 화면 위치 다음 자리 위치로 x 해당 작업중인 화면 닫기 PgUp/pgDn 화면 스크롤 (완료 후 q로 스크롤 모드 닫기) 창(WINDOW) c 신규 창 생성 w 창 선택하여 이동 p 이전 창 이동 0 ~ 9 번호별 창 이동 & 창 종료 세션 관련 tmux new -s [session_name] [session_name]의 세션으로 tmux 실행 d tmux 세션을 백그라운드로 돌리기 tmux ls tmux 세션 리스트 보기 tmux attach -t [session_name] [session_name]의 세션으로 다시 전환 $ 세션 이

Naver Blog

[PHP] ob_start() 출력 버퍼 사용하기

출력 버퍼 사용하기 구분 설명 flush() PHP가 사용하는 백엔드(CGI, 웹 서버 등)에 관계 없이 PHP의 출력 버퍼를 비웁니다. 이는 사실상 모든 출력을 사용자 브라우저에 보냅니다. flush()는 웹 서버나 클라이언트 브라우저의 버퍼링 방식에는 영향을 주지 않습니다. 그러므로 출력 버퍼를 비우려면 ob_flush()와 flush()를 모두 호출해야 합니다. 몇몇 서버들은, 특히 Win32에서, 스크립트가 종료할 때까지 결과를 브라우저에 전송하지 않고 버퍼를 지속합니다. 아파치 mod_gzip 등의 서버 모듈은 자신의 버퍼를 가지고 있기에, flush()는 데이터를 클라이언트에 즉시 전송할 수 없습니다. 브라우저도 표시하기 전에 입력을 받아들이는 버퍼를 가질 수 있습니다. 예를 들어, 넷스케이프는 줄이 끝나거나 태그가 시작할때까지 텍스트를 버퍼에 보관하고, 표는 </table>가 나올때까지 표시를 하지 않습니다. 마이크로소프트 Internet Explorer의 몇몇 버전은

1 2 3 4 5 6 7 8