1. simple_form

form_for 대신 사용할 수 있는 simple_form_for 메서드를 제공합니다.

이 메서드를 사용하면 훨씬 간단한 옵션으로 다양한 폼들을 만들 수 있습니다. 그리고 simple_form을 설치할 때 bootstrap 옵션이나 foundation 옵션을 지정해주면 이런 것들에 맞게 html을 자동으로 렌더링 해주기 때문에 굉장히 편리합니다.


2. letter_opener

email 확인 절차를 로컬에서 브라우저를 이용해서 쉽게 확인할 수 있게 해주는 gem입니다.


3. devise

devise는 사용자의 인증 서비스를 쉽게 구현할 수 있도록 해주는 gem입니다.

devise gem은 관련 뷰 파일까지 만들어주고 devise 제너레이터를 이용하면 모델도 손쉽게 만들 수 있습니다.


4. acts_as_taggable_on

tag 기능


5. sunspot

search 기능

'Ruby > Ruby on Rails' 카테고리의 다른 글

Ruby on Rails Study 1회차!  (0) 2016.03.31
Model(모델)의 기본  (0) 2016.02.21
View(뷰)의 기본  (0) 2016.02.19
Controller(컨트롤러)의 기본  (0) 2016.02.16
12 weeks 12 projects  (0) 2016.02.15
Posted by Leop0ld

오늘은 퍼펙트 루비 온 레일즈라는 책을 이용한 레일즈 스터디에 참가하게 된 첫 날이었습니다.

레일즈 스터디를 처음 해보았고, 모르는 분들과 스터디도 경험이 매우매우 적어서 다소 어색(?)한 분위기가 있었습니다.

그렇지만!

스터디를 한다는건 다같이 공부를 한다는 것이고 다같이 공부를 하는건 혼자서 하는것보다는야 재밌다고 느끼는 사람으로써 오늘 1회차는 매우매우 만족스러웠습니다 ㅎㅎ

같이 스터디를 하시는 분들은 이름 모를 회사의 웹 기획자분... 카카오의 신입 웹/서버 개발자분... 네이버의 테스트 엔지니어분 이렇게 3분을 오늘 뵈었습니다.

스터디 진행은 정자역 근처에 있는 네이버 본사에서 진행했습니다.

신입이긴 하지만 현역 개발자분도 뵙고, 기획자분도 뵙고, 네이버의 엔지니어까지 뵌데다가 레일즈 공부까지 할 수 있어서 좋은 시간이었습니다.

오늘 1회차에는 4.1~4.6까지 살펴봤습니다.

4장이 뷰 개발 부분이라서 뷰 헬퍼에 대한 것을 주로 다뤘습니다.

초반에는 form_tag VS form_for 을 했습니다.

form_tag는 모델과 상관없는 폼을 만들어주는 태그.

form_for은 모델과 관련이 있는 폼을 만들어주는 태그.

라고 기억하고 있습니다.(맞나...?)

스터디의 내용은 따로 올리지 않겠습니다 ㅎㅎ(알고 싶으시다면 스터디에 참가를 하시는것도 방법입니다.)

많은 얘기를 주고 받았습니다.

확실히 혼자서 공부하는 것보다 효율적이고 집중도 더 잘되었습니다.

앞으로도 열심히 해야겠습니다.

참, 그리고 6장 컨트롤러 개발 쪽 발표를 맡게되서 준비를 잘해야될것같습니당... ㅎㅎ

읽어주셔서 감사합니다 :)

'Ruby > Ruby on Rails' 카테고리의 다른 글

유용한 Gem 소개  (0) 2016.05.19
Model(모델)의 기본  (0) 2016.02.21
View(뷰)의 기본  (0) 2016.02.19
Controller(컨트롤러)의 기본  (0) 2016.02.16
12 weeks 12 projects  (0) 2016.02.15
Posted by Leop0ld

Controller와 View의 기본을 다졌으니 이제 Model 부분만 남았습니다.

Model은 데이터베이스 or 외부 서비스에 접근하기 위한 비지니스 로직을 담당하는 부분입니다.

Rails에서는 모듈 지향이 발전하여 모델을 만들 때 다양한 것들을 이용할 수 있습니다.

하지만 책에서는 초보자를 위주로 설명을 해주기 때문에 O/R 맵퍼를 사용하는 액티브 레코드를 이용하는 것이 좋다고 말하고 있습니다.

