본문 바로가기

레일즈10

[rails] 레일즈 모델 - 트랜잭션 [트랜잭션이란]- db 처리를 할 때 묶음별로 처리를 할 때 묶음 내 모든 과정이 성공하면 비로소 db 처리를 하도록 할 때 사용함- 트랜잭션으로 묶인 일련의 처리과정 속에 개별적인 sql 명령이 성공했을 때 처리 대기를 시켜둠- 트랜잭션으로 묶인 개별 처리과정 모두가 성공했을 때 비로소 db 처리가 실행됨. 이것을 커밋(commit)이라 함- 트랜잭션으로 묶인 일련의 처리과정에서 하나라도 실패하면 롤백(rollback)됨. 즉, 모든 저장된 db 처리가 취소됨- 트랜잭션처리 흐름 1) sql 명령2) sql 명령 처리3) 처리 성공 시 처리 대기 / 실패 시 rollback3) 모두 성공 시 commit / 하나라도 실패 시 rollback4) 트랜잭션 rollback 시 예외처리(rescue)- 사용.. 2017. 3. 4.
[rails] 레일즈 모델 - 쿼리 인터페이스 스코프 [스코프란]- 자주 사용하는 쿼리메서드를 사용하기 간편하게 하는 방법, 하나의 예약어로 묶은 다음, 예약어를 호출하여 사용하는 방법- 또는 쿼리메서드를 사용하여 레코드 작업 시 쿼리메서드에 기본적으로 설정하고싶은 설정사항을 넣어두는 방법 [스코프 종류]- named scope : 자주 사용하는 쿼리메서드를 사용하기 간편하게 하는 방법- default scope : 테이블 레코드 작업(모델 쿼리메서드)을 할 시에 기본적으로 적용받는 설정을 저장함, 수정/제거 작업 이외에도 생성에도 영향을 미침 [스코프 사용하기]- named scope 1) 적용하고싶은 모델 클래스 파일을 연다(app > models > 적용하고싶은 모델클래스 이름.rb)2) scope :스코프이름, -> { 적용할 쿼리(ActiveRec.. 2017. 3. 3.
[rails] 레일즈 모델 - 쿼리메서드 [모델 활용 기본개념]레일즈의 기본(루비의 기본) : 객체.메서드, 모든 흐름은 객체가 어떤 메서드를 사용하는가에 초점이 맞춰져있음 [모델 객체+메서드로 db 테이블 접근하기 - 쿼리메서드, 쉽고 빠르게 쿼리문을 날리기] 1) 메서드 사용 명령 즉시 데이터베이스에 접근하여 알맞는 레코드를 찾아오는 메서드2) 메서드 사용 명령 시점에 데이터를 뽑지않고, 조건에 조건을 더해 최종적으로 데이터가 필요할 때 뽑아오는 쿼리문을 날림3) 데이터 수정 쿼리메서드4) 데이터 삭제 쿼리메서드 [선택 쿼리메서드 1번째 방법]쿼리문 : SELECT에 해당함 : SELECT "테이블명" .칼럼명( *을 씀으로서 모든 칼럼을 선택할 수 있음) FROM "모델객체명" 1) find(key) : 레코드 idx 값으로 데이터찾기, .. 2017. 2. 21.
[ruby] 루비 기초편 - Hash [Hash란?]- key-value 구조로 이뤄진 데이터타입- 우리들이 흔히 알고 있는 사전이라고 생각하면 됨 : 안녕 이라는 단어의 뜻을 찾는다, 안녕은 key / 안녕의 뜻이 value다. [Hash 선언]1) jinbro = Hash.new{ "name" => "jinbro", "age" => 25 } - key를 일반 데이터타입(string, integer 등)으로 저장하는 경우, value는 상관없음2) jinbro = Hash.new { :name => "jinbro", :age => 25 } - key를 symbol형태로 저장하는 경우, value는 상관없음2-1) jinbro = Hash.new {name: "jinbro", age: 25 } - 2번과 같음, 표현방식이 루비 버젼에 따라 .. 2017. 2. 17.
[rails] 레일즈 기본편 - 모델 [레일즈 모델] - 도서관 예시 우리가 도서 대여/반납 서비스를 이용하기위해 도서관을 간다. 도서관에 들어가 도서 대여/반납대로 간다. 우리에게 도서 대여/반납대는 V(뷰)에 해당한다. 여기 도서관은 빌리고 싶은 도서를 예약해놓고 도서관을 찾아가서 사서에게 요청을 하면 사서가 책들이 꽂힌 책장에서 책을 찾아와 책을 대여해주는 방식이다. 그래서 사서에게 우리가 예약한 도서를 대여해달라고 요청을 한다. 사서는 요청을 받고 책장으로 찾아가 예약된 책을 찾고 다시 돌아와 우리에게 책을 건네준다. 여기서 사서는 C(컨트롤러)역할을 하고, 책들이 꽂힌 책장은 데이터베이스(DB)이다. M(모델)은 데이터베이스 관계도를 짜는 곳으로서, 이 책은 몇번 책장, 몇번째 줄 몇번째에 꽂혀있는지 정보를 기술하는 곳이다. 엄밀히.. 2017. 2. 4.
[rails] 레일즈 핵심개념 - CRUD / REST Api [레일즈 CRUD / REST API] CRUD => Create(생성), Read(읽기), Update(업데이트), Delete(삭제)를 묶어서 일컫는 말이다. => 자원에 대한 처리를 나타내는 것으로, M(모델)과 밀접한 관련이 있다. => 데이터베이스 테이블 레코드(자원)에 대해 어떤 처리를 하느냐에 대한 것 => 레일즈는 데이터베이스 테이블(모두 선택할 수도 있고 특정 레코드를 선택할 수 있음)을 모델 객체화하여 CRUD 각각에 맞는 메서드를 사용함 (메서드 : new, find or where 후 배열 나열로 show, update, destroy) => 참고자료 : https://ko.wikipedia.org/wiki/CRUD API => Api란 제공하는 기능을 제어할 수 있게 만든 인터페이.. 2017. 2. 2.
[rails] 레일즈 기본편 - 뷰 [레일즈 뷰] - 도서관 예시 : 다시 도서관 이야기로 돌아가서 우리가 도서관에 가서 도서 대여/반납 서비스를 이용하려고 한다. 도서관에 직접갔다면 도서 대여/반납 서비스 코너가 있어야 할 것이고, 홈페이지를 통해 빌린다면 홈페이지 내에 도서 대여/반납 페이지가 개설되어 있어야한다. 개설을 하기위해서는 MVC 모두 필요하지만 도서를 대여하고 반납하는 입장의 우리는 M(모델)과 C(컨트롤러)에 대해서 알 필요 없다. 우리는 V(뷰)를 통해서 도서 대여/반납 서비스를 접할 것이기 떄문이다. 여러분들이 보는 네이버의 메인 페이지, 이외의 페이지들도 마찬가지이다. 레일즈 구조에서는 views 폴더 하위에 V 파일들이 모두 있다. - 레일즈의 뷰 파일 : 레일즈의 뷰파일은 파일이름.html.erb 로 되어있다. .. 2017. 1. 31.
[rails] routes.rb, 라우팅이란? [레일즈 라우팅(config > routes.rb 파일에 대한 이해)] - 라우팅에 대해 알아보기 전 다시 MVC에 대해 알아보자 Model : 도서가 꽂힌 책들의 정보를 저장하기위해 필요한 규칙 혹은 어떤 방식으로 저장할건지에 대한 설명이 적힌 것 View : 도서관 자체도 될 수 있고 도서 대여대, 도서 대여대가 놓인 책상 등 Controller : 사서가 도서 대여 요청 혹은 반납 요청이 들어왔을 때 어떤 일들을 해야하는지 적어놓은 지침서와 같은 것 - 라우팅이란? (도서관 도서 대여 서비스 예를 들어) 우리가 도서관에 들어가서 책을 빌리기위해서는 사서를 찾아야한다고 하였다. 도서를 빌리기위해, 반납하기위해 사서를 찾아가야하는데 routes.rb 파일은 사서를 찾아가야함을 명시해놓은 규칙과 같다. .. 2017. 1. 27.
[rails] 레일즈 기본편 - 컨트롤러 [레일즈 컨트롤러] - 도서관 예시 : 우리가 책을 빌리기 위해서 도서관을 간다. 도서관은 우리가 이용하는 장소다. 도서관은 클라이언트 페이지이고, 우리는 클라이언트이다. 둘 다 클라이언트로 분류된다. 도서관에 가서 책을 빌리는데, 이 도서관에서 책을 빌리기 위해서는 사서를 거쳐야한다. 사서에게 어떤 책을 빌리겠다라고 말하고 가져와주세요 라고 말한다. 사서가 서버 역할을 하는 것이다. 레일즈에서는 컨트롤러라고 한다. 우리와 책이 꽂힌 책장 사이에 중간 역할을 함과 동시에 우리의 요청에 의해 어떻게 동작을 할 것인지를 규정 해놓는 것이 컨트롤러가 하는 역할이다. 클라이언트인 우리가 클라이언트 페이지인 도서관에서 우리가 보고 싶은 책을 빌리기위해서 거쳐야하는 사서에게 요청을 한다. 사서는 우리가 요청한 책을.. 2017. 1. 26.
[rails] 레일즈란? [레일즈 특징]- 레일즈는 루비 기반으로 만들어진, 루비 기반 환경에서 동작하는 웹어플리케이션 프레임워크다. - 웹어플리케이션 프레임워크라는 말이 어려울 것이다. 웹어플리케이션을 구조화 하는 것을 쉽게 만들어주는 것이다.- 레일즈를 배우기위해서 루비 공부는 필수적이다. - 프레임워크란 어플리케이션의 뼈대를 설계해주는 것이다. 뼈대 설계에 필요한 도구들을 가지고 있으며 개발자가 이를 이용하면 된다.(기본적인 건설장비, 인부를 데리고 있고 쉽게 하루만에 뚝딱 건물 뼈대를 만들어줌) - 프레임워크란 나보다 이미 경험한 사람들이 어려움에 직면 했을 때 어려움을 극복한 방법을 모아둔 것. 그냥 모아둔 것이 아니라 구조적으로….(경영을 위한 프레임워크 라고 하면 경영에 도움이 되는 정보들 : 현황, 방향성, 수익구.. 2017. 1. 25.