<% %>


루비코드를 실행하기 위해서 사용 된다.

 <%= %>


erb 파일에서 데이터들을 보여줄 때 사용 된다.

 <% -%>


표현 후 줄바꿈을 하지않기 위해 사용 된다.

 <%# %>


주석처리를 하기 위해 사용 된다.

'Rails' 카테고리의 다른 글

[Rails] Ruby array to string  (0) 2017.09.29
[Rails] rails 시작하기  (0) 2017.09.08
Posted by kkangMH

2017. 9. 29. 15:13 Rails

[Rails] Ruby array to string

루비에서 array로 되어있는 데이터를 원하는 구분자를 이용하여 string 으로 전환을 하고 싶을 때 join을 이용하면 된다.


 test_arr = Array.new


 test_arr << A

 test_arr << B

 test_arr << C


#[A, B, C]



이런식으로 배열을 생성하고 값을 추가되어있을 때 구분자를 "|"를 이용하여 배열의 값을 string으로 변환을 하고 싶을 때 join을 사용하면 된다.



 test_arr.join('|')


#A|B|C


'Rails' 카테고리의 다른 글

[Rails] rails erb 에서 <%, <%=, <%#, -%>의 차이점  (0) 2017.10.12
[Rails] rails 시작하기  (0) 2017.09.08
Posted by kkangMH

브로드캐스트 리시버는 안드로이드에서 발생하는 여러 동작(화면이 on/off, 전원이 on/off, SMS 수신등..)들을 받고자 하는 곳에 알려주는 기능을 합니다. 방송알림정도로 표현을 할 수 있습니다.


먼저 SMS를 수신하기 위해서는 manifests 파일에 SMS에 대한 권한을 추가해야 합니다.

<uses-permission android:name="android.permission.RECEIVE_SMS"/>


또한 SMS가 왔을 때 수신을 받기위해 BroadcastReceiver를 추가해줘야 합니다.


아래의 예시 코드를 참고

<uses-permission android:name="android.permission.RECEIVE_SMS"/>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<receiver android:name=".SMSReceiver">
<intent-filter >
<!-- 문자를 받을 수 있도록 intent filter를 추가 -->
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>


이제 BroadcastReceiver 부분에서 SMS를 받았을 때의 액션을 처리하면 됩니다.
SMS에 대한 액션일때만 처리하기 위해 intent의 액션을 비교하여 처리하였다.


아래 예시코드를 참고

public class SMSReceiver extends BroadcastReceiver {
private String SMSACTION = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {

if(intent.getAction().equals(SMSACTION)){
Bundle bundle = intent.getExtras();

if(bundle != null){
Object[] pdusObjArr = (Object[]) bundle.get("pdus");

SmsMessage[] messages = new SmsMessage[pdusObjArr.length];
for(int i = 0 ; i < pdusObjArr.length ; i++){
messages[i] = SmsMessage.createFromPdu((byte[]) pdusObjArr[i]);
}

Date curDate = new Date(messages[0].getTimestampMillis());
Log.d("@@문자 수신 시간", curDate.toString());

String number = messages[0].getOriginatingAddress();
Log.d("@@발신 번호 확인", number);

String smsBody = messages[0].getMessageBody().toString();
Log.d("@@문자 내용", smsBody);

}
}
}
}

핸드폰 인증에 대한 인증번호를 가져오는 방식도 SMS 내용을 가져오고 원하는 부분만 찾아서 사용하면 됩니다.

Posted by kkangMH

Android OS 버전정보

 

 

 

C

Cupcake

(컵케이크)

1.5 

Donut

(도넛) 

1.6 

E

Eclair

(이클레어)

2.0 ~ 2.1 

F

Froyo

(프로즌 요거트) 

2.2 ~ 2.2.1 

G

Gingerbread

(진저브레드) 

2.3 ~ 2.3.7

H

Honeycomb 

(허니콤)

3.0 / 3.1 / 3.2 

I

Ice Cream Sandwich 

(아이스크림 샌드위치)

4.0 ~ 4.0.4

J

Jellybean

(젤리빈) 

4.1 ~ 4.3.1 

K

KitKat

(킷캣) 

4.4 ~ 4.4.4 

Lollipop

(롤리팝)

5.0 ~ 5.1.1

Marshmallow

(마시멜로) 

6.0 ~ 6.0.1

N

Nougat

(누가) 

7.0 ~ 7.1.2 

O

Oreo

(오레오) 

8.0 ~ 



Posted by kkangMH

GCM 으로 메시지를 전달을 할 경우 서버로부터 전달한 요청에 대한 response를 받을 수 있습니다.

그 방식으로 GCM을 통하여 클아이언트에서 GCM을 받을 수 있는 상태인지, 앱이 삭제되어있는 상태인지 등의 상태등을 확인을 할 수 있습니다.


 - GCM 전송 작업에서 문제가 생겼을 경우 코드를 반환합니다.

