[번역] 아무도 말하지 않는 PHP의 좋은 점

원문은 Good thing in PHP nobody talks about이다. [ ] 안의 말은 이해에 도움이 되라고 내가 넣은 것이다. (gnoownow10님이 감수해 주셨습니다.) PHP에서 내가 좋아하는 점이 뭘까? PHP는 실행후 죽도록 설계...

PHP

Upsource IntelliJ에 연동하는 방법

우산, Upsource는 Jetbrains 에서 개발한 Code Review Tool 이다.Jetbrains 계일인 IntelliJ 에 호환도 잘돼서 Code Review 할때 굉장히 편하다.1. [Prefereneces] - Plugins 로 들어간다음 Upsource 로 검색 해서...

Helloworld! codereview IntelliJ jetbrain Review tool upsoruce 리뷰 업소스 인텔리제이 코드리뷰

PHP 객체의 복제 특성

PHP 객체를 다른 변수에 할당(대입)하면, 객체 자체가 메모리 복제되어 새로운 변수에 할당되는 것이 아니라, 원본 객체가 담긴 메모리 번지만 참조됩니다(Like Pointer in C language). $foo와 $foo2은 Foo 클...

PHP learn-n-think

라라벨의 의존성 주입 컨테이너

Laravel 의 제어의 역전(Inversion of Control) / 의존성 주입 (Dependency Injection) 컨테이너는 매우 강력한 기능입니다. 안타깝게도, 라라벨의 공식 문서는 이 기능의 모든 면을 설명하고 있지 않습니다. 그런...

PHP Laravel

IntelliJ 에서 저장할 때마다 eslint 적용하는 방법

1. 매크로 설정을 IntelliJ 에 적용한다.복사할 경로 : ~/Library/Preferences/IntelliJIdea2018.2(사용중인 IntelliJ 버전에 따라 다름)/options/ 파일명 : macros.xml 2. 완료후...

Helloworld! Auto Save eslint IntelliJ lint fix lunt macro Save 매크로

[번역] 아무도 말하지 않는 PHP의 좋은 점

원문은 Good thing in PHP nobody talks about이다. [ ] 안의 말은 이해에 도움이 되라고 내가 넣은 것이다. (gnoownow10님이 감수해 주셨습니다.) PHP에서 내가 좋아하는 점이 뭘까? PHP는 실행후 죽도록 설계...

PHP

PHP 객체의 복제 특성

PHP 객체를 다른 변수에 할당(대입)하면, 객체 자체가 메모리 복제되어 새로운 변수에 할당되는 것이 아니라, 원본 객체가 담긴 메모리 번지만 참조됩니다(Like Pointer in C language). $foo와 $foo2은 Foo 클...

PHP learn-n-think

라라벨의 의존성 주입 컨테이너

Laravel 의 제어의 역전(Inversion of Control) / 의존성 주입 (Dependency Injection) 컨테이너는 매우 강력한 기능입니다. 안타깝게도, 라라벨의 공식 문서는 이 기능의 모든 면을 설명하고 있지 않습니다. 그런...

PHP Laravel

PHP로 원격 호스트에 CLI 커맨드 실행법

원격 호스트에 명령을 실행하기 위해서는 우선 SSH 키를 통한 연결이 필요합니다. SSH 키를 연결하는 방법은 오픈튜토리얼스의 강좌 참고하시면 됩니다. 우선 SSH 라이브러리를 좀 더 편리하기 쓰기 위해 랩퍼를 하...

비분류 PHP SSH

Laravel, 로그 기록 레벨 설정하기

개발시엔 debug 레벨로 메시지를 봐야겠지만, 제품으로 내보냈을 때는 warning 레벨 정도로 로그를 기록하는 편이 좋을 것이다. var_dump() 안 쓰고 Log::debug() 쓰는 큰 이유중 하나 아닌가. 라라벨은 PSR-31 표...

PHP Laravel

라라벨의 의존성 주입 컨테이너

Laravel 의 제어의 역전(Inversion of Control) / 의존성 주입 (Dependency Injection) 컨테이너는 매우 강력한 기능입니다. 안타깝게도, 라라벨의 공식 문서는 이 기능의 모든 면을 설명하고 있지 않습니다. 그런...

PHP Laravel

