Computer/Java2012/02/07 09:10
Mac OS X은 기본적으로 자바가 설치 되어 있다. 
다음 과 같은 경로에 설치가 되어 있다.
/System/Library/Frameworks/JavaVM.framework/Versions/Current
하지만 자바 소스 인 src.jar 및 doc.jar는 없는데 이것 은 Java for Mac OS X 10.x Update x Developer Package를 별도로 설치해야 하고 애플 사이트에 계정이 있어야 다운로드를 할 수 있다.

여기서 Java Developer Package 를 검색하여 다운 받자. Apple Developer Downloads Website

설치를 하면 다음과 같은 경로에서 해당 파일들을 찾을 수 있다.
/Library/Java/JavaVirtualMachines/1.6.0_29-b11-402.jdk/Contents/Home

그리고 해당 IDE에서 소스 연결을 하면 쉽게 소스를 참조할 수 있다. 

 
저작자 표시 비영리 변경 금지
Posted by Bitaholic ...Simple is beautiful Bitaholic
Computer/Linux2011/09/23 09:46
두 파일의 차의가 항상 궁금 했었다.
좋은 문서를 발견! : 
goo.gl/ZN4vF

간략히 설명하면 .bash_profile은 login shell 을 위한 것이고, .bash_rc는 interactive non-login shell들을 위해 실행되는
파일이다.

그럼 login, non-login shell은 무엇인가?
console에서 바로 로그인을 하던 ssh를 이용해 리모트에서 로그인을 하던 로그인 할 때 단 1회만 .bash_profile은
실행이 된다. 반면에 로그인한 쉘에서 새로운 배쉬 쉘을 실행한다거나  Gnome 같은 환경에서 터미널 프로그램으로
새로운 쉘 창을 열면 열때 마다 .bashrc가 실행이 된다. 

단 Mac OS X은 예외 인데 멀로 하던 .bash_profile이 실행이 된다.
 (.bashrc에 써봤자 실행이 안돼 반영이 안된다 -삽질주의)

그럼 문서의 저자가 추천하는 방법은 대부분 .bash_profile에 들어가 있는데 대부분의 내용을 .bashrc에 쓰고
.bash_profile에서 해당 파일을 실행하는 방법을 쓰라는 것이다.
다음과 같이

 if [ -f ~/.bashrc ]; then
   source ~/.bashrc 
 fi

끝!

 
 
저작자 표시 비영리 변경 금지
Posted by Bitaholic ...Simple is beautiful Bitaholic
분류없음2011/04/12 16:25


구입일 : 2008년 11월 (만 2년 6개월)
판매금액 : 95만원
판매장소 : 강남~역삼? 직거래
구성품 : iMac 24인치 + 키보드 + 마우스 + 설치시디 + 리모콘

2년간 잘 쓴 아이맥 분양 해요~ 관심있으신 분은 연락주세요~^^ 스노우 레오퍼드로 초기화 해드려요^^
 

저작자 표시 비영리 변경 금지
Posted by Bitaholic ...Simple is beautiful Bitaholic
독서2011/03/15 17:39
글로벌 소프트웨어를 꿈꾸다
http://goo.gl/wlynw

회사의 필독서 로 "글로벌 소프트웨어를 꿈꾸다" 를 보게 되었다. 
국내의 척박한 소프트웨어 개발 환경에 있는 개발자들이 꿈꾸는 실리콘밸리의 많은 소프트웨어 개발 회사들.
필자는 그곳은 왜 개발자들의 천국이고 우리나라의 많은 소프트웨어 회사는 왜 해외로 진출 하지 못하고, 3D 업종이라니 이런 소리만 듣는지 비교를 해 놓았다.
크게 다섯가지를 예를 들어 설명을 했는데 [기반 시스템, 조직, 프로세스, 문화, 기술] 이 다섯가지이다.

특히 프로세스에 대해서는 많은 사람들이 거부 하는 경향이 있는데, 이 문제에 대해서 주먹구구식으로 프로세스 없이 개발 하는 것과 잘못된 방법으로 프로세스를 적용 하는것을 거의 동급으로 아니 더 나쁘게 보았다. 즉 소프트웨어 공학은 책으로 배울 수 없는 것으로 경험이 많은 사람으로 부터 배워야 한다는 것이다.  아무리 좋은 프로세스를 가져 와도 잘 못 이해하고 적용하면 개발이 더 힘들어질 뿐이라는거다. 지식이 없는 경험 보다 경험 없는 지식이 더 무섭단다. 