저도 매우매우 초보자이기 때문에 책을 따라서 액티브 레코드를 사용합니다.

Active Record는 Rails의 초기부터 표준적인 모델 컴포넌트로 제공되는 라이브러리라고 합니다.


O/R 맵퍼란?

그렇다면 O/R 맵퍼는 무엇일까요...?

O/R(Object/Relational) 맵퍼란 관계형 게이터베이스와 객체 지향 언어의 객체 사이를 연결해주는 라이브러리 라고 합니다.

즉, 우리가 사용할 Rails 라는 객체 지향 언어의 객체와 관계형 데이터베이스인 SQLite3 혹은 MySQL, PostgreSQL 같은 것들을 쉽게 연결시켜주는 라이브러리라고 할 수 있습니다.

원래는 데이터베이스로부터 추출하고 싶은 데이터를 수동을 뽑아서 객체 속성에 일일이 접근해서 하나하나 뽑아야했습니다...

이런 작업이 단순헀지만 그 당시에는 코드의 절반 이상을 차지해버리는 사태가 있었다고 합니다.

이런 작업은 개발의 생산성을 현저히 떨어트리는 원인이 됩니다. 이러한 현상을 객체 관계 불일치(impedance mismatch)라고 부른다고 합니다.

O/R 맵퍼가 이러한 잘못된 매칭을 제거하기 위한 라이브러리라고 합니다.

액티브 레코드에서는 데이터베이스의 테이블 한 개로! 모델 클래스 한 개를 생성합니다.

모델 클래스의 인스턴스는 레코드 한 개를 나타내는 객체로 객체의 속성은 테이블의 필드를 그대로 갖게 됩니다.

그리고 O/R 맵퍼를 사용하게 되면 기본적인 SQL 구문을 작성할 필요가 없습니다.

SQL에도 다양한 문법이 있지만 O/R 앱퍼를 사용하면 이러한 문법에 구애받지 않고 개발이 가능하기 때문에 만약에 데이터베이스를 바꾸게 되더라고 애플리케이션이 받는 영향을 최소화할 수 있습니다.

액티브 레코드를 사용해 데이터베이스에 연결하려면 config/database.yml에 연결과 관련된 설정을 해줘야 합니다.

Rails는 애플리케이션을 생성할 때 자동적으로 이 부분을 생성해줍니다.

database.yml

default: &default

  adapter: sqlite3

  pool: 5

  timeout: 5000


development:

  <<: *default

  database: db/development.sqlite3


# Warning: The database defined as "test" will be erased and

# re-generated from your development database when you run "rake".

# Do not set this db to the same as development or production.

test:

  <<: *default

  database: db/test.sqlite3


production:

  <<: *default

  database: db/production.sqlite3


이렇게 되어 있을겁니다.
여기서 delvelopment 부분이 개발 환경, 그리고 test 부분이 테스트 환경 마지막으로 production 부분이 배포 환경입니다.

여기서 .yml 확장자가 무엇인지 궁금하신 분들이 계실거라고 믿겠습니다... ㅎㅎ(전 몰랐습니다 ㅠㅠ)

YAML(.yml)은 구조화된 데이터를 작성하기 위한 파일 형식의 일종입니다.

YAML 이름의 뜻은 Ain't Markup Language 라는 뜻, 즉 마크업 언어가 아니라 들여쓰기로 구조를 표현하는 파일 형식입니다.

큰 구조를 나타낼 때는 불편하다는 단점이 있지만, 가독성이 뛰어나다는 장점으로 인해서 다양한 프레임워크에서 쓰인다고 합니다.

YAML는 다음과 같이 매개 변수를 표현합니다.

<매개 변수 이름>: <값>

그리고 들여쓰기로 계층을 표현할 수 있습니다.

EX)

production:

  adapter: sqlite3

라는 것은 production라는 매개 변수의 하위 매개 변수로 adapter라는 값이 sqlite3라는 것을 나타내는 것입니다.

처음 보는 사람들도 읽기 쉽고 간단하다는 장점이 여기서 드러납니다.

저도 처음 보고 한번에 이해했습니다.

그리고 하위 계층을 표현할 때는 탭이 아닌 들여쓰기 두번 이라는 것에 주의해야 합니다.

그리고 database.yml을 보면 각각의 매개 변수가 있는 것을 볼 수 있습니다.

default, development, test, production 이렇게 4가지가 있습니다.

이렇게 각각의 환경에 맞는 것들을 따로따로 준비해서 사용합니다.

