TigerCow.Door

지난 포스팅에 이어서 계속 진행합니다!

영화를 검색하기 위해 영화제목 입력창과 버튼을 추가합니다.

bootstrap에서 CSS->우측 Forms에 들어가서 처음보이는 code를 복사해 필요한 부분만 남겨두고 지워버리겠습니다.

위의 그림에 보이는 code를 복사하여 index.html.erb 파일의 상단에 붙여놓고 필요한 부분만 남기고 지우겠습니다.







지금까지 작성한 code로 run하면 아래와 같이 화면이 구성됩니다.





이제 model 개념을 사용합니다.

bash 창에 아래와 같은 명령어를 입력합니다.


rails g model list

그리고 


rake db:migrate


( ':' 양쪽에 공백이 있으면 안돼요!)
두 명령어를 입력하면 아래 사진과 같이 db/migrate 에 새로운 파일이 생깁니다. 해당 파일의 코드를 확인할게요




해당 파일에서 t.timestamps null: false 코드 위에 아래 코드를 입력합니다.


t.string :title


지금까지 한건, 사용자가 영화제목을 입력해서 검색한 것을

db에 저장해서 정보를 갖고 있도록 하기위해 db구축(?)을 한 과정입니다.

이제 이렇게 db에서 갖고있는 정보를 화면에 띄우도록 할게요.
먼저, 버튼을 눌렀을때 새로운 영화정보가 추가된 페이지가 되도록 routes.rb 파일의 코드를 수정하겠습니다.



이렇게 
get 'new_movie' => 'movie#new_movie' 를 추가하고 이제 movie_controller.rb 파일로 넘어갑니다.
movie_controller.rb 파일에서 new_movie라는 함수를 설정해서

사용자가 영화제목을 입력하고 버튼을 눌렀을때 입력한 text를 통해 json정보를 받습니다.

그리고 해당 영화의 정보가 존재하는지 Response 값을 확인한뒤 True인 경우 db에 저장하도록 합니다.

코드를 확인하면 아래와 같고 추가적으로 index함수내에서도 바뀐 부분을 확인해야 합니다.

26번줄과 31번줄의 코드가 변경되었습니다.



그리고 이제 버튼을 눌렀을때 controller에서 새롭게 설정한 함수가 실행되도록 해야하는데

이것은 index.html.erb 파일에서 코드를 수정합니다.




위의 사진에서 2번줄을 보시면 action 구문이 추가되었습니다.

어떠한 함수를 실행할지 설정해주었구요,

5번줄에 name="title"이란 코드도 추가되어 사용자가 input에 입력한 text의 이름을 설정해주었습니다.

이렇게 까지하시면 page를 run 하셨을때 어떤 영화의 정보도 존재하지 않지만,

적절한 영화의 제목을 입력하고 추가하면 영화의 정보가 새로 생깁니다.

하지만 입력한 text에 대한 영화정보가 없다면 영화정보가 추가되지 않습니다.
마지막으로 보기좋게끔 css등의 파일의 코드를 수정하고,

영화에 대한 보다 많은 정보를 받을 수 있게끔하며, 

youtube 주소를 이용해서 해당 영화에 대한 관련 영상을 볼 수 있는 링크를 걸게 하였습니다.
먼저 최종 결과화면은, 





이렇게 나왔습니다.

각 코드들은 아래와 같습니다.


routes.rb


application.html.erb


movie_controller.rb


index.html.erb


movie.css


db/migrate/~lists 파일


코드는 위에 나온 사진들 외에는 따로 수정한 파일 없습니다.
이렇게해서 오늘 LIKELION에서 학습한 내용 한번 쭉 복습했네요.
저도 많이부족해서 제대로 설명이 되지 않았거나 잘못 된 부분들도 많을텐데

전문가분들께서 보시고 피드백주시면 정말 감사하겠습니다^^

다음번에 더 공부해서 더 좋은 내용으로 포스팅할게요~



블로그 이미지

Tigercow.Door

Back-end / Python / Database / AI / Algorithm / DeepLearning / etc

댓글을 달아 주세요

cloud9 을 이용해서 ruby언어를 통해 영화검색 사이트를 만들거에요.

