반응형
라라벨 프로젝트를 git clone 받고 실행하려고 하면 오류가 난다.

git 으로 형상관리가 안되는 폴더와 파일

  1. vendor 폴더
  2. node_module 폴더
  3. .env 파일

→ 있어야 할 폴더들이 없기 때문에 오류가 나는 것이다.

.env 파일

.env 파일을 생성한다.

vendor 폴더

vendor 폴더는 Composer의 의존성 폴더이다.
vendor 폴더는 composer install 을 하면 생성된다.

composer install 이란?
- 아무것도 업데이트 하지 않고 지정한 버전의 composer.lock 파일에 지정된 대로 모든 종속성을 설치한다.

composer update 란?
- 지정된 종속성을 업데이트하고, 패키지가 업데이트 된다.

node_modules 폴더

package.json 파일이 있다면 npm install 명령어를 실행하면 생성된다.


composer install 했을 때 생기는 오류

저는 아래와 같은 오류가 생겼었습니다.


저의 해결방법은 이렇습니다.

1. 우선 composer install 명령어를 실행하면서 생긴 vendor 폴더를 지웁니다.

rm -rf vendor


2. 파일 권한 바꾸기

sudo chmod -R 777 storage sudo chmod -R 777 bootstrap


3. 파일 생성

mkdir -p storage/framework/sessions mkdir -p storage/framework/views mkdir -p storage/framework/cache


마지막 파일 생성까지 해주니 오류없이 실행되는 것을 확인할 수 있었습니다.

반응형
반응형

데이터베이스 연동하는 방법은 migrate를 이용하는 방법과 mysql database에 있는 테이블을 연동해서 작업하는 방법이 있습니다.
테이블을 직접 연동해서 작업하는 방법대로 해보겠습니다.

1. .env 파일을 수정해줍니다.

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=ash_test DB_USERNAME=root DB_PASSWORD=secret

2. config > database.php

먼저 config폴더 하위에 있는 database.php 파일을 수정해줍니다.
이 파일에서는 기본적인 커넥션 설정내용을 수정가능합니다.

→ 수정한 코드를 적용을 시키려면 터미널에 php artisan config:cache 명령어를 실행시켜야 적용됨

3. 터미널 입력

app 디렉토리 하위에 Models라는 디렉토리를 만들고 안에 Test.php 라는 파일을 만든다.

php artisan make:model Models/Test

4. Test.php 파일 수정

$connection : 연동 할 데이터베이스 선택
$table : 연동 할 데이터베이스의 테이블 선택

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Test extends Model { protected $connection = 'ash_test'; protected $table = 'test'; public $timestamps = false; }

5. routes > web.php 파일 수정

Route::get('/', function () { $user = DB::connection('ash_test')->table('test')->get(); return $user; });


수정을 한 후 터미널에 php artisan serve 를 입력하여 서버를 실행시킵니다.
브라우저에 127.0.0.1:8000 입력하면 아래와 같이 해당 테이블에 있는 모든 정보를 가져와서 출력시킵니다.



반응형
반응형

라라벨 설치하는 방법은 공식 홈페이지에 보면 잘 나와있습니다.
laravel.kr/docs/8.x/valet
Mac OS를 사용하는 경우 발렛이라는 좋은 개발 환경이 있습니다.

Valet 설치하기

먼저 홈브루를 설치해야 합니다.

홈브루를 설치하셨거나 원래 있으시다면 먼저 업데이트를 해줍니다.

brew update


그다음 설치해야 할 프로그램을 찾아줍니다.

brew search php


원하는 버전의 php를 install 해줍니다.

brew install php

 

컴포즈 설치

그다음 컴포즈를 설치를 해줍니다.
getcomposer.org/ (자세한 방법은 공식 홈페이지에 나와있습니다.)

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"


현재는 composer를 실행시키려면 composer.phar 명령어를 입력해야 합니다.
귀찮기 때문에 composer 명령어 만으로도 실행시킬 수 있게 해주는 코드를 실행하겠습니다.

mv composer.phar /usr/local/bin/composer

composer 명령어를 입력해서 잘 실행되는지 확인을 해줍니다.

라라벨 설치하기

먼저 라라벨 인스톨러를 설치해야 합니다. 터미널에 아래 코드를 입력합니다.

composer global require "laravel/installer"


설치가 되었다면 라라벨이 실행될 수 있게 PATH를 설정해주어야 합니다.