그리고 database.yml에서 사용하는 매개 변수들의 자세한 설명은 다음과 같습니다.


 매개 변수 이름

 설명 

 adapter

 접속할 데이터베이스의 종류

 database  

 데이터베이스의 이름(SQLite는 데이터베이스 파일 경로를 나타냅니다.) 

 host

 호스트의 이름 또는 IP 주소

 port 

 포트 번호 

 pool 

 확보할 접속 풀

 timeout

 접속 타임아웃 시간(단위: ms) 

 encoding 

 사용할 문자 코드

 username 

 사용자 이름

 password 

 비밀번호

 socket 

 소켓

이렇게 있습니다.


모델 클래스의 생성

그리고 이제 모델 클래스를 직접 생성해보도록 합시다.

모델 클래스를 생성하는 명령어는 그리 어렵지 않습니다.

rails generate model name field:type [..] [options]

이렇게 생성하시면 됩니다.

이렇게 입력을 하게 되면 모델 클래스를 생성하신 겁니다!

그렇게 되면 파일들이 자동 생성됩니다.

그건 나중에 알기로 하고 여기서는 CoC 법칙에 따른 규칙을 알아봅시다.


 종류

 설명  

 예시 

 모델 클래스 

 첫 글자는 대문자로, 단수형 사용 

 Car 

 모델 클래스의 파일 이름  

 첫 글자는 소문자로 , 단수형 사용 

 car.rb 

 테이블 

 첫 글자는 소문자로, 복수형 사용

 cars 

 테스트 스크립트 

 xxxx_test.rb(첫 글자는 소문자로, 단수형 사용) 

 book_test.rb 

 

이러한 규칙들이 존재합니다.

항상 Rails의 설계 원칙인 CoC와 DRY에 따라 개발을 진행할 수 있도록 노력해야 좋은 개발자가 될 수 있다고 생각합니다.

여기서 끝이 아닙니다.


Migration으로 테이블 생성

rails generate만으로는 데이터베이스를 원하는 대로 생성할 수 없습니다. 그렇다면 어떻게 해야하는지 지금부터 알아보겠습니다.

Rails는 테이블의 수정 및 생성에 마이그레이션(Migration)이라는 것을 사용합니다.

※ Migration이란? 테이블 레이아웃을 생성 또는 변경하기 위한 구조 라고 할 수 있습니다.

마이그레이션을 사용하면 테이블 관련 작업이 매우 쉬워집니다.

따라서 레이아웃을 변경하는 일이 발생하더라도 쉽게쉽게 진행할 수 있습니다.

만약에 마이그레이션이라는 기능을 사용하지 않았더라면 복잡한 일이었을듯 합니다.

마이그레이션을 진행하기 위해서도 파일이 하나 필요합니다.

마이그레이션을 담당하는 마이그레이션 파일은 rails generate 명령어를 사용할 때 자동 생성되었습니다.

EX) 20160222220911_create_books.rb

이런 식으로 자동 생성됩니다.

그리고 이러한 마이그레이션 파일들읋 실행하는 명령어는 다음과 같습니다.

rake db:migrate

다음과 같이 입력하게 되면 마이그레이션 파일이 실행됩니다.

이런 식으로 데이터베이스쪽을 만질 수 있습니다.

아직은 제가 공부가 부족해서 이 정도뿐이지만 다음에는 더 나은 포스팅을 찾아뵙겠습니다.

그러기 위해서는 이 포스팅을 기점으로 좀 더 심도있는 Rails 공부를 해볼까합니다.

블로그 신경쓰면서 Rails를 같이 공부하는데는 무리가 있는듯합니다.

그래서 당분간은 하드웨어쪽만 따로 포스팅을 하도록 하겠습니다.

더 나은 포스팅으로 돌아오겠습니다.

읽어주셔서 감사합니다 :)

'Ruby > Ruby on Rails' 카테고리의 다른 글

유용한 Gem 소개  (0) 2016.05.19
Ruby on Rails Study 1회차!  (0) 2016.03.31
View(뷰)의 기본  (0) 2016.02.19
Controller(컨트롤러)의 기본  (0) 2016.02.16
12 weeks 12 projects  (0) 2016.02.15
Posted by Leop0ld

MVC 패턴에서는 최종적은 출력은 ERB(Embedded Ruby)를 사용하는 것이 기본입니다.

