<14회 치매극복의날 기념행사>

 

치매가 있어도 살기 불편하지 않은 나라, 당신이 있어 참 든든합니다.”

 

치매극복의날을 아시나요? 세계보건기구(WHO)가 국제알츠하이머협회와 함께 가족과 사회의 치매환자 간호문제를 새롭게 인식하는 계기를 마련하고자 지정한 날입니다!

대한민국은 치매극복의날을 921일로 두고 있고, 올해 916일 목요일날 치매극복의날 기념행사를 진행할 예정입니다!

치매국가책임제 4주년을 기념하여 그간의 성과를 소개하고 치매극복 유공자 포상, 사례발표 등 치매극복의 공감대 형성을 이루기 위한 행사입니다.

 

행사는 2021916() 오전 10시부터 진행 예정입니다. 특히 온택트 방식으로 행사를 진행하여 누구나! 무료로! 부담 없이 참여하실 수 있습니다!

프로그램은 크게 세 가지로, 기념식 행사(유공자 시상, 기념영상 시청 등), 특별공연(치매극복 퍼포먼스 뮤지컬 함께 할거야’), 그리고 특별영상(치매인식개선 드라마 온 국민 치매공감 프로젝트 헬아부지’) 순으로 진행 예정입니다.

 

행사 참여 방법은 유튜브로 접속해서 중앙치매센터검색 및 접속, 구독 후 행사를 참여하시면 됩니다.

또한 사전신청 이벤트도 진행 중입니다! 올해 91()부터 916() 자정까지 중앙치매센터 홈페이지에 들어가셔서, 행사 팝업 클릭하시고, 사전신청을 등록하시고 유튜브 생중계에 참여해주시는 모든 분들께 소정의 선물을 드립니다!

 

많은 관심 부탁드립니다~

 

문의 치매상담콜센터(1899-9988)

 








[00:00] Sympathy for Lady Vengeance
[02:23] Guemja's Prayer
[04:10] None of Your Business
[06:57] A Witch
[11:41] A Spy
[12:36] Fatality
[15:17] Sunny Afternoon 
[16:48] You've Changed
[18:19] Marble
[20:31] The Angel
[21:37] Farewell
[22:11] Lullaby
[24:01] The Letter
[25:18] Crime and Punishment
[26:51] Pull The Trigger
[27:31] Wicked Cake
[30:18] Unhappy Party
[33:27] Mareta, Mareta No'm Faces Plorar
[39:28] Sympathy for Lady Vengeance (Another Take)
[41:51] Lullaby (Another Take)
[45:07] Ah Ch'infelische Sempre


Migration 제작하기


커맨드창에서

1
$ rails generate migration MigrationCalledBlahBlah
cs


를 치면 db/migrate 폴더안에 파일이 하나 생성된다. 긴 숫자들이 나열된 제목을 볼수있는데 (e.g. 20160421110101_...)

(년도/월/일/시/분/초_제목).rb 으로 구성되어있다.


모델(Model)을 제작하면 migration 파일이 자동으로 만들어 진다.

이 경우엔 그냥 migration 파일 수정할 필요 없이 바로 db:migrate 하면 된다.







Migration 수정하기


migration 파일안에 이미 정의된 change 메소드 안에서 db를 수정하는 방법을 정의할수 있다.




레일즈는 여러가지 수정 메소드를 제공한다.



생성:

  • create_table(name, options): 

name 이라는 db 테이블을 만든다. option에는 "DEFAULT CHARSET=UTF-8" 같은 정의를 테이블에 넣는다.


  • add_column(table_name, column_name, type, options): 

table_name 이라는 테이블에 column_name 이라는 열(column)을 추가한다. 

열의 타입은 db의 타입을 따른다(e.g. :string, :text, :integer...etc).

option 에는 { default: 0 } 같은 잡다한것을 설정할수 있다.



수정:

  • change_column(table_name, column_name, type, options):

add_column과 비슷하며 테이블의 열을 수정할때 쓰인다.


  • rename_column(table_name, column_name, new_column_name):