Error

Http Code 

 Missing Registration Token

 200 + error:MissingRegistration

 Invalid Registration Token

 200 + error:InvalidRegistration

 Unregistered Device

 200 + error:NotRegistered

 Invalid Package Name

 200 + error:InvalidPackageName

 Authentication Error

 401

 Mismatched Sender

 200 + error:MismatchSenderId

 Invalid JSON

 400

 Message Too Big

 200 + error:MessageTooBig

 Invalid Data Key

 200 + error: InvalidDataKey

 Invalid Time to Live

 200 + error:InvalidTtl

 Timeout

 5xx or 200 + error:Unavailable

 Internal Server Error

 500 or 200 + error:InternalServerError

 Device Message Rate Exceeded

 200 + error: DeviceMessageRate Exceeded

 Topics Message Rate Exceeded

 200 + error: TopicsMessageRate Exceeded

 Invalid APNs credentials

 200 + error: InvalidApnsCredential


 * 디바이스가 GCM ID등 문제가 없을 경우 바로 전달이 됩니다.

 * 디바이스에서 해당 어플을 삭제하였거나, GCM을 받지 못하는 상황일 경우 response로 NotRegistered error를 반환을 합니다.


참고 : https://developers.google.com/cloud-messaging/http-server-ref

Posted by kkangMH

플레이스토어에 앱을 올리기 위해서는 release key를 생성하여 APK를 만들어야합니다.

release key를 새로 만들고 APK를 만드는 방법을 소개합니다.


1. 안드로이드 스튜디오 메뉴중 Build -> Generate Signed APK.... 을 클릭합니다.




2. create new... 버튼을 클릭하여 새로운 key를 만들어봅시다.






3. 빤간 밑줄이 있는 버튼을 클릭하여 key를 만들 경로를 선택합니다.




4.경로를 선택하고 file name을 설정해줍니다.




5. 밑에 보이는 방식으로 비밀번호와 Alias의 이름과 비밀번호를 설정해주고 국가코드는 kr로 설정해줍니다.




6. release apk는 방금 만든 key를 선택 및 비밀번호를 입력하고 next를 눌러줍니다.




7. APK가 생성될 경로를 선택하고 마지막으로 Finish를 누르면 완료


Posted by kkangMH

Activity 에서 Activity로 값을 넘겨줄때 사용하는 intent의 값을 삭제하기 위해서는 


넘겨줄때 KEY를 이용하여 removeExtra를 사용하면 됩니다.


 getIntent().removeExtra(KEY);


Posted by kkangMH


1. 설치파일을 공식홈페이지에서 다운받는다

 https://www.virtualbox.org/wiki/Downloads



2. ~.exe 설치파일을 실행하여 새로만들기를 클릭한다.


3. VirtualBox 설치

  - 이름 부분에 CentOS 입력하면 종류와 버전이 자동으로 Linux, Red Hat이라고 설정된다.



 - 메모리 크기는 사용자가 직접 설정해서 작성하면 된다. (저의 경우 1024MB로 설정했습니다.)

 

- 지금 가상 하드 드라이브 만들기를 클릭한 후 만들기를 진행합니다.


 - 종류는 VDI를 선택 후 다음을 클릭합니다.


 - 고정 크기를 체크 후 다음을 클릭합니다.


 - 생성할 폴더를 지정할 때는 원하는 위치에 새 폴더를 생성 후 설정해 줍니다.

 - 크기도 사용자가 직접 선택하면 됩니다. (저의 경우 16GB로 설정하였습니다.)


 - Oracle VM VirtualBox 관리자에 CentOS가 생성 완료 후 시작을 해 줍니다.

 - 시동 디스크 선택에서 원하는 centos 버전의 iso 파일을 구하여 선택 후 시작합니다.


 - Install or upgrade an existing system 선택하여 설치를 진행합니다.



 - 설정을 클릭  저장소 설정부분에서 컨트롤러:IDE부분에 CentoOS 설정되어있는지 확인한다.


 - 다시 실행  기본 저장 장치를 체크   다음으로 넘어 갑니다.


 - 저장 장치 경고 창이 나오면 모든 데이터를 삭제합니다 클릭합니다.


 - 각자 자신의 컴퓨터 이름을 설정하여 다음으로 넘어갑니다.


 - 자신의 linux root 계정의 비번을 설정합니다.


 - 모든 공간 사용 체크  다음으로 넘어갑니다.


 - 디스크에 변경 사항 기록을 클릭합니다.


 - 모든 설치가 완료 되었습니다. Linux 재부팅 해주면 됩니다.


 - Oracle VM VirtualBOX 관리자 창에서 설정을 클릭합니다.

 - 네트워크 설정에서 다음에 연결됨 부분을 브리지 어댑터로 바꿔줍니다.