즉, 컨트롤러에서 직접 출력을 하는 것이 아니라 뷰에게 값을 전달하여 뷰에서 최종적인 출력을 하는 것이 MVC 관점에 맞는 행동입니다.

ERB의 장점은 다음과 같습니다.

- HTML 기반

- Ruby 구문 사용 가능

- 뷰 헬퍼을 활용해서 다양한 폼을 만들기 쉬움

그 외에도 Rails에서 사용할 수 있는 템플릿 엔진으로는 Builder, JBuilder 등이 있습니다.

액션 메서드에서 해야하는 일 중에서도 절대 빠트려서는 안 되는 일이 바로 템플릿 변수를 설정하는 것입니다.

※ 템플릿 변수란? 템플릿 파일에서 사용할 수 있는 변수(= 액션 메서드에서 데이터를 뷰로 전달할 때 사용하는 변수)

또한 액션 메서드에서는 여러 개의 템플릿 변수를 생성하는 것도 가능합니다.

보통 템플릿 파일은 /app/views 폴더 아래에 /<Controller>/<Action>.html.erb 라는 이름으로 생성해야 합니다.

Ex) practice라는 컨트롤러의 index 액션을 만든다고 하면 /practice/index.html.erb 라는 이름으로 생성하면 됩니다.

하지만 이 경로를 무조건 따라야하는 것은 아닙니다.

물론 <Controller>/<Action>.html.erb 가 템플릿 파일의 기본적인 경로이기는 하나 액션 메서드에 코드 몇 줄을 추가하면 원하는 템플릿을 자유롭게 사용할 수 있습니다.

" render 'practice/special' " 라는 코드를 몇 줄 추가하면 practice/special.html.erb 를 호출할 수 있습니다.

<% [CODE] %> -> CODE 부분에 임의의 코드를 삽입할 수 있습니다.

<%= [VALUE] %> -> VALUE를 출력합니다.

<% ... %>는 연산만 하고 출력은 되지 않습니다.

에시를 들어보도록 하겠습니다.

Ex) <% price = 1000 %>

<% result = price * 1.05 %>

만 실행하게 되면 아무것도 출력이 되지 않습니다.

하지만 다음과 같이 실행을 할 경우에는 값이 출력됩니다.

Ex) <% price = 1000 %>

<% result = price * 1.05 %>

<%= result %>

를 할 경우 출력값으로는 1050이 나옵니다.

이것이 <% ... %>과 <%= ... %> 의 차이점이었습니다.

조건문 또는 제어문, 반복문 등을 제외하면 대부분은 <%= ... %>을 사용합니다.

Tip! 공백, 개행 제거

그리고 <% ... -%> 이거나 <%= ... -%> 이거처럼 스크립트 블록 뒤에 - 기호를 붙이게 되면 블록 뒤의 공백과 개행을 제거할 수 있습니다.

혹시나 공백이나 개행이 불필요할 상황이 있을 수 있기 때문에 그런 상황에서 쓰기 적합할 듯 합니다.

부족한 글이지만 그래도 열심히 써보았습니다!

읽어주셔서 감사합니다 :)

'Ruby > Ruby on Rails' 카테고리의 다른 글

Ruby on Rails Study 1회차!  (0) 2016.03.31
Model(모델)의 기본  (0) 2016.02.21
Controller(컨트롤러)의 기본  (0) 2016.02.16
12 weeks 12 projects  (0) 2016.02.15
gem 명령어의 주요 옵션  (0) 2016.02.15
Posted by Leop0ld

컨트롤러에 대한 간단한 것들을 잡고 넘어가도록 해봅시다.

일단 컨트롤러는 ApplicationController 클래스를 상속받아야 합니다.

rails generate 로 Controller를 생성했을 경우에는 인식하지 못하지만 생성하고 나서 Controller 파일을 보면 ApplicationController 클래스를 상속받고 있는 모습을 볼 수 있습니다.

정확하게는 ApllicationController::Base 라는 ApplicationController의 부모 클래스를 상속받아야 합니다.

ApplicationController::Base 클래스가 요청과 응답에 대한 모든 처리를 해주므로 개발자는 더더욱 애플리케이션 개발에 집중을 가할 수 있습니다.

그리고 사실 컨트롤러는 액션 메서드들을 집합이라고 할 수 있습니다.

액션 메서드(액션)라는 것은 클라이언트로부터의 요청을 처리해주는 메서드라고 할 수 있습니다.

