티스토리 뷰

 

 

루비온 레일즈의 핵심 4기술

 

1) 웹 프레임워크

2) MVC 패턴을 지향

3) OOP (객체지향 프로그래밍)

4) ORM (객체지향 프로그래밍)


그런데 여기서 웹 프레임워크, MVC 패턴, OOP, ORM 이 뭐냐는 질문이 또 나올 수 있겠네요.

 

 

  • 웹 프레임워크

프레임워크는 프랜차이즈 브랜드 라고 보면 이해하기 쉽다.

웹 프레임워크는 원하는 기능 구현에만 집중하여 빠르게 개발 할 수 있도록 기본적으로 필요한 기능을 갖추고 있는 것 이라고 보면 되는데, 흔히말해 홈페이지의 기본 뼈대 구조라고 보셔도 됩니다.

 

스타벅스와 웹 프레임워크 이야기를 비슷하게 빚대어 보겠습니다.

 

커피가게를 운영하고 싶어하는 사람이 있는데, 이 사람은 자본이 많이 없고, 커피를 만들 기술력도 존재하지 않고, 가게 인지도를 높일 경영 노하우도 없습니다.

스타벅스 프랜차이즈 창업주들에게 인테리어 비용도 대주고, 기술력(레시피)도 제공해주고, 유명브랜드의 힘을 빌려줘서 인지도의 힘을 보태줍니다.


홈페이지를 만들고 싶어하는 초보개발자가 있는데, 이 개발자는 홈페이지 보안 개념도 없고, 인프라지식도 전무하며, 홈페이지 내 핵심 기능(회원가입, DB 관리 등)을 구현을 할 줄도 몰라합니다.

웹 프레임워크는 개발자에게 홈페이지 기본 보안에 대해 기본적으로 설정이 되어있고(CSRF, XSS 방지 등), 인프라 기반 마련(MVC 패턴 등), 홈페이지 내 핵심 기능(회원가입, DB 관리 등)을 아주 손쉽게 구현을 시켜줍니다.

 

* 윗 아랫말이랑 아랫 말이랑 비교해서 보면 거의 다를 바 없죠?:D

웹 프레임워크란 그런겁니다.

 

 

  • MVC

MVC는 Model, View, Controller의 줄임말로,

효율적인 관리를 위해 다음과 같이 나눈 Architecher 을 뜻합니다.

 

1) Model : 데이터베이스 연관관계 및 데이터들

2) View : 사용자가 눈으로 보는 페이지

3) Controller : 데이터 제어

 

위 3가지의 역할을 나눈 개념이라고 보시면 됩니다.

일상생활을 비유하면 다음과 같이 이해하면 되겠습니다.

 참고  MVC 패턴 개념 참고글 [클릭]

 

 

  • OOP

OOP는 객체지향프로그래밍 으로서, 객체들을 통해 프로그래밍 하는 것을 의미합니다.

루비온 레일즈에서는 모든 데이터의 표현 하나하나가 전부 객체입니다.

예를들어 Parameter 하나하나가 전부 객체로 표현됩니다.

 

 

  • ORM

ORM은 테이블 내 데이터 검색에 있어 객체와 SQL 검색 방식을 서로 맵핑을 시켜주는 방식이라고 보면 됩니다.

이를테면, 레일즈에서는 테이블 내 데이터를 조회 할 때

SELECT * FROM USERS WHERE ADMIN = 'TRUE'

이런 SQL 형식이 아닌

User.where(admin: true)

위와같이 단순히 Model(참고로 모델 또한 객체)을 참고해서 아주 간단하게 데이터를 조회합니다.

 

장점

  •   복잡한 SQL 쿼리가 아닌 직관적인 코드로 되어있다 보니 코드의 가독성을 높입니다.
  •   서로 다른 데이터베이스 문법의 차이를 줄이고, 호환성을 향상시켜줍니다.

 

단점

  • 기존에 SQL 쿼리로 방대히 짜여져 있으면서, 무결성 제약조건이 많을 경우 효과에 대한 기대가 힘듭니다.
  • 복잡한 관계 조인에 대해서 구현의 한계가 발생할 수 있습니다.

 

 

  • 객체

객체는 대상을 설명하는 단어라고 보면 됩니다.

예를들어 PUBG 게임에서 Chicken이란 유저에 대해 위 데이터에서 K/D, 데미지, 생존시간을 객체로서 표현을 해본다면

# 생존시간(survival_time)은 초 단위로 작성
Chicken: { "K/D" => "0.35", "Demage" => "50", "survival_time" => "264" }

이렇게 표현을 할 수가 있습니다.

 

루비온 레일즈 Ruby on Rails RO

루비온 레일즈 Ruby on Rails RORR

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함