프로그래밍(301)
-
[rails] rails 애플리케이션 폴더 구조
/myapp/app : 애클리케이션의 메인 폴더./assets : 어셋(자바스크립트, 스타일시트, 그림 등의 리소스)/images/javascripts/stylesheets/controllers : 컨트롤 클래스/concerns : 컨트롤 공통 모듈application_controller.rb : 애플리케이션 공통 컨트롤러/helpers : 뷰 헬퍼application_helper.rb : 애플리케이션 공통 뷰 헬퍼/mailers : 액션 메일러 구현 클래스/models : 모델 클래스/concerns/views : 뷰 스크립트/layouts : 레이아웃application.html.erb : 애플리케이션 공통 레이아웃/bin : 코드 생성 또는 개발 서버 실행에 사용되는 헬퍼 스크립트/config : ..
2016.03.20 -
[linux] Swap 메모리 늘리기
Swap 메모리는 주 메모리가 부족할 때 사용하기 위한 가상메모리다.swap 영역을 확보하기 위해서 swap 파일을 생성하면 된다. swap 파일 생성1sudo dd if=/dev/zero of=/swapfile bs=1024 count=100000cs 1G 파일 생성 swap 파일로 포멧1sudo mkswap /swapfilecs swap 공간 활성화1sudo swapon /swapfilecs 리부팅 시 비활성화가 도니다면/etc/rc.d/rc.local에 공간 활성화 부분을 추가한다. swap 삭제(필요 없게 되었다면)12sudo swapoff /swapfilerm /swapfilecs
2016.03.20 -
[Rails] Rails의 설계 철학. DRY and CoC.
DRY(Don't Repeat Yourself) : 같은 코드를 반복하지 말 것Coc(Convention over Configuration) : 설정보다 규약이 중요 Rails는 소스 코드 내부에서 같은 처리나 정의를 반복해서 사용하는 것을 극도로 지양한다.ex) DB 스키마 정의를 설정 파일로 별도 작성하지 않는다. DB 테이블을 만드는 것만으로도 Rails가 알아서 해준다. DRY 원칙을 지탱해주는 것은 CoC 원칙이다.ex) users 테이블을 읽어들이려면 User이라는 이름의 클래스를 이용해야 한다.서로 간의 규칙을 정의할 필요 없다. users(복수형)과 User(단수형)으로만 맞춰 작성하면 테이블과 클래스를 연결해준다.
2016.03.20 -
[용어] 라이브러리와 프레임워크
정의앞선 사람들의 지혜를 사례라 부르고 이런 것이 정형화 되고 축적된 것이 프레임워크라고 한다.문제를 일반화하고 해결하기 위한 틀이라고 할 수 있다. 개발자는 프레임워크가 제공하는 기초적인 코드 위에 독자적으로 코드를 추가할 수 있다.일정한 품질을 가진 애플리케이션을 쉽게 생성할 수 있는 장점이 있다.컴퓨터로 따지면 마더보드와 같은 역할을 하고 우리는 여기에 메모리, 팬, CPU를꽂듯이 코드를 추가하면 된다. 라이브러리 vs 프레임워크라이브러리사용자 코드에서 호출되어야 한다. 라이브러리는 스스로 무언가를 하지 못하고 사용자 호출 시 자신의 코드를 실행한다. 프레임워크스스로가 사용자 코드를 호출한다. 자신의 라이프 사이클을 직접 관리한다.프레임워크는 사용자 코드를 직접 지배한다. 제어반전이렇게 프로그램의 ..
2016.03.20 -
[Boost] 설치
https://www.boost.org/에서 최신버전을 다운 받는다. bootstrap.bat을 실행하면 b2.exe와 bjam.exe가 두 exe가 나온다. 빌드하기b2 바이너리로 컴파일 하고 라이브러리를 뽑아내면 된다. 1b2 toolset=msvc-14.0 variant=debug,release link=static threading=multi address-model=32 runtime-link=sharedcs 대충 이런 꼬라지로 만들면 된다. 옵션은 프로젝트의 성격에 맞게 정하면 된다. 자세한 옵션http://www.viper.pe.kr/cgi-bin/moin.cgi/Boost lib가 뽑아져나온다. 프로젝트 속성에 VC++ 디렉토리 설정에서 폴더를 정해준다.include 디렉토리에 boost_..
2016.03.19 -
[effective STL] 항목 34 : 정렬된 범위 동작 알고리즘들
기본적으로 정렬된 데이터를 넘겨 동작하는 알고리즘들이 있다는 이야기. binary_search, lower_bound, upper_bound, equal_range: 반드시 정렬된 데이터. 내부적으로 이진 탐색을 사용해 값을 찾는다. set_union, set_intersection, set_difference, set_symmetric_difference: 기본적으로 선형시간으로 동작하지만 정렬하지 않은 데이터는 터무니 없이 느리다. merge, inplace_merge: 두 정렬된 범위를 받아 합치는 알고리즘으로 하나라도 정렬되지 않으면 동작하지 않는다. includes: 어떤 범위 안에 값이 있는지 여부를 알아보는 알고리즘. 정렬되어 있음을 가정하고 동작한다.기본적으로 선형시간이지만 정렬되어 있지 ..
2016.03.19