본문 바로가기

Laravel DatabaseMigrations, DatabaseTransactions DatabaseMigrations 각각의 테스트를 실행하기 전에 DB tables들을 migrate 한다. 각각 테스트가 끝난 후에는 추가되었던 데이터를 지운다.
git user.name user.email 변경하기 filter-branch 명령어 작성 전에 프로젝트의 최상위 폴더로 올라 가야 한다. OLD_EMAIL="your-old-email@example.com" // 사라져야 할 이메일 입력 CORRECT_NAME="Your Correct Name" // 작성되어야 할 이름 입력 CORRECT_EMAIL="your-correct-email@example.com" // 작성되어야 할 이메일 입력 이후 나오는 명령어로 origin에 강제 push https://help.github.com/en/github/using-git/changing-author-info Changing author info - GitHub Help GitHub.com Using Git Using advanced Git commands Changing author ..
클린 코드 function structure 2 4. Temporal Coupling 함수들이 순서를 지키며 호출되어야 한다. passing a block. 파일을 open할 때 close하지 않는 경우가 있으면 메모리 누수가 발생할 수 있는데 open, 파일 사용, close를 클래스로 만들어 접근하게 한다. 5. CQS side effect를 관리하는 좋은 방법 command 시스템의 상태 변경 가능, side effect를 갖는다. 아무 것도 반환하지 않는다. query side effect가 없다. 계산값이나 시스템의 상태를 반환 CQS 정의. Command Query Separation 상태를 변경하는 함수는 값을 반환하면 안된다. 값을 반환하는 함수는 상태를 변경하면 안된다. // user를 사용하려면 로그인을 해야함. // 로그인을 하면 ..
클린 코드 function structure 1. Arguments 인자가 많아지면 복잡도 증가 3개의 인자가 최대 외우기 어렵다 start, end를 range로 추상화 생성자에 많은 수의 인자를 넘겨야 한다면 빌더 클래스에 required, optional 인자를 작성한다. 빌더의 생성자는 required 인자를 받아서 생성하고 나머지는 setter에서 생성한다. Boolean 인자 사용 금지 true인 경우를 위한 일 false인 경우를 위한 일 2개의 함수로 분리 Innies not Outies 함수로 전달된 인자는 변경되어 return되면 안된다. 인자는 지역 변수로 받고 그 지역 변수를 변경해야 한다. the null defense null을 전달/기대하는 함수는 boolean을 전달하는 만큼 잘못된 것 null인 경우의 행위 + nul..
클린 코드 function 2 함수 이름을 잘 짓고 함수를 작게 만들면 모든 사람의 시간을 절약해준다. 함수를 여러 클래스에 잘 분배하려면 함수를 작게 만들어야 한다. 함수에 기능을 넣고 이후에 의미 있는 함수 이름을 생각한다. 함수가 한 가지 일만 하는 지 확신할 수 있는 방법 : extract till you drop 출처 https://www.youtube.com/watch?v=yd2xcVn_pAc&list=PLuLb6MC4SOvXCRePHrb4e-EYadjZ9KHyH&index=4
클린 코드 function 1. 원칙 함수는 1가지 일만 해야 한다. 함수 크기 80년대 터미널의 한 화면은 24줄, 80 column을 볼 수 있었다. 이중 4줄은 에디터가 사용. 함수는 20줄 이내여야 했다. 요즘엔 모니터가 크다. 들여쓰기, while, 중첩 if가 없어야 한다. 주석 대신 잘 서술된 긴 함수명, 작고 많은 함수들 2. 함수의 첫번째 규칙 더 이상 작아질 수 없을 만큼 작아야 한다. 큰 함수를 보면 클래스로 추출할 생각을 해야 한다. 클래스는 일련의 변수들에 동작하는 기능의 집합 -> 함수도 비슷하므로 큰 함수는 클래스로 추출할 수 있다. 중복되는 라인을 메서드로 추출하되 라인 상에서 일부가 다른 경우 변수로 뽑아낸다. 4. 개선 읽기 쉬워지고 이해하기 쉬워지고 함수가 자신의 의도를 잘 전달한다(이름만 봐도 ..
클린 코드 OOP 2 절차 지향 방식 stop watch 시작 시간 구하고 -> 어떤 동작을 수행하고 -> 끝나는 시간 구하고 -> 경과 시간 구한다. 밀리 초가 아닌 나노 초를 구한다고 할 때 변수 명과 메서드 명이 모두 변경되어야 한다. 절차 지향의 한계 : 요구사항 변경이 데이터 구조 변경을 유발 객체 지향 방식 값을 직접 사용하는 게 아니라 stopWatch 인스턴스의 start() 메서드를 호출한다. 시작, 끝 시간을 구하는 메서드 명은 변경되지 않고 경과 시간을 구하는 메서드 명(밀리 초에서 나노 초)만 추가해주면 된다. interface를 준수하고 추상화를 잘 하면 클라이언트 영향을 최소화할 수 있다. 상속을 통한 재사용 및 추가 기능을 통한 확장 1. 서브 클래스는 수퍼 클래스의 기능을 재사용. 추가적인 기능 ..
라라벨 설치 Laravel install Install Download composer first https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; ..