라라벨의 엘로퀀트 ORM에서 값 객체 사용하기

이 포스트에서는 엘로퀀트 모델에서 값 객체(Value Object)를 사용하는 몇 가지 방법을 고객 모델을 예제로 설명합니다. 변경자와 접근자(Attribute Mutator & Accessor)를 이용하는 방법 LOB(Large Object)를...

Laravel OOP DDD work-n-play

Laravel, 로그 기록 레벨 설정하기

개발시엔 debug 레벨로 메시지를 봐야겠지만, 제품으로 내보냈을 때는 warning 레벨 정도로 로그를 기록하는 편이 좋을 것이다. var_dump() 안 쓰고 Log::debug() 쓰는 큰 이유중 하나 아닌가. 라라벨은 PSR-31 표...

PHP Laravel

라라벨 ApplicationContext 컨테이너 구현

사전에서 context(컨텍스트)를 찾아보면 어떤 사건이 발생했을 때의 주변 상황 정도로 설명하고 있습니다. 컴퓨터 소프트웨어에서도 컨텍스트 스위칭, 로그 컨텍스트, 애플리케이션 컨텍스트 등 컨텍스트라는 단어를...

Laravel 개발자 work-n-play

라라벨의 엘로퀀트 ORM에서 값 객체 사용하기 2부

지난 포스트에 이어서, 이번 포스트에서 두번째 세번째 방법을 설명합니다. 변경자와 접근자(Attribute Mutator & Accessor)를 이용하는 방법 LOB(Large Object)를 이용하는 방법 참조(외래키)를 이용하는...

Laravel OOP DDD work-n-play

[JavaScript] 16진수와 10진수, 8진수, 2진수 변환하기 - toString, parseInt

정수 9(10진수)를 2진수로 변환하면 1001 이다. 이렇게 10진수를 2진수로 변환할 땐 다음과 같다. let dec = 9; let hex = dec.toString(2); 이처럼 10진수를 2진수로 변환할 땐 toString 함수를 사용하면 된다. 10...

Javascript & jQuery 10진수 16진수 2진수 8진수 javascript js PARSEINT tostring 변환

[JavaScript] 배열 요수 중 최대값, 최소값 구하기 - reduce 함수 활용

다음과 같이 배열 안에 여러 숫자 요소가 있을 때, const array = [1, 6, , 7, 16, 22, 32, 34]; 최대값과 최소값을 구할 때 reduce 함수를 사용하면 쉽다. // 최대값 구하기 var max = array.reduce((previous, c...

Javascript & jQuery array javascript js MAX MIN PURE reduce 배열 최대값 최소값

[Vue.js] Vue 인스턴스 라이프 사이클

Vue 인스턴스는 객체로 생성되고, 데이터에 대한 watch 기능을 설정하는 등 작업을 위해 초기화를 수행한다. 그리고 이 과정에서 다양한 라이프 사이클 훅 메서드를 적용할 수 있다. 라이프 사이클 훅 설명   befor...

Vue.js beforeCreate beforeDestory beforeMount beforeUpdate create destory LifeCycle Mounted Update vue vuejs 라이프사이클

[Vue.js] vue-cli

vue-cli 는 커맨드라인 인터페이스 기반의 스캐폴딩 도구.  scaffolding: 원래는 '공사장 등에서 사용하는 임시 가설물'이라는 뜻. 개발할 때 처음부터 개발하는 것이 아니라 기본적인 인터페이스와 틀을 제공. 개발...

Vue.js browserify browserify-simple CLI PWA template vue vue list vue-cli vueify vuejs webpack webpack-simple

[AngularJS] One time binding

Angular 에서 View 와 Component 에서 발생한 데이터의 변경 사항을 자동으로 일치시키는 기능을 제공하는데, 이를 Data Binding (데이터 바인딩) 이라고 한다. 그리고 Angular 의 데이터바인딩 방법에는 크게 두 종...

angular binding component data data binding Interpolation js One time binding One-Way Data Binding Two-Way Data Binding 단방향 데이터 데이터 바인딩 바인딩 앵귤러 양방향

Upsource IntelliJ에 연동하는 방법