열의 이름만 바꾼다. 내용물을 보존한다.


  • rename_table(old_name, new_name):

위에와 비슷.



제거:

  • drop_table(name): name이라는 테이블을 제거한다.


  • remove_column(table_name, column_name, type, options): 명시된 열을 명시된 테이블에서 제거한다.




더 많은 메소드는  API  에서 찾아볼수 있다.




사용 예시:

1
2
3
4
5
class AddFieldnameToTablename < ActiveRecord::Migration[5.0]
  def change
    add_column :tablenames, :fieldname, :string
  end
end
cs






Migration 적용하기



다 수정했으면 커맨드창에서

1
 $ rails db:migrate 
cs


을 치면 된다.


주의할 점은 이미 한번 적용된 migration 파일은 수정해도 rails가 무시해버린다.

그렇기 때문에 db를 수정하고 싶다면 migration 파일을 새로 만들어야 한다.[각주:1]


수정된 db는 db/schema.rb 에서 대략적으로 파악할 수 있다.




다른 유용한 db 커맨드들:

  • db:migrate:status

migration 관련 히스토리를 불러온다. 아직 적용 안된 놈이나 step을 알아볼때 사용한다.


  • db:rollback STEP=2

migration을 명시된 STEP의 migration으로 회귀한다.


  • db:reset

db를 완전히 초기화 시킨다. db:drop 과 db:setup을 순차적으로 실행해준다.


  • db:migrate RAILS_ENV=test

일반 migrate 명령은 development 환경에서 실행된다. 이건 test 환경에서 실행되게 한다.










참조: 

http://edgeguides.rubyonrails.org/active_record_migrations.html


http://api.rubyonrails.org/classes/ActiveRecord/Migration.html


http://vaidehijoshi.github.io/blog/2015/05/19/the-secret-life-of-your-database-part-1-migrations/

  1. http://edgeguides.rubyonrails.org/active_record_migrations.html#changing-existing-migrations [본문으로]

db Table Column 지원 목록







기본적으로 SQL의 목록을 따른다.



:String

짧은 문자열. 제목이나 태그로 사용.



:Text:

긴 문자열. html의 text_area에 적합.



:Integer

숫자



:Decimal

정밀한 소수. 부동소수점을 정확하게 제공해준다.



:Boolean

true, false만 저장함.



:Binray

사진이나 영상을 원본 그대로 보존할때 사용.



:Date, :Time, :DateTime

날짜와 시간을 저장할때 사용.








Rails 4버전과 PostgreSQL을 사용한다면 이것도 가능


  • :hstore
  • :array
  • :cidr_address
  • :ip_address
  • :mac_address




참조 :

https://stackoverflow.com/questions/11889048/is-there-documentation-for-the-rails-column-types

https://stackoverflow.com/questions/3260345/list-of-rails-model-types






REST 란?


REST는 REpresentational State Transfer 의 줄임말이다.


JSON(JavaScript Object Notation) 와는 다른, 네트워크에서 리소스를 어떻게 표기하고 정의하는지를 정하는 아키텍쳐중 하나이다.

리소스는 우리가 페이지에서 표기하거나 처리하고 싶은 모든 데이터를 의미한다.


REST 아키텍쳐는 Http 의 네가지 메소드(GET, PUT, PUSH, DELETE)를 기반으로 한 각종 유니크한 명령어를 문자로 제공해준다.

예를 들어 Rails에서 articles 이라는 테이블에서 새로운 작성페이지를 'GET'으로 불러오고 싶으면: 


http://mypage/articles/new


이렇게 쓴다. 물론 new 라는 메소드는 컨드롤러에서 정의가 되어있어야 한다.




더 자세한 정의는 여기에서 찾아볼수 있다.













RESTful URL


Rails에서 REST로 제공되는 url을 알아내는 가장 간단한 방법은 Bash 에서


1
$ rake routes
cs


