1. Client-server
   - 데이터 스토리지와 유저 인터페이스를 분리함으로서 멀티 플랫폼에 유저 인터페이스의 이식성을 높이고, 서버 구성요소를 단순화 화여 확장성을 증가시킵니다.


2. Stateless
   - 매번 클라이언트 서버의 요청으로 부터 해당 요청을 이해할 수 있는 모든 정보를 받습니다. 서버에 저장된 컨텍스트를 이용할 수 없습니다. 세션 상태는 전적으로 클라이언트에서 유지됩니다.


3. Cacheable
   - 캐쉬 제약조건은 요청에 대한 응답 데이터 내에 암시적이거나 명시적으로 캐싱이 가능한지 불가능 한지 포함되어야 합니다. 응답이 캐싱 가능하다면 클라이언트 캐시에는 이후의 동등한 요청에 해당 응답 데이터를 재사용할 수 있는 권한이 부여됩니다.


4. Uniform Interface
   - 리소스는 URI로 식별 된다.
   - HTTP 메시지를 통해 리소스를 조작 할 수 있다.
   - Self-descriptive messages (자기 서술적 메시지)
   - hypermedia as the engine of application state (HATEOAS)


5. Layered system
   - API 서버는 순수 비지니스 로직을 수행 한다.
   - 클라이언트는 대상 서버에 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지 인지 할 수 없다.
   - 중간 서버 (로드 밸런싱, 공유 캐시)를 제공함으로써 시스템 규모 확장성이 향상 된다.


6. Code on demand( Optional )
   - 서버가 클라이언트에게 코드를 응답해주면, 클라이언트는 응답 코드를 실행 할 수 있다

 

 

- Hori님의 작성 글입니다.

반응형

안녕하세요 상훈입니다.

엔더드래곤 사냥까지는 많은 영상과 포스팅이 존재합니다.

그러나, 사냥 후에 외곽지대로 향해서 날개와 셜커상자를 얻는 방법에 대해서는 포스팅이 안되어있는 경우가 많아 헷갈리고 두렵더라구요..

그래서 간단하게 포스팅 해드립니다.

 

엔더 드래곤 사냥 후, 중앙 엔더 드래곤이 죽은 자리에 귀환 포탈이 열립니다. 

이곳으로 들어가면 엔딩 크레딧이 올라옵니다. [ ESC ] 로 종료 가능하며, 리스폰 지역으로 자동 이동됩니다.

그러나 바로 이곳으로 들어가면 안됩니다.

 

바로, 엔드 외곽에 들어가서 날개와 셸커 상자를 얻어야하지요.

 

엔더 드래곤을 사냥하면 공중에 띄워진 캡슐모양 포탈이 뜹니다. 이 포탈이 바로 엔드 외곽지대로 이동하는 포탈입니다.