Posted by kkangMH

2017. 9. 8. 15:31 Rails

[Rails] rails 시작하기

1. Rails 설치하기

 가장 쉬운 레일즈 설치는 RubyGem을 통한 방법

 1. $ gem install rails



2. 블로그 어플리케이션 만들기

 이 명령은 'blog' rails 프로젝트를 만드는 명령어 입니다.

 rails는 gem을 기본적으로 bundle을 통해서 관리합니다.

 1. $ rails new blog    // blog 디렉토리에 rails 프로젝트 만들기

 2. $ cd blog           // blog 폴더로 이동

 3. $ bundle install    // 필요한 젬 설치하기



3. 데이터베이스 설정 (Mysql 이용)

 config/database.yml

 username과 password는 개발환경에 맞도록 변경하세요.

 development:

  adapter: mysql2

  encoding: utf8

  database: blog_development

  pool: 5

  username: root

  password:

  socket: /tmp/mysql.sock



4. 데이터베이스 생성

 3. 에서 설정했던 데이터베이스를 빈 데이터베이스로 만드는 작업

 1. $ rake db:create



5. 웹서버 시작하기

 서버를 시작하고 http://localhost:3000으로 접속하면 rails의 기본정보페이지를 볼수 있습니다.

 속성으로는 -b 를 이용하여 ip address, -p 를 이용하여 port를 설정할 수 있습니다.

 port는 설정하지 않으면 rails의 기본포트인 3000으로 실행됩니다.

 1. $ rails server



6. rails generate

 - generate를 이용하여 controller, model을 자동으로 만들수 있습니다.

   "home" 대신 원하는 controller, model 이름으로 변경하면 됩니다.


 - scaffold을 이용해서 빠르게 프로젝트에 필요한 주요 요소를 만들 수 있습니다.

   새롭게 모델, 뷰, 컨트롤러를 한번에 만들기 원하면 scaffold를 이용하면 더욱 간편하게 만들 수 있습니다.

$ rails generate controller home                                        

$ rails generate model home

$ rails generate scaffold Post name:string title:string content:text


'Rails' 카테고리의 다른 글

[Rails] rails erb 에서 <%, <%=, <%#, -%>의 차이점  (0) 2017.10.12
[Rails] Ruby array to string  (0) 2017.09.29
Posted by kkangMH

1. Rails install

 1. $ Gem install rails



2. Nginx 설치

 1. $ Yum install nginx



3. Rails gemfile에 unicorn 추가

 - 새로 생성한 rails 프로젝트 Gemfile에 gem 'unicorn' 추가 후 

 1. $ bundle install



4. Nginx 설정

 - /etc/nginx/conf.d/default.conf 

 upstream app{

server unix:/home/kang/tmp/test.unicorn.sock fail_timeout=0;

}

 

server {

    listen       3001;

    server_name 10.0.1.27;

    root /home/kang/test/server/test/public;

 

    location / {

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header Host $http_host;

        proxy_redirect off;

        proxy_pass http://app;

    }

 

    error_page   500 502 503 504  /50x.html;

 

}


 - /etc/nginx/nginx.conf

 user root;

worker_processes  1;

 

error_log  /var/log/nginx/error.log warn;

pid        /var/run/nginx.pid;

 

 

events {

    worker_connections  1024;

}

 

 

http {

    include       /etc/nginx/mime.types;

    default_type  application/octet-stream;

 

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request"

               '$status $body_bytes_sent "$http_referer" '

               '"$http_user_agent" "$http_x_forwarded_for"';

 

access_log  /var/log/nginx/access.log  main;

error_log /var/log/nginx/error.log;

sendfile        on;

#tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;

}



5. Unicorn 설정

 새로 생성한 프로젝트 config 폴더에서 unicorn.rb를 생성한다.

 /home/kang/test/server/test/config/unicorn.rb

Worker_processes 2

working_directory "/home/kang/test/server/test"


listen "/home/kang/tmp/test.unicorn.sock"


timeout 60


pid "/home/kang/test/server/test/tmp/pids/test.unicorn.pid" 


stderr_path "/home/kang/test/server/test/log/unicorn.stderr.log" 


stdout_path "/home/kang/test/server/test/log/unicorn.stdout.log"



6. 시작

 1. $ sudo service nginx start


 // 해당 프로젝트 경로로 들어간 후 

 2. $ Unicorn rails -c config/unicorn.rb -D


'Linux' 카테고리의 다른 글

[Linux] Git Centos 설치 및 설정  (0) 2017.09.08
Posted by kkangMH
이전버튼 1 2 이전버튼

블로그 이미지
kkangMH

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.11
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함