를 치면 된다. 그러면 REST와 관련된 리소스들의 url들이 자동으로 뜬다.



1
2
3
4
5
6
7
8
9
10
11
        Prefix Verb   URI Pattern               Controller#Action
articles_index GET    /articles/index(.:format) articles#index
  new_articles GET    /articles/new(.:format)   articles#new
 edit_articles GET    /articles/edit(.:format)  articles#edit
      articles GET    /articles(.:format)       articles#show
               PATCH  /articles(.:format)       articles#update
               PUT    /articles(.:format)       articles#update
               DELETE /articles(.:format)       articles#destroy
               POST   /articles(.:format)       articles#create
          root GET    /                         articles#index
 
cs







또 다른방법으로는 Rails에서 기본적으로 제공하는 Named Helper들이 있다.


HTTP VerbPathController#ActionNamed Helper
GET/admin/articlesarticles#indexarticles_path
GET/admin/articles/newarticles#newnew_article_path
POST/admin/articlesarticles#createarticles_path
GET/admin/articles/:idarticles#showarticle_path(:id)
GET/admin/articles/:id/editarticles#editedit_article_path(:id)
PATCH/PUT/admin/articles/:idarticles#updatearticle_path(:id)
DELETE/admin/articles/:idarticles#destroyarticle_path(:id)



Named Helper를 url처럼 사용하면 된다. 여기에서 리소스 이름은 자기가 쓰고 싶은것으로 변경하면 된다














참조: 

http://guides.rubyonrails.org/routing.html


http://www.service-architecture.com/articles/web-services/representational_state_transfer_rest.html


https://www.slideshare.net/rmaclean/json-and-rest


http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm



루비온레일즈는 많은 자동화 기능들을 제공하지만 이 기능들을 제대로 쓰려면 관례를 지키는것이 좋다.


Convention over Configuration.




-이름 짓기


변수: 모든 변수의 이름의 첫글자는 소문자로 시작해야 된다. 그리고 띄어쓰는 대신에 언더스코어(_)를 사용한다. 

Java에서 많이 쓰는 캐멀케이스(i.e. myVariable)는 사용하지 않도록 한다.


예시) my_variable, score, 등...




클래스와 모듈: 첫글자와 띄어쓰기에서 모두 대문자를 사용한다.


예시) VisitClass, CreateThisItem, 등...




데이터베이스 테이블(Table): 모두 소문자로 쓰고 띄어쓰기에선 언더스코어(_)를 사용한다. 

그리고 모든 이름은 복수형(Plural)으로 써야한다.


예시) order_items, articles




모델(M): 클래스와 똑같은 방식으로 쓰고, 테이블 이름의 단수형(Singular)으로 쓴다.


예시) OrderItem, Article




컨트롤러(C): 모델과 비슷하지만 복수형으로 적는다.


예시) OrderItemsConroller










form_for



입력받는 칸이나 저장버튼을 만들고 싶을때 ror에서 제공하는 form_for를 사용하면 편리하다.

html의 <form>을 자동으로 만들어준다.



ex)


1
2
3
4
<%= form_for (@instance_variable | :instance_symbol), url: path_to_class do | f | %>
<%= f.text_field :title %><br>
<%= f.submit %>
<end %>
cs


url 옵션으로 특정 action을 지정한다(e.g. url: post_path(@post)).


만약 리소스 인스턴스 오브젝트를 form_for에 전달한 경우(i.e. routes.rb에서 resources로 지정한 경우)에는 url 옵션을 사용하지 않아도 Rails가 자동으로 액션을 적절하게 지정해준다.












참조바람 : 


http://api.rubyonrails.org/v5.1.0/classes/ActionView/Helpers/FormHelper.html


http://guides.rubyonrails.org/getting_started.html#the-first-form

The Carpenters - Gold : Greatest Hits














1. I'll Say Goodbye To Love

3. Rainy Days And Mondays

4.This Masquerade


...



LADSPA 를 이용한 dsp 설정





1. dsp 다운로드