컨트롤러 클래스는 한 개 이상의 액션 메서드를 생성할 수 있습니다.

즉, "액션 메서드들의 묶음" 이 컨트롤러라고 생각하심 될 듯 합니다.

액션 메서드를 생성하는 방법은 매우 쉽습니다.

public 메서드로 선언하기만 하면 액션 메서드가 되는 것입니다.

하지만 반대로 액션 메서드로 공개하고 싶지 않다면 외부에서 접근 불가하도록 private로 선언하면 됩니다.

이러한 액션 메서드들의 역할으로는 일반적으로는 요청을 처리하거나, Model을 호출하거나, View에서 사용되는 변수를 배달해주거나 등등을 합니다.

MVC 패턴의 글에서 말씀드렸던 것처럼 컨트롤러는 모델과 뷰, 두 곳을 연결해주고 가장 핵심적인 부분입니다.

그리고 이러한 컨트롤러에도 Rails의 기본 이념인 CoC(설정보다 규칙)가 적용됩니다.

컨트롤러의 이름 규칙을 이해하는 것이 컨트롤러 공부의 첫 걸음이라고 할 수 있겠습니다.

rails generate 로 생성했을 경우의 컨트롤러의 이름 규칙을 예시를 통해 알아보겠습니다.

 종류

 설명

 예시 

 컨트롤러 클래스

 앞 글자는 대문자, 뒤에 "Controller"를 붙입니다. 

 HelloController

 컨트롤러 클래스(파일 이름) 

 컨트롤러 클래스의 이름은 소문자로 만들고, 언더바로 구  분시킵니다.

 hello_controller.rb 

 헬퍼 파일 이름 

 컨트롤러 이름 뒤에 "_helper.rb"를 붙입니다. 

 hello_helper.rb 

 테스트 스크립트 이름 

 컨트롤러 이름 뒤에 "_controller_test.rb"를 붙입니다. 

 hello_controller_test.rb 

컨트롤러 클래스는 카멜케이스가, 컨트롤러 클래스와 헬퍼, 테스트 스크립트의 파일 이름은 스네이크가 적용되었습니다.

이러한 규칙들을 잘 알고 그에 맞게 코딩하는 것이 바람직한 개발자의 모습이라고 생각합니다.

읽어주셔서 감사합니다 :)

'Ruby > Ruby on Rails' 카테고리의 다른 글

Model(모델)의 기본  (0) 2016.02.21
View(뷰)의 기본  (0) 2016.02.19
12 weeks 12 projects  (0) 2016.02.15
gem 명령어의 주요 옵션  (0) 2016.02.15
MVC 패턴  (0) 2016.02.14
Posted by Leop0ld

RoRlab의 회원분이신 김성준 님께서 추천해주신 동영상 강좌를 들어볼까 합니다.

12 weeks 12 project라는 키워드로 검색을 하면 나온다고 하셔서 검색을 해보니 12 In 12 Challenge라는 제목의 웹사이트가 하나 나왔습니다.

들어가보니 다행히도 레일즈 강좌가 있습니다. -> https://mackenziechild.me/12-in-12/

그래서 저는 여기있는 동영상 강의도 병행하면서 레일즈 공부를 할 생각입니다.

물론 하나만 파고 그 다음에 하는 것도 좋은 방법이지만

저는 책, 동영상, 스터디, 프로젝트 등등 다양한 플랫폼에서 다양하게 접하는 것을 좋아합니다.

좀 더 다양한 방면에서 배울 수 있고, 그 플랫폼마다마다의 장단점도 있다고 생각합니다.

따라서 다양한 플랫폼에서의 공부를 중시하기 때문에 서로 다른 강의들이지만 같이 병행할 가치가 있다고 생각합니다.

만약에 Ruby on Rails 관련 세미나나 컨퍼런스 같은 것들이 있으면 참여해보고 싶습니다.

아직 참여할 수 있는 국내 컨퍼런스를 잘 모릅니다. ㅠㅠ

아시는 분 계시다면 알려주시면 감사하겠습니다.

다양한 플랫폼에서 좀 더 많이 노력을 하도록 하겠습니다!

읽어주셔서 감사합니다 :)

'Ruby > Ruby on Rails' 카테고리의 다른 글

View(뷰)의 기본  (0) 2016.02.19
Controller(컨트롤러)의 기본  (0) 2016.02.16
gem 명령어의 주요 옵션  (0) 2016.02.15
MVC 패턴  (0) 2016.02.14
프레임워크의 장단점과 라이브러리와의 차이점  (0) 2016.02.13
Posted by Leop0ld