우산, Upsource는 Jetbrains 에서 개발한 Code Review Tool 이다.Jetbrains 계일인 IntelliJ 에 호환도 잘돼서 Code Review 할때 굉장히 편하다.1. [Prefereneces] - Plugins 로 들어간다음 Upsource 로 검색 해서...

Helloworld! codereview IntelliJ jetbrain Review tool upsoruce 리뷰 업소스 인텔리제이 코드리뷰

[Algorithm] Codility Lesson 2-1

A non-empty array A consisting of N integers is given. The array contains an odd number of elements, and each element of the array can be paired with another element that has the same value, except fo...

Design Pattern & Algorithm algorithm codility indexOf lesson Push Quick quick sort quick 정렬 sort Splice XOR 알고리즘 코딜리티 퀵정렬

[Algorithm] Codility Lesson 1

재직중인 회사에서도 채용 시 코딩테스트로 쓴다고 해서 들어 봤는데 기출 문제도 있는지 몰랐다가 우연히 알게되서 Codlility Lesson 을 통해 알고리즘 공부를 하고 있다.하나씩 풀다보면 와, 참 이 함수를 이렇게...

Design Pattern & Algorithm algorithm codility lesson 기출문제 알고리즘 코딜리티

[JavaScript] 16진수와 10진수, 8진수, 2진수 변환하기 - toString, parseInt

정수 9(10진수)를 2진수로 변환하면 1001 이다. 이렇게 10진수를 2진수로 변환할 땐 다음과 같다. let dec = 9; let hex = dec.toString(2); 이처럼 10진수를 2진수로 변환할 땐 toString 함수를 사용하면 된다. 10...

Javascript & jQuery 10진수 16진수 2진수 8진수 javascript js PARSEINT tostring 변환

[JavaScript] 배열 요수 중 최대값, 최소값 구하기 - reduce 함수 활용

다음과 같이 배열 안에 여러 숫자 요소가 있을 때, const array = [1, 6, , 7, 16, 22, 32, 34]; 최대값과 최소값을 구할 때 reduce 함수를 사용하면 쉽다. // 최대값 구하기 var max = array.reduce((previous, c...

Javascript & jQuery array javascript js MAX MIN PURE reduce 배열 최대값 최소값

PHP 객체의 복제 특성

PHP 객체를 다른 변수에 할당(대입)하면, 객체 자체가 메모리 복제되어 새로운 변수에 할당되는 것이 아니라, 원본 객체가 담긴 메모리 번지만 참조됩니다(Like Pointer in C language). $foo와 $foo2은 Foo 클...

PHP learn-n-think

PHP 프로젝트에 Swagger 적용 #1

PHP 기반 API 서버 프로젝트에 스웨거(Swagger)를 적용할 수 있을까? 예, 적용할 수 있습니다. 예제를 짜서 검증했습니다. • • • 이 포스트를 쓰기 위한 예제를 진행하면서 스웨거가 해결하고자 했던 문제점을...

Swagger API PHP work-n-play learn-n-think

PHP로 원격 호스트에 CLI 커맨드 실행법

원격 호스트에 명령을 실행하기 위해서는 우선 SSH 키를 통한 연결이 필요합니다. SSH 키를 연결하는 방법은 오픈튜토리얼스의 강좌 참고하시면 됩니다. 우선 SSH 라이브러리를 좀 더 편리하기 쓰기 위해 랩퍼를 하...

비분류 PHP SSH

[책] 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서

프로그래밍을 배우는 방법은 다양합니다. 어떤 사람은 책으로, 또 다른 이는 동영상 강의로, 운이 좋은 사람들은 학교에서 전공으로 배우기도 합니다. 배우는 것 또한 다양합니다. 각종 프로그래밍 언어를 배우기도...

비분류 PHP 개발자 신입

PHP 배열 세가지: Array, SplFixedArray, Judy Array

PHP를 사용하면서 배열(Array)를 사용하지 않는 경우란 매우 드물겁니다. 배열(Array)와 사전(Dictionary)로 구별하는 Perl이나 Python과 달리 둘이 합쳐진 모양새를 가진 PHP 배열(이하 Array)은 PHP로 프로그래밍...

비분류 array judy PHP spl splfixedarray 배열

라라벨 ApplicationContext 컨테이너 구현