처음이신분들도 쉽게 따라올 수 있도록 진행하겠습니다.


먼저 c9을 이용해서 workspace를 만들어줍니다. 언어는 Ruby를 사용합니다! 




개발환경을 구축하기 위해 bash창에 아래와 같은 명령어를 입력하여 movie라는 controller를 생성합니다.


rails generate controller movie index


그럼 좌측에서 app폴더안에 controllers폴더 안에 views 폴더에서 movie라는 폴더가 생긴것을 확인하실수 있습니다.
그리고 index.html.erb파일을 먼저 작성해보도록 할게요!




그리고 위의 index.html.erb 파일에서 먼저 구조를 잡도록 할게요.




위와 같이 초기 구조를 잡았습니다.
그리고 저장한뒤에 run을 해준뒤 페이지를 열어보면 기본창 밖에 뜨지 않는데

이때 주소창 맨 뒤에 /movie/index 를 입력해주면 빈 화면이 뜹니다.
여기서 route를 설정함으로써 /movie/index 를 입력해주지 않아도 우리가 개발하는 페이지가 뜰도록 할게요.
아래 그림과 같이 config 폴더 안의 routes.rb 파일을 열어서 
root 'movie#index' 코드를 추가해줍니다.





 이렇게 하고 저장하신뒤에 page를 확인해보시면

주소 맨 뒤에 /movie/index를 추가하지 않으셔도 우리가 coding중인 page로 접속됩니다.
그리고 이제 bootstrap을 사용하기 위해 bootstrap 페이지에서 getting started로 들어가

아래 그림에 보이는 코드를 복사할게요.



그리고 c9에서 app/views/layouts/application.html.erb 파일로 들어가 </head> 위에 복사한 코드를 붙여 넣습니다.





그리고 다시 app/assets/sylesheets/movie.scss 파일을 열어서 아래와 같이 코드를 작성합니다.






여기까지 하셨으면 page run 하셨을때 화면의 가운데에 3:9의 비율로
빨간색, 파란색 선이 보이실 거에요.

css파일에서 설정해준것과 같이 빨간색은 poster부분이고 파란색은 content부분인데

따로 height를 설정하지않아서 선처럼 나오는 겁니다.

색깔은 제대로 되었는지 확인하기 위해 넣은 것이므로 확인되신분들은 빼셔도 됩니다! (저도 빼고 진행할게요.)


이제 영화의 정보를 가져올건데요. http://www.omdbapi.com/?t= 의 사이트에서

?t= 뒤에 영화제목을 입력하셔서 확인해보시면 json형태로 영화정보가 나오는 것을 확인하실 수 있습니다!
위의 사이트에서 정보를 가져와 저희가 coding중인 사이트에 뜨도록 할거에요.

그것을 하기위해 app/controllers/movie_controller.rb 파일에서 code를 작성합니다.




위와 같이 작성하시면, 현재 @movie_info에 star wars와 harry potter의 정보가 들어 갔음을 뜻합니다.

이제 이것들을 확인하기위해 다시 index.html.erb 파일과 movie.scss 파일에 들어가서 코드를 수정할게요.





위와 같이 코드를 수정하시고 확인하면 page에 star wars 와 harry potter의 정보가 뜨는 것을 확인할 수 있습니다.
.scss는 개인적으로 보기 이쁘게끔 수정하시면 됩니다. 이후 .scss파일 수정한 내용에 대해서는 따로 언급하지 않고 맨 마지막에서 전체적인 코드만 올릴게요!

이후 포스팅에선 사용자가 원하는 영화 이름을 입력해서 그 영화의 정보를 가져오는 기능을 구현하겠습니다.


블로그 이미지

Tigercow.Door

Back-end / Python / Database / AI / Algorithm / DeepLearning / etc

댓글을 달아 주세요

안녕하세요. 문범우입니다.

오늘은 MongoDB를 Windows OS에 설치해보도록 하겠습니다.

MongoDB는 NoSQL 데이터베이스로 분류됩니다.

MongoDB는 SQL보다 더 간결하지만 SQL과 유사한 쿼리를 사용하는 이점 때문에 사용 유저가 많은 편입니다.

