Egloos | Log-in
결론에 가보기
결론에 가보기
[정보] rails에서 전역아닌 전역변수 - 인스턴스 변수 (반성문 추가!)
(끝까지 읽어보서야 합니다)

쩝.. 아우.. 내가 제대로 알고 있는게 무엇인지.. ㅜㅡ

인스턴스 변수(instance variable) 
루비나 레일스에서 흔히 사용하는 개별 객체(클래스 인스턴스)에 종속되는 변수이다. 
(잘 정리된 정의는 여기를 ^^)

루비보다는 레일스에서는 controller와 view의 데이터 전달을 
이 인스턴스 변수로 하기 때문에 그 활용도가 엄청나게 높다.

-- controller 
class zeousController
  def index
    @name = 'zeous'
  end
end
-- view
<%= @name %>

이 정도까지는 레일스 프로그래밍을 해본 사람이라고 하면 그냥 알수 있는 부분이었고 
내가 어제까지 알고 있는 내용이었다. 

오늘 새롭게 안 내용은

-- controller 
class zeousController
  def index
    @name ='zeous'
     print_name
  end
  def print_name
    puts @name
  end
end
-- view
<%= @name %>

이렇게 하면 print_name에서 zeous가 제대로 찍힌다는 것이다!!!!

정의를 다시 생각해보자.. 개별 객체에 종속이 되는 변수... 
이렇게 동작하는 것과 정의가 일맥상통하는데.. 난 왜 몰랐을까.. ㅠㅜ

rails에서는 1개의 request에 대해서 thread 형태로 서버에서 동작할테고
아마도 controller를 new해서 쓸테니깐.. 그 안에서는 모두 공유가 가능해지는 형태가 되는것이다. 
view에서는 루비에서 다른 클래스의 인스턴스 변수를 참조하는 방법을 바탕으로 접근하는 형태일것이다.. 

흠.. 원인과 결과, 시작과 끝이 명쾌하게 연결이 되는데.. 왜 그동안은 이렇게 생각을 못한것이지.. ㅠㅜ
에효.. 니가 아는게 머냐.. ㅠㅜ

=========================================================================================================

트랙백에서 허진영님이 알려주신 것을 바탕으로.. 다시 한번 생각, 정리, 찾아보기, 공부를 한 반성문입니다.
결론은 자바이건, 루비이건.. 제가 제대로 알고 있었던것이 한~개도 없었다는 생각이 들면서 참 쪽팔리지만
그래도 이렇게 반성문이라도 써야 할것 같아서 다시 글을 씁니다.

1. rails는 싱글 스레드입니다.

그냥 아무생각 없이 당연히 멀티이겠지.. 라는 생각으로 들어갔는데.. 아니네요..
회사에서 실서비스하고 있는 몇개의 시스템도 다시 생각해보니 lighttp나 fcgi를 통해서 3~5개를 띄워놓고 하고 있습니다.
그 이유가 레일스가 단일스레드의 형태이기때문에 이러한 형태로 운영하고 있었습니다. 


2. 자바이건 루비이건 변수종류는 동일하다.

루비에 대해서 이상하다고 느낀것이 자바쪽에서는 이런 것이 없었다라고 생각해서 그렇게 느낀것이었습니다.
자바쪽을 살펴보니..아니었네요.. 자바이건 루비이건 동일한 형태이고.. 이름도 같았네요..
(http://java.sun.com/docs/books/tutorial/java/nutsandbolts/variables.html)

루비
class BaboZeous
  @@zeous1  = '1'  : 클래스변수
  KINGORI = 10        : 상수

  def beBabo
    @zeous2 = '2'    : 인스턴스변수
    zeous3 = 3         : 지역변수
  end
end 

자바
public class BaboZeous 
{
  private String zeous2 = "2";             : 인스턴스변수
  public static String zeous1 = "1";     : 클래스변수
  public static final int KINGORI = 10   : 상수
  
  public void beBabo()
  {
     int zeous3  = 3;                           : 지역변수
  }
}

루비는 동적인 언어이기때문에 인스턴스변수의 선언 위치가 자유롭다. 하지만 변수의 생명주기는 자바와 동일하다. 

3. 창피하다.

가장 기초중의 기초이면서 상식으로 알아야 하는 변수 선언과 생명주기를 엉터리로 생각하고 있었다니..
물론 추석 연휴 다음날이라 아무 생각 없었다라고 하기에는 너무 바보 같았습니다.. 앞으로 공부 열심히 하겠습니다. ㅠ




이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 제우스 | 2009/10/05 12:56 | 컴퓨터 | 트랙백(1) | 덧글(1)
트랙백 주소 : http://zeous.egloos.com/tb/2441670
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from 상상할 수 있는 힘이 .. at 2009/10/05 16:16

제목 : Rails 요청 처리에 대한 약간의 오해와 진실 :-)
[정보] rails에서 전역아닌 전역변수 - 인스턴스 변수 제목은 거창하지만 내용은 별거 아닙니다. 기본적으로 레일즈는 다른 언어의 유명 프레임웍처럼 요청을 다중 스레드로 처리하지 않습니다. 초기부터 2.2 이전까지는 선택 옵션도 없었죠. 무조건 싱글 스레드로 처리 했습니다. 그래서 레일즈 어플리케이션의 인스턴스가 하나 뿐이라면 하나의 요청이 끝나기 전까지 요청을 처리할 수 없었습니다. 동일한 컨트롤러의 동일메소드이냐 아......more