또한 SRS에 대해서도 강조를 하는데 이건 나도 공감을 한다. 요구사항, 스펙 문서들을 먼저 완벽하게 자세히 작성을 하고 개발을 하면 좋을 거 같다. 하지만 필자도 얘기 했듯이 그런 문서작성 방법이나 프로세스 적용은 몸으로 체험하고 있고 일상화가 되어 있는 어떤 선임한테 배워야 하는데 ㅋㅋ 그건 어떻게 해야 할까? 의지와 책만으로는 안된다는데 어디서 레전드급 개발자를 만나고 배우지? 꿈만 꾸고 있어야 하나? ㅋㅋ 그래도 노력은 해야겠지? 개발자, 사장님 모두들 마음을 뭉치고 조금씩 해 나가면 우리 회사도 실리콘 밸리 부럽지 않은 문화를 가진 회사가 되지 않을까? 나부터라고 당장 실행? Just Do It!!  
 
저작자 표시 비영리 변경 금지

'독서' 카테고리의 다른 글

글로벌 소프트웨어를 꿈꾸다.  (1) 2011/03/15
위험한 경제학  (0) 2009/10/08
아빠 노릇 제대로 하고 삽시다  (0) 2009/09/30
바람의 딸 한비야  (0) 2009/09/30
독서를 합시다!  (0) 2009/09/14
Posted by Bitaholic ...Simple is beautiful Bitaholic
Computer/Spring2010/10/20 16:41
스프링을 쓰면 Http Request를 적절한 클래스의 적절한 메소드로 연결하는(Mapping) 작업을 비교적 쉽게 할 수 있다. 여러가지 방법이 있지만 Java Annotation (@RequestMapping)을 이용해서 클래스 또는 메소드에다가 쓰면 해당 규칙에 맞는 Http Request가 그 메소드를 호출 할 수 있도록 해준다. 그 규칙은 Request URL, Request Header, Request parameter , Http method 조합으로 정해 주는데 Request URL은 ant 타입으로 쓸 수 있다. ( *, ** 를 쓸 수 있다) 

ex1)
아래의 예는 http://host/context/user 로 오는 요청을  handlerUser(..) 메소드에 전달 해준다.
@RequestMapping("/user")
public void handleUser(...) {...}