※ gem 명령어의 주요 옵션!


일반적으로 Rails 버전은 gem 명령어로 관리합니다.

1. gem uninstall <Package>

- 패키지를 제거하는 명령어입니다.


2. gem update <Package>

- 패키지를 최신 버전으로 변경해줍니다.


3. gem cleanup <Package>

- 최신 버전만 남기고 나머지 패키지는 제거해줍니다.


4. gem list

- 설치된 패키지 목록을 확인합니다.


5. gem which <Package>

- 패키지 설치 경로를 확인합니다.

'Ruby > Ruby on Rails' 카테고리의 다른 글

Controller(컨트롤러)의 기본  (0) 2016.02.16
12 weeks 12 projects  (0) 2016.02.15
MVC 패턴  (0) 2016.02.14
프레임워크의 장단점과 라이브러리와의 차이점  (0) 2016.02.13
퍼펙트 루비 온 레일즈 구입!  (0) 2016.02.13
Posted by Leop0ld

MVC 패턴

Ruby on Rails는 MVC 패턴(Model-View-Controller Pattern)이라 불리는 아키텍쳐를 사용하고 있다고 합니다.

MVC 패턴이란, 애플리케이션을 3가지로 분류해서 각자 수행할 것을 명확히 구분해서 구성하는 것을 말합니다.

3가지는 위에서 말했던 Model, View, Controller 입니다.

Model은 비즈니스 로직을 담당하고, View는 사용자에게 직접 보여지는 부분인 사용자 인터페이스 부분을 맡습니다.

그리고 Controller는 모델과 뷰를 제어하면서 모델에서 값을 넘겨받아 뷰에게 넘겨준다는 식으로 둘을 상호작용 시켜주는 역할을 맡습니다.

보통 MVC의 흐름(Flow)는 클라이언트가 보낸 요청을 컨트롤러에서 받아서 처리를 한 뒤 모델에 저장합니다.

그 다음에 처리한 결과를 클라이언트에게 보여주기 위해서 View로 전달합니다.

마지막으로 View가 사용자에게 보이게끔 직접 뿌려줍니다.

MVC 방식은 기본적으로 이런 방식으로 작동하게 됩니다. Rails 또한 마찬가지입니다.

이러한 MVC 패턴의 장점으로는 아래의 것들이 있다고 합니다.

  • 프로그래머와 디자이너의 공동 작업 수월
  • 디자인과 로직이 서로 영향 X -> 유지보수가 용이
  • 기능 단위 테스트를 독립적으로 실행 가능 -> 테스트 자동화가 쉬움
이런 장점들이 있다고 합니다.

Django 같은 경우, 같은 MVC 패턴이지만 이름이 조금 달랐던 걸로 알고 있습니다.
Flask 또한 MVC 패턴을 갖고 있다고 알고 있습니다.

이렇게 많이 사용하는 만큼 중요한 부분이니 잘 알아둬야겠습니다.
읽어주셔서 감사합니다 :)


'Ruby > Ruby on Rails' 카테고리의 다른 글

12 weeks 12 projects  (0) 2016.02.15
gem 명령어의 주요 옵션  (0) 2016.02.15
프레임워크의 장단점과 라이브러리와의 차이점  (0) 2016.02.13
퍼펙트 루비 온 레일즈 구입!  (0) 2016.02.13
Gemfile, Bundler 개념  (0) 2016.01.29
Posted by Leop0ld

일단 프레임워크라는 것은 문제를 일반화하고 해결하기 위한 틀 이라고 생각합니다.

그리고 그러한 프레임워크들 중에 어플리케이션 프레임워크(Application Framework)라는 것이 있습니다.

어플리케이션 프레임워크는 개발자가 작성한 코드들을 연결해주고, 표준적인 규칙을 정해주고, 재사용 가능한 클래스를 제공합니다.

이렇게만 하면 라이브러리와 프레임워크를 혼동할 수 있습니다.

간단하게 설명하자면 둘의 가장 큰 차이점은 누가 프로그램의 실행 주체가 될 수 있느냐에 따라 나뉜다고 할 수 있습니다.

일단 먼저 라이브러리 같은 경우는 개발자가 직접 코드에서 라이브러리를 불러와서 사용을 하게 됩니다.