Commented by 제우스 at 2009/10/07 15:06
추가 제보 ------------
event based 프로그래밍에 대해서는 구글링을 해보세요.
암튼 multi thread보다 진보된 형태의 socket daemon을 만들때 이런 방식을 사용하거든요.
당연히 동시에 여러 개의 request를 처리할수 있으며 thread를 fork하는데 드는 비용도 없어서 더 가볍다고 하더라구..

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶

카테고리
영화나 책
말말말
컴퓨터
게임이야기
태그
instancevariable wow 중복체크 프로젝트 selectbox jquery rails 애자일 게임 불꽃처럼나비처럼 스트레스 인스턴스변수 애자 성공 ruby 동전 oracle jeditable 리뷰 checkbox 실패 duplicate productowner C9 잡생각 영화 근황 여유 힘들어 후회
전체보기
최근 등록된 덧글
제가 할수 있는 방법은 울팀장님에..
by 제우스 at 11/20
ProductOwner의 관리라는것이..
by 제우스 at 11/20
Tuna님 반가워요.. ^^ 저번에..
by 제우스 at 11/20
어딘가에서 읽었는데... 애자일..
by Tuna at 11/20
짜증나는 상황이네요. 자기 참여..
by 오리대마왕 at 11/19
아니 그런것 까지는 어떻게 못 하..
by 데지코 at 11/19
^^ 은행마다 해주는곳과 안해..
by 제우스 at 11/12
한번 꽉 채워서 갖다주면 20만원정..
by 홍여사 at 11/12
와.. 위에 있는 코드들을 보시고 j..
by 제우스 at 10/20
jQuery의 Ajax호출은 상당히 ..
by 매드캣 at 10/19
라이프로그
10억
10억

거북이 달린다
거북이 달린다

용의자 X의 헌신
용의자 X의 헌신

마더
마더

터미네이터 : 미래전쟁의 시작
터미네이터 : 미래전쟁의 시작

스타트렉 더 비기닝
스타트렉 더 비기닝

천사와 악마
천사와 악마

노잉
노잉

7급 공무원
7급 공무원

박쥐
박쥐

인사동 스캔들
인사동 스캔들

와이키키 브라더스
와이키키 브라더스

매란방
매란방

건투를 빈다
건투를 빈다

코끼리는 생각하지 마
코끼리는 생각하지 마

배려
배려

벤자민 버튼의 시간은 거꾸로 간다
벤자민 버튼의 시간은 거꾸로 간다

작전
작전

워낭소리
워낭소리

작전명 발키리
작전명 발키리

적벽대전 2 : 최후의 결전
적벽대전 2 : 최후의 결전

트랜스포터 - 라스트미션
트랜스포터 - 라스트미션

디파이언스
디파이언스

사랑하지 않으면 떠나라!
사랑하지 않으면 떠나라!

촐라체
촐라체

쌍화점
쌍화점

황후화
황후화

크리스마스 별장
크리스마스 별장

눈먼 자들의 도시
눈먼 자들의 도시

예스맨
예스맨

순정만화
순정만화

펀치 레이디
펀치 레이디

눈에는 눈 이에는 이
눈에는 눈 이에는 이

전략적 책읽기
전략적 책읽기

돈, 뜨겁게 사랑하고 차갑게 다루어라
돈, 뜨겁게 사랑하고 차갑게 다루어라

좋은 놈, 나쁜 놈, 이상한 놈
좋은 놈, 나쁜 놈, 이상한 놈

다크 나이트
다크 나이트

H2 1
H2 1

그림으로 읽는 생생 심리학
그림으로 읽는 생생 심리학

호모 코레아니쿠스
호모 코레아니쿠스

강철중: 공공의 적 1-1
강철중: 공공의 적 1-1

