bitcoin_kor.pdf


여기서 가져왔습니다.

http://www.ddengle.com/recommended/205187


저작권과 관련한 번역자의 언급입니다.

"- 이 번역본은 copyleft입니다. 자신의 홈페이지나 블로그나 커뮤니티 등에 출처나 번역자 명시 등은 신경 안쓰시고 배포하셔도 됩니다."


'연구 > 범수' 카테고리의 다른 글

[펌] 사토시 나카모토 비트코인 논문 번역  (1) 2016.07.18
Padding oracle attacks: in depth  (1) 2016.02.23
CSAW CTF 2015 Writeup [pwn 100]  (0) 2015.09.22
  • init 2016.08.29 22:06 신고

    감사합니다

http://cosine.tistory.com/1

 

패딩 오라클 어택을 알기 쉽게 설명한 https://blog.skullsecurity.org/2013/padding-oracle-attacks-in-depth을 번역했습니다. (원저자로부터 번역 포스팅 동의를 받았습니다.)

'연구 > 범수' 카테고리의 다른 글

[펌] 사토시 나카모토 비트코인 논문 번역  (1) 2016.07.18
Padding oracle attacks: in depth  (1) 2016.02.23
CSAW CTF 2015 Writeup [pwn 100]  (0) 2015.09.22

안드로이드 스튜디오 개발-2


안드로이드 스튜디오를 통해서 처음 개발을 시작하면 기본적인 구성인 컴포넌트, 메니페스트, 리소스를 알아야 한다. 

이번에는 그중에서 컴포넌트에서 기본적인 Activity , Service, BroadcastReceiver, ContentProvider 중에서 Activity에

대하여 다루겠습니다.


그 이유는 처음 안드로이드 어플을 개발을 시작하면 대부분 Activity 내에서 끝낼 수가 있기 때문입니다.


Activity는 가능하면 UI만 사용하기를 바랍니다. 그 이유는 너무 오랫동안 동작하는 작업은 Service 라는 컴포넌트에서 

해결해줍니다. 하지만 단순한 처리 작업 같은 경우는 Activity에서 해도 괜찮습니다.


그러므로 이번에는 Activity에서 UI를 다루기로 하겠습니다.


먼저 안드로이드 폰이 없는 사람을 위해서 안드로이드 애뮬레이터에 런칭에 대하여 설명하고 넘어가겠습니다. 




위에서 Launch emulator을 누르시면 됩니다 없으신분은 Launch emulator 부분을 클릭하시고 ... 부분을 클릭하시면 create virtual device을 누르시면 새로운 에뮬레이터가 생성됩니다. 

생성도중에

x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: HAX kernel module is not installed!


이런 경고문이 나오면 [android sdk 폴더 위치]\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe를 관리자 권한으로 실행하시면 됩니다. 


그리고 다시 에뮬레이터를 실행하면 정상적으로 작동하는 것을 볼 수가 있습니다.




기본 UI- TextView


TextView를 만들려면 resource\layout\[자신이 원하는 layout]에 TextView를 하나 놓아야한다. 간단한 방법으로 Text/Design 에서 Design 을 클릭하고 TextView를 드래그하여 옮기는 방법이 있다. 


그렇게 하면 TextView가 layout에 생성된다.



그럼 이제 MainActivity.java에 가서 TextView를 소스를 통해서 컨트롤 해보겠습니다.


MainActivity.java에 가면 처음에 생성된 메소드는 3개로 구성되 있지만 그 중에서 우리는 OnCreate 메소드만 사용하겠습니다.

(OnCreate 메소드에 대한 내용은 안드로이드 생명주기에 대하여 설명할때 추가로 설명하겠습니다.)





그럼 이제 TextView를 선언을 해야 하는데 먼저 TextView 클래스와 layout에 있는 클래스의 TextView를 연결 시켜주어야합니다. 