하지만 프레임워크 같은 경우는 개발자가 프레임워크의 틀 안에서 개발을 진행하게 됩니다.

그리고 프레임워크는 자기가 웬만한 일들을 스스로 처리하고, 라이브러리는 단순히 개발자에게 편리한 기능만을 제공한다고 생각하면 될듯 합니다.

그리고 Ruby on Rails는 어플리케이션 프레임워크 중에서도 웹 어플리케이션을 개발하기 위한 웹 어플리케이션 프레임워크(Web Application Framework)입니다.

그리고 이러한 프레임워크의 장단점을 간단하게 3-4가지 정도 얘기해보자면,

  1. 개발 생산성 향상
  2. 유지보수성 우수
  3. 최신 트랜드 대응 편리

이 정도가 있을 수 있겠습니다.

이러한 것들이 모두 프레임워크가 기초적인 틀을 잡아주고, 일정한 규칙을 두고 개발을 하게끔 하기때문에 있을 수 있는 장점입니다.

그렇다면 단점도 마찬가지로 저러한 프레임워크의 특징들 덕분에 발생됩니다.

  1. 규칙을 이해하는데 학습이 필요
  2. 틀에 얽메임
이러한 단점들이 있다.
물론 더 있을수도 있겠지만 저는 아직 많이 부족한지라 이 정도밖에 모르겠습니다.

일단 프레임워크의 틀 안에서는 프레임워크가 제일 절대적이기 때문에 지키라는 규칙을 잘 지켜야합니다.

그 규칙을 습득하고 잘 사용하기 위해서는 학습이 필요하고, 시간이 필요하기 때문에 진입 장벽이 조금 있는 편입니다.

그리고 프레임워크를 사용하다보면 항상 프레임워크라는 틀에 갖혀서 개발을 진행하기 때문에 틀에 얽매인 코딩을 할 수 있다는 것입니다.

개인적으로는 프레임워크가 너무 편하다보니 계속 사용하고 있습니다.

하지만 한편으로는 그런 틀을 벗어나서 불편한 점을 한번 되짚어볼 필요가 있다고 느낍니다.

뭐 이 정도가 있겠습니다.

포스팅에서 잘못된 부분이 있다면 따끔하게 알려주시길 바랍니다.

그래도 쓴다고 썼는데 아직 많이 부족한 것 같습니다... ㅠㅠ

더 열심히 해야겠습니다.

읽어주셔서 감사합니다 :)


'Ruby > Ruby on Rails' 카테고리의 다른 글

gem 명령어의 주요 옵션  (0) 2016.02.15
MVC 패턴  (0) 2016.02.14
퍼펙트 루비 온 레일즈 구입!  (0) 2016.02.13
Gemfile, Bundler 개념  (0) 2016.01.29
새로운 Project 만들기  (0) 2016.01.26
Posted by Leop0ld

제가 책보면서 하는걸 선호하는 편이라서 퍼펙트 루비 온 레일즈 책을 구입하게 되었습니다.

정가는 34000원인데 YES24에서 구입하니 쿠폰 이것저것 적용시켜 29600원에 구입하게 되었습니다. ㅎㅎ

방금 도착해서 이제 막 책으로 공부를 시작해볼까 합니다.

방학이 벌써 반이나 지났는데 해놓은 게 하나도 없어서 걱정입니다... ㅠㅠ

그래서 이제부터라도 열심히 해야겠습니다!

책이 루비 2.0.0 버전 기준으로 작성된 것 같더라구요.

지금도 2.2.3 버전 같은 2.x 버전대니까 큰 차이는 없을거같아서 구입하게 되었습니다.

책을 샀으니 읽으면서 열심히 공부해야겠어요... 더욱 더!

개인적으로 저번에 광화문 교보문고 갔을때 한번 봐놨었습니다.

내용도 괜찮은 것 같아서 읽어보고 싶었는데 때마침 사게 되었습니다.

ㅎㅎ 그럼 즐거운 주말 보내세요!

읽어주셔서 감사합니다 :)


'Ruby > Ruby on Rails' 카테고리의 다른 글

MVC 패턴  (0) 2016.02.14
프레임워크의 장단점과 라이브러리와의 차이점  (0) 2016.02.13
Gemfile, Bundler 개념  (0) 2016.01.29
새로운 Project 만들기  (0) 2016.01.26
루비 온 레일즈 기본 개념잡기  (0) 2016.01.18
Posted by Leop0ld