이채원의 가치투자
이채원의 가치투자

쿵푸 팬더
쿵푸 팬더

카불의 사진사
카불의 사진사

인디아나 존스 4 - 크리스탈 해골의 왕국
인디아나 존스 4 - 크리스탈 해골의 왕국

시골의사의 부자경제학
시골의사의 부자경제학

종자돈 700만 원으로 부동산 투자 200억 만들기
종자돈 700만 원으로 부동산 투자 200억 만들기

우리동네
우리동네

디지로그 digilog
디지로그 digilog

대하소설 주역 4
대하소설 주역 4

읽지 않은 책에 대해 말하는 법
읽지 않은 책에 대해 말하는 법

Stick 스틱!
Stick 스틱!

색즉시공 시즌 2
색즉시공 시즌 2

바르게 살자
바르게 살자

20대는 통장을, 40대는 인생을 채워라
20대는 통장을, 40대는 인생을 채워라

점퍼
점퍼

생로병사의 비밀
생로병사의 비밀

추격자
추격자

오늘의 거짓말
오늘의 거짓말

주식시장을 이기는 작은책
주식시장을 이기는 작은책

대한민국 진화론
대한민국 진화론

무방비 도시
무방비 도시

피라니아 이야기
피라니아 이야기

우아한 세계
우아한 세계

경제를 읽는 기술
경제를 읽는 기술

실용주의 프로그래머
실용주의 프로그래머

블로그 비즈니스
블로그 비즈니스

어거스트 러쉬
어거스트 러쉬

세븐데이즈
세븐데이즈

뷰티풀 선데이
뷰티풀 선데이

괴물 1
괴물 1

킹덤
킹덤

당신과 일하기 힘들어 죽겠어
당신과 일하기 힘들어 죽겠어

뉴욕의 프로그래머
뉴욕의 프로그래머

나를 바꾸는 데는 단 하루도 걸리지 않는다
나를 바꾸는 데는 단 하루도 걸리지 않는다

벽오 금학도
벽오 금학도

해바라기
해바라기

펀드투자가 미래의 부를 결정한다
펀드투자가 미래의 부를 결정한다

상식이 통하는 웹사이트가 성공한다
상식이 통하는 웹사이트가 성공한다

아버지의 가계부
아버지의 가계부

본 얼티메이텀
본 얼티메이텀

최강 로맨스
최강 로맨스

여자도 여자를 모른다
여자도 여자를 모른다

부동산 10년 대폭락 시나리오
부동산 10년 대폭락 시나리오

아키텍트 이야기
아키텍트 이야기

보물지도
보물지도

오션스 13
오션스 13

게임회사 이야기
게임회사 이야기

바람피기 좋은 날
바람피기 좋은 날

조폭 마누라 3
조폭 마누라 3

삼미 슈퍼스타즈의 마지막 팬클럽
삼미 슈퍼스타즈의 마지막 팬클럽

광기와 우연의 역사
광기와 우연의 역사

런어웨이
런어웨이

회사가 당신에게 알려주지 않는 50가지 비밀
회사가 당신에게 알려주지 않는 50가지 비밀

롱테일 법칙
롱테일 법칙

해리 포터와 불사조 기사단
해리 포터와 불사조 기사단

사소한 것에 목숨 걸지 마라 - 습관 바꾸기 편
사소한 것에 목숨 걸지 마라 - 습관 바꾸기 편

우리가 미처 알지 못한 소프트웨어 공학의 사실과 오해
우리가 미처 알지 못한 소프트웨어 공학의 사실과 오해

트랜스포머
트랜스포머

20대부터 시작하는 스트레스 제로기술
20대부터 시작하는 스트레스 제로기술

미운오리새끼의 출근
미운오리새끼의 출근

캐리비안의 해적 : 세상의 끝에서
캐리비안의 해적 : 세상의 끝에서

미녀는 괴로워
미녀는 괴로워

유태우 교수의 내몸개혁 6개월 프로젝트
유태우 교수의 내몸개혁 6개월 프로젝트

브레이크 업 : 이별후애(愛)
브레이크 업 : 이별후애(愛)

인사이드 맨
인사이드 맨

마키아벨리, 회사에 가다
마키아벨리, 회사에 가다

웹 2.0 경제학
웹 2.0 경제학

한반도
한반도

연애, 그 참을 수 없는...
연애, 그 참을 수 없는...

구미호 가족
구미호 가족

럭키 넘버 슬레븐
럭키 넘버 슬레븐

찰리와 초콜릿 공장
찰리와 초콜릿 공장

아파트
아파트

레전드 오브 조로
레전드 오브 조로

rss

skin by jiinny
X