이 곳 근처에 가서, 엔더진주를 저 속에 맞춥니다.(엔더의 눈 아닙니다. 엔더진주예요

(2명 이상일 때는 위치가 꼬여 주의가 필요합니다. 차근차근해주세요.)

 

 

이렇게 외곽에 들어옵니다.

이곳에서 주변을 한~~~참 배회하면 엔드도시와 조우하실 수 있습니다.

 

사진 클릭시 마크위키로 이동

 

운이 나쁘지 않다면 함선도 발견할 수 있습니다(80%의 확률).

저는 이곳에서 3개의 엔드 도시와 1개의 함선을 발견할 수 있었습니다.

(함선찾으러 2~3시간동안 돌아다녀봤는데 없더라구요 ㅠㅠ)

함선은 공중에 있으니 잘 찾아보시길 바랍니다.

 

클릭시 마크위키로 이동

 

1개의 함선을 찾아 날개를 얻으셨고, 셜커 껍데기 2개 이상을 얻으셨다면 귀환하시고
다음 엔더 드래곤을 잡으시고 새로운 지역으로 이동하시는 걸 추천드립니다.

오히려 이게 더 빠르겠더라구요,,,

 

이상입니다.

엔딩크레딧
끄읏~

 

 

The End.

반응형

안녕하세요 상훈입니다. 

라라벨에서 게시글의 페이징 처리하는 방법에 대해 포스팅하겠습니다.

먼저, ui 설정하고, 진행하겠습니다. [ 이미 하신 분들은 건너뛰어도 무방합니다. ] 

$ composer require laravel/ui
$ php artisan ui bootstrap
$ npm install & npm run dev

 


 

1. Route
2. Controller
3. view

 

1. Route

Route::get('/', function () {
    $posts = Post::paginate(1);
    return view('home', compact('posts'));
});

 - table:posts의 데이터를 home.blade.php 경로로 보내준다고 선언합니다.

 

2. Controller

 - 컨트롤러에서는 바로 home.blade.view를 return 시켜줍니다.

 public function index()    {        
     return view('home');    
 }

 

3. View

<div class="card">
  <div class="card-body">
    @foreach($posts as $post)
      <p>{{ $post->title }}</p>
      <p>{{ $post->description }}</p>
    @endforeach
  </div>
  {{ $posts->links() }}
</div>

 

 

결과물

아무래도 bootstrap의 css를 끌어오지 못한 것 같다,,

 

 

 

 

반응형

안녕하세요 상훈입니다.

테이블 데이터를 업데이트 하는 2가지 방법을 포스팅하겠습니다.

 

// Router : web.php
Route::get('/posts/update/{id}', 'PostController@update');

// Controller
PostController

//table 
posts

//column 
title, body



1. save() 메서드 사용하는 방법

 - 정공법이지만, 불필요하고 깔끔하지 않습니다. 2번을 추천합니다. 

  PostController

public function update ($id) {
        $post = Post::find($id);
        $post->title = "updated title";
        $post->body = "updated body";
        $post->save();
    }

입니다. $id 값을 라우팅으로 받아오면, 해당하는 id를 가진 데이터를 조회하고, 직접 하나씩 바꿔주는 겁니다.

그리고 마지막에는 저장까지. 아주 정공법이죠. 비효율적이기도 하구요.

2번으로 넘어가겠습니다.

 


2. update() 메서드 사용하는 방법

Post::where('id', $id)->update([
            'title'=>'updated title2',
            'body'=>'updated body2'
        ]);

update 엘로퀀트(Eloquent)를 사용하여 해당 테이블의 컬럼의 id를 조회하고 업데이트하는 과정입니다.

자동으로 save.

 

이제 저장해주시고, uri를 통해 접속해주시면, table에 데이터가 변경되었음을 확인하실 수 있습니다.

uri 접속
table 조회

 

이상입니다.

 

 

반응형

안녕하세요 상훈입니다.

라라벨에서 slug 메서드를 이용해 무작위 데이터 생성하는 방법을 포스팅하겠습니다.

 

Laravel Korea 8.0 가이드

1. 라우팅 

Route::get('posts/store', 'PostController@store');

 

 - posts/store에 url을 타고 들어가면 데이터가 생성되도록 컨트롤러를 설정하도록 하겠습니다.

class PostController extends Controller
{
    // store post
    public function store () {
        $post = new Post;
        $post->title = "a new title";
        $post->body = "a new body";
        $post->slug = Str::slug($post->title);
        $post->user_id = 1;
        $post->save();
    }

}

 

 - slug: title과 똑같은 내용을 입력하겠다.

 

 

해당 uri에 접근하면, 자동으로 데이터가 입력됩니다.

 

자동으로 user_id도 증가한것을 확인하실 수 있습니다.

 

이상입니다.

 

반응형

안녕하세요 상훈입니다.

라라벨 - migration에서 명령어로 테이블의 컬럼을 추가하는 방법을 포스팅하겠습니다.

기본적인 테이블은 posts 라는 이름의 테이블로, 게시글을 저장하는 곳입니다.

 

posts migration / posts table desc

 

그 안에 데이터가 이렇게 있다고 가정하고 컬럼을 추가하는 과정을 그려보도록 하겠습니다.

 

내부에 존재하는 2개의 데이터

 

1. bash에서 migration 생성 (명령커맨드) 

php artisan make:migration add_user_id_to_posts_table

 - add   : 추가하겠다.

 - user_id  : 무엇을 ( user_id 라는 이름의 컬럼을)
   

** 자유롭게 작성해주셔도 무방합니다.

 - to  :  어떤 테이블에 

 - posts_table  :  적용하고자 하는 테이블명

 

2.  up() & down() 에 아래와 같이 작성

 

public function up()
    {
        Schema::table('posts', function (Blueprint $table) {
            $table->integer('user_id');

        });
    }

    public function down()
    {
        Schema::table('posts', function (Blueprint $table) {
            // rollback할 때
            $table->dropColumn('user_id');
        });
    }

 

3. migrate 실행

php artisan migrate

migrate 성공

 

4. 테이블 확인

 

데이터에 default 값이 들어간 컬럼이 생성되었습니다. 


이상입니다.

 

반응형

안녕하세요 상훈입니다.

오늘은 제 생애 첫 강의 결제를 하였습니다. [ 할인 ] 을 하 였기 때문.

-> 15000원!! Event!!! (다른 할인 이벤트 하기만해봐 그냥)

이미지를 클릭하면 해당 강의로 넘어갑니다.

 

강의 제목

Udemy - [ Laravel classified ads web application from scratch ]

 

입니다. 무슨 뜻이냐면, 라라벨...ㅇ...... 제목 별로 신경안썼습니다.

제목보다는 내용이 중요한 법! 

강의 내용은 Laravel - Vue.js 같이 배우는 내용입니다.

 

현재 5% 까지 진행하였습니다.

 

강의 화면

이런식으로 웹어플리케이션을 만들어본다고 합니다.

 

현재까지(5%) 진행한 내용

1. 기본 설치
2. 라라벨 기본 배우기(라우팅까지)

 

공부를 하면서 살짝 현타가 왔는데, 왜냐하면 예전에 혼자 맨땅에 헤딩을 하면서 공부했던 라라벨8의 내용을 복습하는 느낌이었습니다. 

 

그 당시에 CRUD공부까지 다 했었는데, 그때 공부했던 방향과 유사하게 진행합니다. 앞으로 많은 강의가 남아있으니, 점차 난이도가 높아질 것으로 예상합니다.

 

그래도 처음 했을 때의 막막함은 안느껴지고,

MVC Framework 특유의 왔다갔다하면서 코딩해야하는 부분에서 울렁거리지 않았습니다. 

 

강의 소개

강의 개수는 197개, 강의 시간은 23시간 정도 됩니다   (언제 다듣냐)

 꽤.. 많네요 

10개 수강하였네요. 졸려,,

 

강사님은 솔직히 영어 발음이 좋지 않아서 종종 뭐라고 말씀하시는지 안들릴 때가 많습니다. 만약 들으려고 하신다면 참고 바랍니다. 

 

강의 추천은 여기서 마치도록 하겠습니다. 감사합니다.

 

 

반응형

'일상' 카테고리의 다른 글

드디어 왔습니다.  (6) 2022.10.06
구글 에드센스 짤림  (0) 2022.09.09
고스트 리콘 웃긴짤  (1) 2022.03.27
책 소개 : 소프트웨어 아키텍처101  (0) 2022.03.24
네이버 블로그에서 시작하여 이제 티스토리로.  (0) 2021.08.25

 

안녕하세요 상훈입니다.

에러 내용

그간 자주 npm run dev / npm run 에러가 발생하였었는데, 오늘에서야 진짜 이유를 알았습니다.

 

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ development: `mix`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ development script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ dev: `npm run development`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

 

일단 에러 해결부터

npm i -g npm@latest

 

바로 npm의 최신 버전 설치였습니다.

제가 얼마전에 npm 설치를 했었기에 막연하게 최신버전이겠거니 해서 신경 자체를 안썼습니다.

그러나 오늘 알게되었습니다...... 후.... 깊은 brain crack이 찾아오네요 ㅎㅎ

 

화이팅입니다.

 

참고

 

npm run dev error, node modules 에러

npm run dev 명령어를 쳤는데 계속 아래와 같은 에러가 출력된다 -------npm run dev error------ #이것도 뜨고 node_modules/cross-env/src/index.js:23 #이것도 뜨고 npm ERR! cb.apply is not a function #이것..

bug41.tistory.com

 

반응형

+ Recent posts