사전에서 context(컨텍스트)를 찾아보면 어떤 사건이 발생했을 때의 주변 상황 정도로 설명하고 있습니다. 컴퓨터 소프트웨어에서도 컨텍스트 스위칭, 로그 컨텍스트, 애플리케이션 컨텍스트 등 컨텍스트라는 단어를...

Laravel 개발자 work-n-play

라라벨의 의존성 주입 컨테이너

Laravel 의 제어의 역전(Inversion of Control) / 의존성 주입 (Dependency Injection) 컨테이너는 매우 강력한 기능입니다. 안타깝게도, 라라벨의 공식 문서는 이 기능의 모든 면을 설명하고 있지 않습니다. 그런...

PHP Laravel

Laravel, 로그 기록 레벨 설정하기

개발시엔 debug 레벨로 메시지를 봐야겠지만, 제품으로 내보냈을 때는 warning 레벨 정도로 로그를 기록하는 편이 좋을 것이다. var_dump() 안 쓰고 Log::debug() 쓰는 큰 이유중 하나 아닌가. 라라벨은 PSR-31 표...

PHP Laravel

[ Laravel ] Laravel 5.6 에서 변경되는 사항

Laravel 의 새로운 major 버전인 5.6 버전이 한국시간 2018-02-08 새벽 0시 36분에 Release 되었습니다. 이번 버전에는 어떠한 변경사항들이 있는지 살펴보도록 하겠습니다. 모든 변경사항은 changelog(Github) 를...

Laravel Laravel 5.6 PHP

[ Docker ] Laradock 프로젝트를 이용하여 Laravel 로컬 개발 환경 구축

이 글은 Docker와 docker-compose를 알고 있다는 전제하에 설명을 하고 있습니다.Docker 가 생소하다면 여기 김충섭 님의 글을 먼저 읽어 보시길 추천합니다.Docker 는 리눅스 컨테이너 기반의 오픈소스 가상화 플랫...

Laravel Docker laradock

npm install 시 .npm/_cacache/tmp/git-clone permission denied 문제 발생

아래 명령들을 각각 시도해보았다.$ chown -R $(whoami) ~/.npm$ npm install --cache /tmp/empty-cache$ npm i --unsafe-perm$ npm i --unsafe-perm --cache /tmp/empty-cache위 명령들로도 해결이 안되는 경우가...

NodeJS NPM yarn

코드이그나이터 - 데이터베이스 쿼리의 값을 이스케이프 시키기

☞ 이스케이프 문자와 인젝션 우리가 알고 있는 이스케이프 문자는 \(백슬래시) 로 시작되는 문자이며, 이스케이프는 PHP 나 기타 프로그래밍시 문자열에 대한 제어를 할 수 있는데 이러한 이스케이프 문자열중 자주...

코드이그나이터 CI Codeiginter Database db dreamload escape 데이터베이스 이스케이프

코드이그나이터 - Encryption (암호화) 클래스

☞ 암호화 클래스란? 암호화 클래스란, PHP 에서 처리되는 데이터를 암호화시켜주는 클래스이다. PHP 에서 제공되는 MD5 또는 SHA1 처럼 생각할 수 있으나, CI에서 암호화클래스는 이런 암호화 뿐만 아니라 이보다 더...

코드이그나이터 CI Codeiginter dreamload Encryption 암호화

코드이그나이터 - Email 클래스의 이해와 환경설정

☞ Email 클래스란? CI 에서 Email 클래스란 말그대로 이메일을 보낼 수 있도록 이메일에 대한 함수들이 담긴 클래스 이다. 여기서 중요한점은 CI 에서는 정말 간단한 설정과 코딩으로 보낼 수 있다는 점이다. 나같은...

코드이그나이터 CI CodeIgniter dreamload email 환경설정

코드이그나이터 - 코어(Core) 시스템 클래스 대체와 확장

☞ 코어(Core) 시스템 클래스 란? 코어 시스템 클래스는 코드이그나이터에서 CI 가 작동될때마다, 자동으로 초기화 되어, 사용자가 로드하지 않아도, 작동되는 클래스를 뜻한다. 한가지 쉬운 예를 들면, URI 클래스를...

코드이그나이터 CI CodeIgniter CORE dreamload 코어 코어 시스템 클래스

Upsource IntelliJ에 연동하는 방법

