전체 글

· PHP/Laravel
라라벨 애플리케이션은 아파치 .htaccess 파일이나 Nginx의 서버 설정 같은 웹 서버의 설정을 가지고 있는데 이 설정은 url에 상관없이 모든 앱의 요청을 가로채서 public/index.php로 보냅니다. 즉 모든 요청에 대한 시작점은 pulbic/index.php 입니다. Public/index.php 의 주요 주요 기능 모든 의존성을 등록해주는 컴포저 오토로드 파일을 불러옵니다. require __DIR__.'/../vendor/autoload.php'; 애플리케이션의 컨테이너를 만들어주고 핵심 서비스를 등록해줍니다, 또한 커널 인스턴스를 만들어 사용자의 보내는 Request 객체의 인스턴스를 만들어 커널로 넘기고 커널은 일루네이트 Response 객체를 클라이언트(주로 브라우저)에 반환하고..
· PHP/Laravel
회사에서 프로젝트를 하던 와중 mysql 버전이 맞지 않는 일이 생겼습니다. 분명 저도 똑같은 release 버전으로 설치했는데 말이죠, 이유를 찾아보니 다음과 같았습니다. 사진을 보면 virtualbox의 버전이 10.0.0인 것을 알 수 있습니다. 10 버전부터는 MySQL의 버전이 5.7이 기본 설치가 안되며, 8부터 설치가 된다고 합니다. 즉 저희는 10 버전을 삭제하면 된다는 것입니다. 삭제법은 간단합니다 사용자 폴더 밑에 .vagrant.d 파일이 있을 것입니다 예시 : C:\C:\Users\me\.vagrant.d 파일 안에는 다음과 같이 boxes 폴더가 또 있을 것입니다. boxes 폴더로 이동하고 첫 번째의 laravel-어쩌고를 들어가시면 됩니다. vagrant box list 했을 ..
· PHP/Laravel
phpstorm에 우측 상단을 보시면 Database 버튼이 보이실 겁니다. 클릭하시면 왼쪽과 같이 탭 하나가 펼쳐집니다. 왼쪽 상단에 + 버튼을 누르시면 창이 하나가 생기고 거기서 Data Source를 클릭하시고 원하시는 데이터베이스를 선택하시면 됩니다 저는 mysql을 기준으로 삼겠습니다. 그러면 다음과 같이 DB의 정보를 기입하는 창이 나옵니다. General 탭에서 Homestead의 ip인 192.168.10.10을 입력한 후 포트는 3306으로 나두신 다음에 사용자 정보를 바꾸지 않았다는 가정하에 기본인 Homestead/secret 을 입력하시면 됩니다. 이제 Database의 명칭만 기입하시고 Test Connection을 하셔서 확인한 후 적용하시면 됩니다.
· PHP/Laravel
라라벨 6 버전에서 다음 방법을 통해 지역화를 한글로 시도했습니다. github.com/Laravel-Lang/lang Laravel-Lang/lang List of 76 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream and Laravel Fortify. - Laravel-Lang/lang github.com 그러나 제대로 따라 했음에도 사이트는 바뀌지 않더군요 알고 보니 bootstrap/cache의 폴더의 파일들이 언어를 바꾸기 전의 데이터를 지니고 있더군요 /bootstrap/cache/packages.php /bootstrap/cache/services.php /bootstrap/cache/config.php 위 파일들을 ..
· PHP/Error
라라벨 세팅 중 다음과 같은 에러가 발생했습니다. 구글링을 통해 알아낸 원인은 환경 변수의 한글 인코딩 문제였습니다. (생각보다 사용자 폴더 명이 한글이어서 생기는 문제가 많더군요.) 해결법은 간단하게 원으로 언급했던 환경 변수 경로 설정에서 한글이 없으면 될 거라 생각했습니다. 하지만 한글 경로를 수정해도 여전히 안됐습니다. 저는 혹시 Git bash에 경로 상에 제 이름이 한글로 나오는 게 보여 저거와 관련 있어서 Git bash로는 안될까 싶어 cmd로 실행하니 정상적으로 실행되었습니다. 아무래도 Git Bash의 설정값이 내 PC의 한글 경로와 겹치거나 혹은 비슷한 이유로 안됐던 것이라 추측해봅니다.
· PHP/Laravel
Laravel Laravel은 PHP를 기반으로 하는 웹 개발 프레임워크입니다. 프레임워크는 대부분 일정한 틀을 지니며, 부품을 가지고 다양한 형태의 결과물을 만들어낸다고들 합니다. (문법을 지닌 프로그래밍 언어 위에서 만들어져 한 발자국 더 구속된 형태(틀)라 보시면 됩니다.) 라라벨의 장점으로는 - 기존의 중구난방이던 php의 mvc 모델을 일관성 있게 만들어줍니다. - Blade 템플릿 엔진을 지원해줍니다. (Blade란 php와 html의 적절한 하모니) - DB 작업을 위해 Eloquent ORM을 지원합니다, 덕분에 쉽고 빠른 DB 작업이 가능합니다. - 프레임워크이기에 기본적인 보안 사항들이 적용되어있습니다. (CSRF, SQL 인젝션 등등) Vagrant Vagrant 홈페이지의 슬러그인 ..
· MySQL
1. 뷰란 MySQL 버전 5 이상부터 가능한 특정 명령문에 매칭된 가상 테이블입니다. SELECT, WEHRE, Sub Query, UNION, JOIN 등 다양한 결합과 조건으로 만들어진 데이터를 뷰를 통해 가상 테이블을 만들어 편리하고 빠르게 데이터를 액세스 할 수 있습니다. 특징 - 실제로 데이터를 저장하지 않고 오직 보여주는데 중점을 둔 기능입니다. - 뷰의 기반 테이블의 데이터를 수정할 경우 뷰에도 반영됩니다. - 뷰의 데이터를 수정할 경우 실제 데이터도 같이 바뀝니다. - 뷰로 생성된 가상 테이블에도 데이터를 삽입할 수 있습니다, 하지만 JOIN, UNION, Sub Query 등으로 만들어진 뷰에서는 데이터를 삽입할 수 없습니다, 하지만 그 외 뷰에서는 UPDATE 및 INSERT가 가능합..
· MySQL
1. 함수란 함수의 기본적인 개념은 사람이 숨 쉬는 것에 대해 갈비뼈와 횡격막의 상하 운동에 의해 흉강의 부피가 증가하면서 폐의 부피가 증가함으로 인해 폐 속의 공기압이 대기압보다 낮아지게 되어 공기가 들어오게 된다는 것을 생각하고 숨 쉬지 않는 것처럼 나는 숨을 쉰다고 생각하면 몸이 알아서 움직여주는 것과 같이 함수도 함수를 사용하는 것으로 그 속의 수많은 문장들을 불러오는 것입니다. 부르면 특정 동작을 해주거나 결과값을 주는 것입니다. 보편적인 프로그래밍 언어면은 대부분 존재하는데 MySQL도 함수를 선언할 수 있습니다. 2. 사용법 기본적인 형태는 아래와 같습니다. CREATE FUNCTION 함수명(매개변수 자료형) RETURNS 반환_자료형 BEGIN SQL 쿼리문 1; SQL 쿼리문 2; RE..
· MySQL
1. 트랜잭션이란 MySQL에서 트랜잭션은 데이터베이스를 상태를 바꾸는 일종의 작업 단위입니다. 우리가 MySQL의 입력하는 모든 명령어들은 각각 하나의 트랜잭션이라고 할 수 있습니다. INSERT, DELETE, UPDATE 등의 SQL 명령문을 통해 데이터를 상태를 바꿀 때마다 자동적으로 Commit을 실행하여 변경된 내역을 데이터베이스의 반영하는 것이죠. (git의 Commit과 유사하다고 볼 수 있습니다.) 즉 여태까지 입력한 명령어들은 MySQL에서 자동 Commit을 통해 쿼리 입력과 동시에 처리하여 데이터베이스에 반영되게 한 것입니다. 그렇다면 Commit을 수동으로 바꿔서 한 트랜잭션 안에 여러 개의 명령문을 넣게 바꿀 수 있을 것입니다. 이것이 2번에서 설명할 트랜잭션의 사용법이라 이해하..
· MySQL
1. 트리거란 트리거의 뜻은 다음과 같습니다. 위 뜻 들의 공통점은 특정한 원인이 있으면 특정한 결과를 만들어낸다는 것 (총은 위협할 대상이 있으면 방아쇠를 당긴다, 도화선은 불을 붙이면 터진다, 촉발시키다는 어떤 자극 주어 어떤 결과를 만든다) MySQL에서의 Tirrger 동작 또한 다르지 않습니다, 특정 동작(원인)이 있으면 특정 결과를 만들어냅니다. 하나의 SQL 동작을 함과 동시에 그에 맞춰 또 다른 동작을 처리하는 장치라고 할 수 있습니다. 주로 INSERT, UPDATE, DELETE 동작에 쓰입니다. 2. 사용법 트리거 선언 CREATE TRIGGER 트리거명 BEFORE/AFTER 명령 키워드 ON 테이블명 FOR EACH ROW BEGIN 처리할 내용 END 여기서 BEFORE/AFTE..
DSeung
Dev log