vi ~/.bash_profile

위의 명령어를 입력하여 bash_profile 파일을 열고, esc + i 버튼을 눌러 insert 모드로 전환한다.

아래의 코드를 입력합니다.

export PATH="$PATH:$HOME/.composer/vendor/bin"

코드를 입력했으면 esc + :wq! 입력 (저장하고 나가기)

만약 터미널이 bash가 아닌 zsh라면 .bash_profile이 아닌 .zshrc 라는 파일에 경로를 입력해야 한다!

설치가 되었다면 아래의 코드로 발렛을 설치해줍니다.

composer global require laravel/valet


그다음으로 아래의 코드를 실행시킵니다.

valet install
반응형

 

laravel new blog

위의 코드를 입력하면 blog라는 라라벨의 새로운 프로젝트가 생성이 됩니다.

만약 라라벨의 특정 버전으로 프로젝트를 생성하고 싶다면 아래 코드를 입력합니다.

composer create-project --prefer-dist laravel/laravel blog "5.4.*"


만든 프로젝트 폴더로 들어간 후 php artisan 입력

→ 자세한 설명들이 나와있다

php artisan serve를 입력하면 터미널에 주소가 뜹니다.


브라우저에 주소 http://localhost:8000/ 를 입력하면 아래 사진과 같은 화면이 뜬다면 성공!!

 


valet에는 park와 link라는 명령어가 있습니다.
link 명령어는 http://128.0.0.1:8000/ 의 주소를 다른 naver나 google과 같은 사이트처럼 http://naver.com로 접속 가능하도록 해줍니다.

valet links를 입력하면 현재 등록이 돼있는 url 주소가 나옵니다.
valet link [원하는 주소이름] 을 입력하면 입력한 주소 이름으로 url이 생성됩니다. 

생성한 URL 주소로 들어가면 같은 화면이 뜹니다.


삭제는 valet unlink [원하는 주소] 로 간단하게 삭제가 가능합니다.

반응형
반응형

컴포즈 설치하기

https://getcomposer.org/

Composer-Setup.exe 를 다운로드 받고 실행
잘 다운로드 됬는지 확인하려면 cmd 창을 열고 composer 입력






라라벨 설치하기

cmd 창에 composer global require "laravel/installer" 입력


버전확인


프로젝트 생성
laravel new 프로젝트명


최신버전으로 다운받을 경우 (자동으로 최신버전 다운)
composer create-project laravel/laravel myapp --prefer-dist —verbose

원하는 버전이 있을 경우
composer create-project laravel/laravel myapp --prefer-dist 원하는버전



서버 실행


브라우저에 127.0.0.1:8000 또는 localhost:8000 입력

이 화면이 나오면 성공


브라우저 들어갈때 cmd창


반응형
반응형

Spring 페이지 https://spring.io/
→ Spring Boot를 기본으로 가이드가 제공됨

Eclipse가 없는 경우(or 다른 Tool 사용시) 빌드

Spring 페이지에서 Tool을 다운받아 빌드시킨다


Eclipse 버전 빌드

  • Help > Eclipse MarketPlace > 'sts' 검색 > Spring Tools 3 Add-On for Spring Tools 다운로드


  • 다운로드 완료 후 우측 상단의 open perspective를 눌러 spring으로 perspective 변경


  • spring으로 변경 후 새로운 폴더를 만들기 위해 NEW 선택시 여러개의 spring이 뜨는데 이 중 Spring Legacy Project로 생성한다.


  • Spring Legacy Project를 선택하면 Template을 선택할 수 있는데 여기서 Spring MVC Project 선택(웹 어플리케이션을 만들 것이므로)NEXT 를 누르면 파일 다운로드 창이 나오는데 YES 선택
  • Legacy 프로젝트는 maven을 기본으로 사용(Library Build Tool임)


  • 이후에 패키지명을 정하라는 창이 뜨는데 회사명이 예시로 나와있음 현재는 site.itwill.controller라고 생성(Model Class를 이 패키지에 담을 것임)


  • FINISH를 눌러 생성하면 필요한 라이브러리를 다운받고 있기 때문에 프로젝트에 에러 발생 ⇒ 빌드 작업이 다 종료될때까지 기다리기!(다른 작업을 요청할 경우 빌드가 제대로 안될수있음)


  • Problems를 보면 에러가 발생한 것을 볼 수 있다 ⇒ maven이 기본으로 빌드하는 JDK가 1.6인데 사용하는 버전이 1.8이므로 에러 발생


  • 프로젝트 폴더명을 우클릭하여 Properties로 들어간다


  • Java Build Path에서 JRE를 사용하는 버전인 1.8로 변경


  • BUT 변경해도 에러발생 > 컴파일할 때의 JDK 버전(1.6)과 다르기 때문! > 이것도 바꾸기