아무 조건 없이 저장해도 동작이 되고 프로그래밍 언어에서 쓰던 데이터의 형태 그대로 저장이 가능하다고 합니다.

또한 테이블 스키마가 없어서 테이블 수정 인덱스 추가 변경이 백그라운드에서 처리 가능한 것이 장점이라 볼 수 있습니다.


단점으로는, memory가 가득 차서 HDD로 내려가 데이터를 처리하면 속도가 급감하며

데이터 삭제나 업데이트를 했을 때 단편화 문제를 발생시켜 데이터 처리에 필요 이상의 memory를 사용할 수 있다고 하네요.


뭐 이론적인 내용은 그렇습니다!

그럼 바로 설치를 시작해보도록 할게요!




1. MongoDB 설치하기


먼저 아래 링크를 통해 MongoDB 설치파일을 다운 받도록 합니다.

https://www.mongodb.com/download-center?jmp=homepage#community



자신에게 맞는 OS를 선택해서 다운로드를 진행합니다!

저는 현재 Windows 10이기 때문에 위의 사진에서 다운로드를 진행하였습니다.


다운받은 파일을 실행시켜 MongoDB 설치를 진행합니다.

설치하면서 그냥 next만 눌러주시면 되고 중간쯤에서 Setup Type에서 저는 Complete를 선택하였습니다.



이렇게 설치가 완료되었습니다!


2. MongoDB 테스트(Test)

2-1. MongoDB server 실행하기 (mongod.exe)


설치한 MongoDB를 테스트해보기 위해 아래와 주소의 폴더로 들어 갑니다.


C:\Program Files\MongoDB\Server\3.4\bin



그럼 위의 사진에서 확인할 수 있듯이, mongo.exe 파일과 mongod.exe 파일이 존재하는 것을 확인할 수 있습니다.


mongod.exe 파일은 MongoDB server의 실행 파일입니다.

mongo.exe 파일은 MongoDB 자체를 조작할 수 있는 MongoDB Shell 프로그램 입니다.


따라서,

먼저 MongoDB Shell을 시작하기에 앞서 MongoDB server를 실행시켜 줘야합니다.

따라서 아래와 같이 현재 폴더에서 명령프롬프트(cmd)창을 켜주시거나

명령프롬프트(cmd) 창을 켜서 현재 폴더의 위치로 들어옵니다.



MongoDB 의 server를 실행시켜주기 전에!

한가지 진행해야 할 일이 남았습니다.

MongoDB는 기본적으로 참조하는 db 폴더가 있는데 그것을 생성해줘야 합니다.

cmd 창에 아래와 같은 명령어를 입력해줌으로써 MongoDB가 기본적으로 참조하는 C:\data\db 경로를 만들어 줍니다.


mkdir C:\data\db



그리고 cmd창에 아래와 같은 명령어를 입력함으로써 MongoDB server를 실행시킵니다.


mongod.exe



(Windows 방화벽 관련 창이 뜨면 허용을 눌러주도록 합니다!)



이렇게 해서 MongoDB server를 정상적으로 실행시켰습니다.


2-2. MongoDB Shell 실행하기 (mongo.exe)


MongoDB server가 실행되고 있도록 하고, cmd 창을 하나 더 열어서 2-1. 에서 들어 갔던 경로로 다시 들어가도록

아래 명령어를 입력합니다.


cd C:\Program Files\MongoDB\Server\3.4\bin



그리고 mongo.exe 를 입력하여 MongoDB Shell을 실행합니다.



위의 그림과 같이 '>' 표시가 떠야합니다.

제대로 설치되었는지 확인하기 위해서는 show dbs를 입력합니다.



위와 같이 뜬다면 정상적으로 설치 된 것 입니다.



이렇게해서 MongoDB 설치를 성공적으로 진행하였습니다 :)

다음번 부터는 MongoDB 를 이용해서 뭐든해봅시다.

기본적인 명령어부터 알아가며 공부해볼게요~

블로그 이미지

Tigercow.Door

Back-end / Python / Database / AI / Algorithm / DeepLearning / etc

댓글을 달아 주세요