우산, Upsource는 Jetbrains 에서 개발한 Code Review Tool 이다.Jetbrains 계일인 IntelliJ 에 호환도 잘돼서 Code Review 할때 굉장히 편하다.1. [Prefereneces] - Plugins 로 들어간다음 Upsource 로 검색 해서...

Helloworld! codereview IntelliJ jetbrain Review tool upsoruce 리뷰 업소스 인텔리제이 코드리뷰

IntelliJ 에서 저장할 때마다 eslint 적용하는 방법

1. 매크로 설정을 IntelliJ 에 적용한다.복사할 경로 : ~/Library/Preferences/IntelliJIdea2018.2(사용중인 IntelliJ 버전에 따라 다름)/options/ 파일명 : macros.xml 2. 완료후...

Helloworld! Auto Save eslint IntelliJ lint fix lunt macro Save 매크로

PHPStorm Terminal 을 git bash 로 교체하기

Windows 에서 PHPStorm 의 터미널은 당연한 얘기겠지만, 명령프롬프트가 실행됩니다. 이를 git 설치시 함께 배포되는 bash로 변경해봅니다. 설정(Ctrl + Alt + S) 에서 Tools > Terminal 로 들어갑니다. 그리고 아래...

언어 - PHP bash Git PhpStorm terminal

[ Jetbrains ] WebStorm / PHPStorm / Intellij 버벅거릴때 성능(속도) 향상 시키기

최근 사무PC를 변경하여 PhpStorm을 새로 설치하였는데, Docker 컨테이너를 띄우니 버벅거리는 현상이 발생하였습니다.?? PC 사양이 안좋나? 하고 생각하던 찰나 Jetbrains IDE가 JVM에서 작동하다보니 JVM 관련 설...

개발이야기 IntelliJ PhpStorm webstorm

[JavaScript] 16진수와 10진수, 8진수, 2진수 변환하기 - toString, parseInt

정수 9(10진수)를 2진수로 변환하면 1001 이다. 이렇게 10진수를 2진수로 변환할 땐 다음과 같다. let dec = 9; let hex = dec.toString(2); 이처럼 10진수를 2진수로 변환할 땐 toString 함수를 사용하면 된다. 10...

Javascript & jQuery 10진수 16진수 2진수 8진수 javascript js PARSEINT tostring 변환

[JavaScript] 배열 요수 중 최대값, 최소값 구하기 - reduce 함수 활용

다음과 같이 배열 안에 여러 숫자 요소가 있을 때, const array = [1, 6, , 7, 16, 22, 32, 34]; 최대값과 최소값을 구할 때 reduce 함수를 사용하면 쉽다. // 최대값 구하기 var max = array.reduce((previous, c...

Javascript & jQuery array javascript js MAX MIN PURE reduce 배열 최대값 최소값

[Vue.js] Vue 인스턴스 라이프 사이클

Vue 인스턴스는 객체로 생성되고, 데이터에 대한 watch 기능을 설정하는 등 작업을 위해 초기화를 수행한다. 그리고 이 과정에서 다양한 라이프 사이클 훅 메서드를 적용할 수 있다. 라이프 사이클 훅 설명   befor...

Vue.js beforeCreate beforeDestory beforeMount beforeUpdate create destory LifeCycle Mounted Update vue vuejs 라이프사이클

[Vue.js] vue-cli

vue-cli 는 커맨드라인 인터페이스 기반의 스캐폴딩 도구.  scaffolding: 원래는 '공사장 등에서 사용하는 임시 가설물'이라는 뜻. 개발할 때 처음부터 개발하는 것이 아니라 기본적인 인터페이스와 틀을 제공. 개발...

Vue.js browserify browserify-simple CLI PWA template vue vue list vue-cli vueify vuejs webpack webpack-simple

[AngularJS] One time binding

Angular 에서 View 와 Component 에서 발생한 데이터의 변경 사항을 자동으로 일치시키는 기능을 제공하는데, 이를 Data Binding (데이터 바인딩) 이라고 한다. 그리고 Angular 의 데이터바인딩 방법에는 크게 두 종...

angular binding component data data binding Interpolation js One time binding One-Way Data Binding Two-Way Data Binding 단방향 데이터 데이터 바인딩 바인딩 앵귤러 양방향