ex2)
아래의 예는 Header로 content-type이 text/*에 해당되고 /user로 요청만 메소드로 전달해준다. 
@RequestMapping(value = "/user", headers="content-type=text/*")

Path Variable
Spring 3.0에서는 RESTful webservice를 지원하기 위해 path variable기능이 추가 되었다. 간단하게 설명하면 " /부서/이름" 이런 포맷의 REST요청을 URL을 파싱하지 않고 바로 메소드 인자로 받을 수 있는 기능이다. 
아래와 같이 선언을 하면 각 URL의 부분들이 해당 인자로 매핑이 된다.  
@RequestMapping(value="/{department}/{employee}")
public void handleMethod(@PathVariable String department, @PathVariable String employee) {...) 

Suffix Pattern
이때 DefaultAnnotationHandlerMapping 은 @RequestMapping에 자동으로 몇몇 접미어를 붙여서 ReqestMapping 리스트에 추가 한다. 즉 위와 같은 예에서는
  • /{department}/{employee}
  • /{department}/{employee}.*
  • /{department}/{employee}/
위와 같은 RequestMapping을 자동으로 추가해 준다. 즉 /sales/thomas, /sales/thomas/, /sales/thosmas.add 와같은 URL로 자동으로 매핑이 된다. 이러한 패턴을 쓰기 싫으면 DefaultAnnotationHandlerMapping 에서 해당 옵션을 꺼주어야 한다. 스프링 설정 파일에서 다음과 같이 설정을 꺼줄 수 있다.
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
   <property name="useDefaultSuffixPattern" value="false"/>
</bean>


저작자 표시 비영리 변경 금지
Posted by Bitaholic ...Simple is beautiful Bitaholic
Computer2010/10/15 09:31

Eclipse 로 여러 다른 O/S ( ex. Mac OS X, Windows 7 ) 에서 협업을 할 때 영문자는 상관이 없지만 자바 파일에 한글로 주석을 달고 SVN 같은 버전관리 저장소에 프로젝트를 공유 할 때 맥에서 한글로 주석을 단 자바 파일을 윈도우에서 열어보면 또한 반대로 했을 때 한글이 깨지는 문제가 생긴다. 이때 파일이나 프로젝트의 프로퍼티에서 인코딩을 바꿔도 되지만 전체 이클립스 설정을 바꾸면 프로젝트를 만들 때 만다 인코딩을 바꾸는 일을 안해도 된다. 이 설정은 아래와 에 있다

1. MacOS X (SnowLeopard), Eclipse 3.5.2
   Eclipse -> Preferences... 
   General -> Workspace -> Text file encoding 에서 Default에서 Other에서 UTF-8 로 선택하면 된다. 


위에서 보는 거와 같이 Mac OS X은 디폴트 텍스트 인코딩이 MacRoman으로 되어 있다 이것을 UTF-8로 바꾸고 OK나 Apply버튼을 누르면 된다. 윈도우7도 마찬가지로 Default가 "Cp1252"으로 되어 있고 UTF-8로 바꾸어 주면된다.]
저작자 표시 비영리 변경 금지

'Computer' 카테고리의 다른 글

Eclipse로 여러 O/S 프로젝트를 협업할 때...  (0) 2010/10/15
Tomcat Tip #1  (0) 2009/09/18
Posted by Bitaholic ...Simple is beautiful Bitaholic
여행, 호텔2010/09/30 09:24
지희랑 내가 좋아하는 닭붉고기 먹으러 양평으로 간만에 나들이 
닭불고기 2판이나 배터지게 먹고 날씨도 좋아 남이섬 나들이도 갔는데 많이 올랐네 입장료가 8000원이나 효민이도 4000원 저녁은 숯불 닭갈비를 먹었는데 그냥 고기만 있어서 별로인듯 담엔 보통 먹는 춘천 닭갈비인 철판 닭갈비를 먹어야겠어요. 간만에 야외 나들이라 즐거운 하루였슴다^^

저작자 표시 비영리 변경 금지
이 장소를 Daum지도에서 확인해보세요.
강원도 춘천시 남산면 | 남이섬
도움말 Daum 지도

'여행, 호텔' 카테고리의 다른 글

남이섬 나들이  (0) 2010/09/30
여름 휴가 갔다왔어요  (0) 2007/08/20
부산 가다!  (0) 2006/08/17
Posted by Bitaholic ...Simple is beautiful Bitaholic
Computer/Spring2010/09/16 10:24
토비 스프링 책 스터디를 하다 트랜잭션 부분을 하는 데 도대체가 Auto Commit을 끄고 롤백을 시도해도 롤백이 되지 않았다 디비를 살펴보니 Commit 또는 Rollback 하기 전에 디비에 적용한 것들이 바로 디비에 적용이 되는 것이였다. 즉 Transaction 처리가 안된다는 건데 구글링 해보니 문제는 테이블의 Engine type이였다. 내가 만든 테이블은 MyISAM이였는데 트랜잭션은 InnoDB로 해야 한단다 (참고 : http://dev.mysql.com/doc/refman/5.0/en/connector-j-usagenotes-j2ee.html 의 20.3.5.2.4.2. Transactional JDBC Access) 

테이블의 Engine 타입을 변경하는 것은 아래와 같이 하면 된다. 
  ALTER TABLE my_table ENGINE = InnoDB;


 
저작자 표시 비영리 변경 금지
Posted by Bitaholic ...Simple is beautiful Bitaholic
Computer/Ruby&Rails2009/11/27 11:14




Mongrel 은 루비웹서버이다. Rails에서 WebBrick과 함께 쉽게 쓸 수 있는 웹서버인데, 하지만 몽그렐은 하나의 프로세스에 하나의 쓰레드로만 돌아가기 때문에 상용서비스를 하려면 아파치 웹서버를 프락시 서버 및 로드 밸런서로 쓰고 뒤에 다수의 몽그렐 서버를 클러스터로 구성 해야 한다. (이때 서버들 간의 세션 공유는 아마 가정하지 않고, 공유 되는 정보는 모두 DB에서 이루어지는 것을 가정해야 한다. 이부분은 아직 자세히 보진 않았다) 

1. 아파치 웹서버를 프락시 서버로 구성하기 
  a) mod_proxy, mod_rewrite 아파치 모듈이 필요하다 (없으면 다운받아서 아파치 서버 모듈폴더에 넣어두자)
      - 폴더는 CentOS5.x기준으로 '/etc/httpd/modules' 이다
  b) 위의 모듈을 로딩하고 설정을 해준다 (/etc/httpd/conf/httpd.conf)
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

<IfModule mod_proxy.c>
ProxyRequests On

<Proxy *>
    Order deny,allow
    #Deny from all
    Allow from all
</Proxy>


RewriteEngine On

<Proxy balancer://mongrel_cluster>
     BalancerMember http://127.0.0.1:8000 retry=10
     BalancerMember http://127.0.0.1:8001 retry=10
     BalancerMember http://127.0.0.1:8002 retry=10
</Proxy>

# PERFORMANCE: If no static file exists, let Mongrel handle the request
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]
 
2. Mongrel cluster 설치
gem install mongrel
gem install mongrel_cluster
 tip) gem 으로 몽그렐 설치시 'make : xxx[fastthred.c] Error 127' 이라는 에러가 나면 gcc가 서버에 설치가 안되있어서 그러니 관련 라이브러리르 설치 하자.
  - centOS에서는
      - yum install gcc-c++ kernel-devel
  - Devian계열은
      - apt-get install build-essentail
으로 설치 하면 된다. centOS에는 테스트 해서 성공했는에 우분투등 데비안 계열을 해보진 않았다. 아마 되겠지

3. Mongrel을 서비스(데몬)으로 등록하고 부팅시 자동 스타트 되게 만들기  
   몽그렐은 기본적으로 레일스 어플리케이션 폴더에서 실행을 해야 한다. (로그폴더(log), 설정폴더(config), 임시폴더(tmp) 등이 필요하다), 물론 저 폴더들을 따로 옵션으로 지정을 할 수 도 있다.
 
    i) Mongrel 서버를 띄우 리눅스 계정을 하나 만들어 준다.
      $ adduser -r mongrel

    ii) 레일스 어플리케이션 홈폴더에서
    $ mongrel_rails cluster::configure -e production -p 8000 -N 3

위의 명령으로 기본 설정파일등을 만들어 준다.(위의 설정은, 포트 8000, 8001, 8002로서 서버 3개를 클러스터로 시작한다는 말이다.

iii) 그러면 아래와 같은 명령으로 몽그렐클러스터 를 시작하고 종료시킬수 있다.
$ mongrel_rails cluster::start
$ mongrel_rails cluster::stop

iv) /etc/mongrel_cluster 라는 폴더를 만들어 준다.

v) /etc/mongrel_cluster/yourrailsapp.yum 이라는 링크를 만들어 준다.
$ ln /MyRailsAppHome/config/mongrel_cluster.yml /etc/mongrel_cluster/myrailsapp.yml

vi) 자동스타트를 위해 init.d 파일을 /etc/init.d/ 폴더 밑으로 복사한다. (스크립트는 몽그렐을 설치하면
생성되 있다.
$ cp /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d

vii) mongrel_cluster 스크립트의 실행 권한을 주고 자동 실행이되게 관련 값을 변경해 준다.
$ chmod +x /etc/init.d/mongrel_cluster
$ service mongrel_cluster start
$ chkconfig mongrel_cluster on
    viii) /etc/mongrel_cluster/에 복사한 몽그렐 설정 내용은 대충 이럴것 이다.
user: mongrel
cwd: /myRailsAppHome
log_file: /myRailsAppHome/log/mongrel.log
port: "8000"
environment: production
group: mongrel
address: 127.0.0.1
pid_file: /myRailsAppHome/tmp/pids/mongrel.pid
servers: 3

    iX) 위의 폴더중, log, pid폴더에 접근권한을 mongrel 유저에게 주어야 한다.
      $ chown -R mongrel.mongrel /myRailsAppHome/log
      $ chown -R mongrel.mongrel /myRailsAppHome/tmp/pids

위와같의 하면 서버 실행시 아파치와 몽그렐 클러스터가 실행될 것이다.

Ref) http://www.mygeekproject.com/?p=155
Ref) http://mongrel.rubyforge.org/
Ref) http://wiki.rubyonrails.org/deployment/apache-mongrel
저작자 표시 비영리 변경 금지

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

Apache + Mongrel 설정  (0) 2009/11/27
Posted by Bitaholic ...Simple is beautiful Bitaholic
Computer/Linux2009/11/25 11:00
설정 파일들은 '/etc/httpd/conf'에 있다.
httpd 실행 파일은 '/usr/sbin/httpd' (cent OS 5 기준)

아파치 실행/중단은
  service httpd start/stop/restart
로 하면 된다.
저작자 표시 비영리 변경 금지
Posted by Bitaholic ...Simple is beautiful Bitaholic