1
2
$ git clone https://github.com/bmc0/dsp.git  
$ cd dsp







2. 컨볼버 플러그인 이나 다른 기타 이펙트를 해제하길 원하면 먼저 이렇게 설정하고


1
$ ./configure --disable-dsp --disable-fftw3 --disable-zita-convolver



아니면 그냥 ./configure 하면 된다.






3. 빌드하고 인스톨 한다.


1
2
$ make
$ make install






4. configuration 파일을 아래 세개의 디렉토리중 하나를 선택해서 만들면 된다(디렉토리가 없으면 만들면 됨).

  • $XDG_CONFIG_HOME/ladspa_dsp/config
  • $HOME/.config/ladspa_dsp/config (if $XDG_CONFIG_HOME is not set)
  • /etc/ladspa_dsp/config






5. configuration 파일 안에 eq 설정들을 저장하면 된다.



ex) 로우쉘프 게인 적용시키기


effects_chain=gain -3.0 lowshelf 90 0.9s +3.0


effects_chain 을 적고 그 뒤로 

gain [전체 게인(dB)] [슬로프] [주파수(Hz)] [Q값(Q)] [게인(dB)]

이런식으로 적으면 된다.



밴드 하나당 맨 앞에 eq 하나씩 적어주면 된다.

ex) eq 2k 2.0 -3.0 eq 10k 0.8 +5.0 ...........



더 자세한 옵션들은 README 를 참조...







6. dsp 를 시스템 초기화 할때마다 키는건 귀찮기 때문에 자동으로 키게 설정해야 한다.




ALSA 설정법


PulseAudio 설정법





7. ALSA 는 pcm 리셋을 시키면 적용이 되고($ alsa reload), PulseAudio는 서버를 재시작하면 된다($ pulseaudio -k).








참조 : https://github.com/bmc0/dsp/wiki/System-Wide-DSP-Guide

https://github.com/bmc0/dsp/blob/master/README.md#configuration



GCC, G++ 사용법




1. 코드 입력후 .c 나 .cpp 로 저장한다. (~/Documents/example.c)



2. 컴파일 하여 실행파일을 같은 폴더에 저장한다.(~/Documents)


 $ gcc ~/Documents/example.c -o ~/Documents/executable


혹은 C 파일이 들어있는 폴더로 이동후 컴파일하여 실행파일을 저장한다.


 $ cd ~/Documents

 $ gcc example.c -o executable



3.  프로그램 실행


 $ ./Documents/executable 혹은 ./executable



4. C++ 파일은 g++ 로 동일하게 컴파일후 실행하면 된다.






5.  그 외 쓸만한 디버깅 옵션들...


-g : gdb 디버깅 기능을 활성화 시킨다.


-Wall : 문법상 문제는 없지만 의심스러운 코드들을 경고로 표시해준다.


-0(숫자0) : 리눅스에 최적화된 코드 생성











Valgrind 디버거 사용법



malloc(), realloc(), calloc() 같은 메모리 동적 할당을 하고 해제 해야하는건 누구나 아는 기본중 기본이다.


하지만 사람은 끝도없는 실수를 반복해서 Valgrind 같은 메모리 leak를 잡아주는 디버거를 사용해야한다...





1.

http://www.valgrind.org/ 

사이트로 이동해서 최신버젼의 소스코드를 다운받고 압축 해제한다.



2. 설치한다.


 $ cd valgrind-3.0.4 

 $ ./configure 

 $ make 

 $ make install



3. 컴파일 된 실행 파일을 valgrind 로 디버깅 한다.


 $ valgrind -v --leak-check=yes ./executable



4. 실행 결과





still reachable 은 무시해도 된다.


-g 옵션을 사용하여 더 자세하게 출력시킬수 있다.






참조 : 


- gcc 

http://pages.cs.wisc.edu/~beechung/ref/gcc-intro.html

https://gcc.gnu.org/


- valgrind

http://valgrind.org/docs/manual/quick-start.html


+ Recent posts