반응형
  • Properties에 다시 들어가 Project Facets로 들어가기 *상위버전으로는 올릴 수 있지만 하위버전으로는 불가능(다시 설치하는 방법으로만 가능)


  • Java 버전을 1.8로 변경 && Dynamic Web Module도 4.0을 사용할 것이므로 변경


  • BUT log4j.xml 파일에 현재로서는 접근이 불가능 하여 에러 메세지가 뜨지만 무시 ⇒ 에러 메세지를 우클릭하여 delete해도 나중에 다시 뜸,,,,하지만 지워주기


  • 서버 변경 : 서버를 더블클릭하여 실행 > 아래쪽의 module 탭
  • spring 프로젝트의 경로가 controller인 것을 확인할 수 있다(레거시 프로젝트는 프로젝트명이 context명이 되지 않고 가장 처음에 입력했던 패키지 이름으로 context명이됨)


edit을 눌러 **프로젝트명(spring)**으로 바꾼 후 서버 재실행하기!

pom.xml

라이브러리를 조작하는 xml 파일. 가장 기본적인 버전만 빌드되므로 꼭! 수정한다
MVNRepository 사이트에서 artifactId이름으로 검색하여 최신 버전으로 수정한다.
버전 변경시 알파버전이나 베타버전은 제외하고 변경 && 무조건 서버 STOP후 저장
간혹 이름이 변경될 수 있으므로 복붙하기 (ex-servlet-api는 최신버전의 경우 artifactId 변경된 상태임)
test를 위한 junit의 경우 <scope>가 있으면 인식이 잘 안되므로 지워주기~!
의존관계에 있는 라이브러리도 변경될것임(서버 STOP후 저장 후 확인하기)

Spring 프로젝트 구조

  • Spring의 기본 구조
    • src 폴더
      • main 영역은 기본적으로 프로그램을 만드는 영역
      • test 영역은 module 단위의 프로그램을 테스트 해보는 영역
      • src/main/java : Class 파일 생성
      • src/main/resources : Bean Configuration 파일(XML 환경설정파일) 저장*+properties 파일*
      • src/test/java : 테스트용 Class 파일 생성
      • src/test/resources : 테스트용
    • pom.xml : maven이 빌드하는 라이브러리를 조작할 수 있다
      • 유지보수 용이 - 특히 버전을 바꿀때
      • 기본적으로 최소로 필요한 라이브러리만 빌드 ⇒ 필요한 버전으로 바꾸기
    • target 폴더는 파일이 생성되서 저장되는 곳(건드릴 필요x) ex- WAR 파일
    • main > webapp : resource 파일*(resources 폴더), JSP 파일(views 폴더)*
      • main > webapp > resources : css, js, image 파일 등
      • main > webapp > WEB-INF > views : JSP 파일 생성(클라이언트 접근 불가, WAS 직접 접근 불가하나 WAS가 클래스를 통해 접근)

Maven Dependencies : 모든 라이브러리를 maven이 제공하므로(JDK의 라이브러리인 JRE 제외) 아파치 톰캣 라이브러리등이 필요없다.

HomeController.java + home.jsp

  • 파일명에 S가 뜨는 것은 Spring 파일이라는 것(Spring Container에서 제어)


⇒ BUT 실행시 콘솔 로그에 에러가 뜰 수 있음 WHY? 로그 구현체가 인식 못하는 언어가 있어서 그런것! (아파치 톰캣이 저장된 경로에 한글이 있는 경우 에러가 발생함)
xerces를 검색하여 pom.xml 파일에 추가시키기

만약 실행이 되지 않을 경우 이클립스를 종료하고 .m2 폴더를 삭제 후 다시 이클립스를 실행하면 다시 maven이 라이브러리를 빌드할 것임

그래도 실행되지 않는다면 프로젝트명 우클릭 > maven > Update Project 또는 Run As > Maven clean


반응형

+ Recent posts