pat coding

[RUBY & Rails]루비 와 레일즈 면접 예상질문 정리! 본문

Interview

[RUBY & Rails]루비 와 레일즈 면접 예상질문 정리!

uuukpyo 2019. 11. 15. 21:41
728x90

루비와 레일즈관련 예상면접 질문!

 

1. MVC 패턴 작동 방식

Rails는 기본적으로 MVC(Model, View, Controller)패턴이란 디자인패턴을 사용한다.

MVC패턴이란 클라이언트에서 요청을 컨트롤러가 받으면 모델을 통해 데이터를 가져오고, 그정보를 바탕으로 뷰를 통해 사용자에게 전달하는 것이다.

 

2. 변수 정의

Ruby의 변수형태는 4가지가 있다.

- var 지역변수 : 특정 동작 내부에서만 사용, 인스턴스변수나 전역변수와는 다르게 초기화전 nil 값을 가지고 있지 않음

- @var 인스턴스변수 : 한 객체에서만 사용가능, 처음 값이 대입될 때 동적으로 객체에 추가됨

- @@var 클래스변수 : 해당 클래스 파일내에서 사용가능, 사용 전 반드시 초기화를 해야함

- $var 전역변수 : 어떤 곳에서든 사용가능

 

3. find ,find_by, where 의 차이

- find : 기본키에 해당하는 내용을 추출해온다. 기본키가 아닐 경우 ActiveRecord :: RecordNotFound 예외가 발생한다.

- find_by : 주어진 조건에 맞는 내용 중 첫번째 내용만 추출해온다. 주어진 조건이 없으면 nil을 반환.

- where : 주어진 조건에 일치하는 모든 내용을 추출해온다. NOT, AND, OR 조건으로 추출해오며, 조건에 일치하지

  않을 경우 ActiveRecord_Relation 이 발생한다.

 

4. 심볼과 문자열의 차이

심볼과 문자열 둘다 객체이다.

그러나 심볼은 : 으로 선언, 문자열은 "" 나 ''로 선언해준다.

또한 심볼은 한번 선언하면 변경이 불가능한 객체이다. 하지만 값을 덮어쓰기는 가능하다.

문자열은 실행시점까지 어떤 값을 가지고있는지 알 수 없기 때문에 서로 다른 메모리 공간을 차지하고 있어야 한다.

하지만 심볼은 한번 메모리상에 생성되고나면 동일 한 객체로 재사용이 가능하기때문에 문자열보다 심볼을 사용해서 메모리 효율성이나 성능을 높일 수 있다.

 

5. sava 와 save! 의 차이

쉽게말해 ! 를 붙이면 not 의 의미라고 할 수 있다.

save => 데이터에 저장이 될 경우 실행

save! => 저장이 안 될 경우 실행

728x90
Comments