그래서 findViewById 함수를 통해서 찾습니다. 이때 findViewById는 return이 View이므로 TextView로 형변환 해줘야 합니다.

 

또한 인자값이 int로 되있는데 이것은 R.java 파일에서 layout등 생성할시 자동으로 R.java에서 갱신해줍니다. 이에 관하여 자세한것은 

(R error에 대하여 설명할때 추가로 설명하겠습니다.)



이제 TextView하고 layout의 TextView하고 연결되 있으므로 간단한 TextView에 있는 함수를 사용하겠습니다.

아래는 TextView에 있는 함수중에 setText 함수로 두가지 사용방법입니다.

 


더 많은 함수들은 http://developer.android.com/reference/android/widget/TextView.html 에서 확인하시면 됩니다.



기본 UI- EditText

EditText도 동일한 방식으로 layout에 추가하면 된다.


여기서 설명할것은 EditText에 필터링이다. Sql Injection을 사용할 수 있는 경우가 있으므로 특수문자 제한방법을 설명하겠습니다.



이 부분은 문자하고 숫자만 적을 수 있게 만들었습니다. 이때 edt.setFilters(....)는 당연히 onCreate 내부에 작성을 해야합니다. 

만약 여러분이 필텅리을 새롭게 하려면 정규표현식을 익히시면 됩니다.

추천 사이트:http://www.rubular.com/



AVD를 통해서는 확인이 어렵지만 만약 핸드폰에서 한다면 editText를 클릭시 자판하고 같이 올라가는 것을 볼 수 가있다. 

자판하고 같이 안올라가게 할려면



이와 같은 방식으로 하면 키보드가 editText 덮고 위로 올라간다. 이와 같은 방식이 필요한 이유는 실수로 Submit버튼이 EditText 밑에 있을때 타자를 치는 도중에

실수로 Submit 버튼 누른는 것을 방지하기 위해서 사용한다.


기본 UI-button


button의 주목적은 클릭시 event 발생이다. 


그럼 event를 발생 하기위한 조건이 있어야 하는데 그 함수가 기본적으로 주어져 있다.





이 방법은 비추천이기는 하지만 만약 버튼이 하나만 있을 경우 위와 같은 방법은 괜찮다. 하지만 보통 버튼이 두가지 이상일 경우 

아래와 같은 방법을 추천한다.

여기서 추가할 부분은 implements 에 OnClickListener가 추가 되있다. 이것을 추가하고 난 후 Ctrl+ I를 누르면 onClick을 추가하는 항목이 나오므로 그것을 추가하면 된다.


이때 인자값 View v는 onCreate에서 정의 setContentView에 있는 layout안에 있는 항목만 사용해야한다. 안그러면 에러가 발생한다.

보통 case에서 R.id.button을 사용하지만 버튼 2개 이상부터는 상수명을 정해주는게 좋다. 참고로 상수값은 AndroidStudio에서 Refactor-> Extract-> Constant를 사용하면 손쉽게 상수명을 설정할 수 있다.



기본 UI- 리스트 뷰

안드로이드 개발을 하다보면 데이터를 보여줄때까 많다. 이때 리스트뷰를 사용하면 많이 편하다. 이번에는 가장 기본적인 리스트에 대하여 보여주겠습니다.



여기서 중요한 점은 리스트뷰는 listView 하나로는 만들수가 없고 adapter 가 하나 필요하다. 그래서 setAdapter 함수가 있다.

두번째로 중요한 것은 adapter의 선언할때 getApplicationContext()는 onCreate 내에서 있어야하다. 즉 먼저 초기화를 하면 error가 발생한다.

onItemClickListener은 각 리스트의 항목 별로 따로 클릭할 수 있게 만든 것이다.(더 자세한 것은 리스트뷰 심화에서 다루겠습니다)

'연구 > 진호' 카테고리의 다른 글

안드로이드 스튜디오 개발-2  (0) 2015.12.26
안드로이드 스튜디오 개발-1  (0) 2015.10.11