하이브리드 앱을 개발하게 되어서 안드로이드 스튜디오로 개발 및 테스트 하는 도중 adb respond 하며 디바이스 연결 인식이 되지 않는 오류가 발생되었다.


ADB란?

Android Debug Bridge 는 명령줄 도구로 , 앱 개발자가 데스크톱 컴퓨터를 사용해 연결된 안드로이드 디바이스와 통신하거나 디바이스 에뮬레이터를 실행할 수록 도와주는 도구.


오류해결 방법.

ADB 서버를 재시작하여 해결.  명령프롬프트 실행 후 adb가 설치되어 있는 곳으로 이동 또는 환경설정으로 path를 잡아줌.

> adb kill-server 
> adb start-server

adb start-server를 할 때 글 제목과 같은 오류메세지가 발생한다면 이미 실행중인  adb서버가 있을 때 발생하는 오류. 다음 명령어 입력하여 확인

> tasklist | findstr /i adb 
를 입력하면 아마 실행중인 adb.exe 리스트가 보일건데 , 다음 명령어로 다 죽이면 됨.

>taskkill /f /im adb.exe
프로세스를 죽인 후 다시
>adb start-server 를 입력하면 정상적으로 디바이스 인식이 가능.


'웹 개발 > 안드로이드' 카테고리의 다른 글

Parcelable  (0) 2017.04.08
Intent  (0) 2017.03.18
SurfaceView 와 SurfaceHolder  (0) 2017.03.14
ANR(Application Not Responding)  (0) 2017.03.14
Inflate  (0) 2017.03.13

jsonp 란?

전통적인 웹 브라우저에서는 same-origin-policy (SOP) 정책에 따라 다른 도메인간의 REQUEST을 제한하고 있다. 그러나 <script /> 태그는 SOP정책에 속하지 않는다는 사실을 근거로, 서로 다른 도메인간의 jsvascript 호출을 위하여 jsonp (또는 json with padding) 이 사용 되었다.


jsonp의 원리

json의 형태를 먼저 알아보자

{
data1 : "data1",
data2 : "data2",
data3 : "data3"
}
자바스크립트에서 { } 은 객체 리터럴이다. 즉 위의 코드는 객체를 정의하기 위한 코드이며 , json은 객체를 정의하기 위한 문법이라고 볼 수 있다.

jsonp의 원리

먼저 ajax의 response 를 알아보자.

$.ajax({
url : "http://dev-troh.tistory.com/test.json",
type : "json"
}).done(function(data){
//data는 json 포맷으로 받게된다.
})

위의 코드에서 response로 받는 것은 json포맷인데 즉 객체를 받는 것이다. 그러면 전달 된 객체로 데이터 처리를 하는 것은 SOP 정책에 위배되지 않은 매우 일반적인 브라우저간 XMLHttpResquest 통신이라고 할 수 있다.

하지만 현재페이지 (http://dev-troh.tistory.com/admin/entry/post/) 에서 요청하는 ajax가 dev-troh.tistory.com/test.json 이 아닌 troh.tistory.com/test.json 으로 요청하게 되면 어떻게 될까? SOP 정책에 걸려서 데이터를 가져오지 못할 것이다. 이를 피하기 위해서는 어떻게 해야할까?


답은 <script /> 태그를 이용하는 것이다.

<script type="text/javascript" src="troh.tistory.com/test.json"></script>


위의 코드를 html에 선언하면 정상적으로 URL을 호출할 것이다. 그러나 json 안에 있는 코드는 객체를 정의하는 코드이지 실행코드가 아니다. 따라서 실행할 수 있는 형태로 바꾸어 주면 된다.

callback({

data1 : "data1",
data2 : "data2",
data3 : "data3"

})


자바스크립트에서 () 은 실행 구문이다. 즉 위의 코드는 callback이라는 함수에 json(객체)을 전달하여 실행하라는 의미이다.

<script type="text/javascript" src="troh.tistory.com/test.json"></script>

<script>
function callback(data){
//json처리..
}
</script>


'웹 개발' 카테고리의 다른 글

부트스트랩(Bootstrap) 이란  (0) 2019.03.11
JSTL (작성중)  (0) 2018.05.04
OAuth 2.0 ( RFC 6749)  (0) 2017.01.19
JSP 와 Servlet의 한글처리.  (0) 2016.10.06
Apache 와 Tomcat  (0) 2016.07.26

목차

  • Tomcat 다운로드
  • 심볼릭링크
  • 환경변수 설정
  • 방화벽 해제(8080)


Tomcat 다운로드

# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-7/v7.0.62/bin/apache-tomcat-7.0.62.tar.gz 명령어로 tomcat다운로드.


#tar -zxcf apache-tomcat-7.0.62.tar.gz 로 압축해제



심볼릭 링크

#ln -s apache-tomcat-7.0.62 tomcat 으로 심볼릭 링크설정.



환경변수 설정

# vi /etc/profile 입력

JAVA_HOME=/usr/local/java

CATALINA_HOME=/usr/local/server/tomcat

CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib-jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar

PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

export JAVA_HOME CLASSPATH PATH CATALINA_HOME


파란색 입력 부분 추가.


# source /etc/profile 환경변수 설정 저장.



방화벽 해제

# firewall-cmd --zone=public --add-port=8080/tcp --permanent
# firewall-cmd --reload.




목차

  • JDK 설치하기
  • 심볼릭 링크
  • 환경변수 설정하기



JDK 설치하기

JDK 다운받기 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


CentOS 비트버전에 맞는 Linux 용 jdk를 다운받음. 압축파일로 설치할 것이기 때문에 tar.gz 를 받았음. 윈도우에서 다운받은 후 파일질라 등 ssh로 접속하여 파일을 옮겼습니다. 



다운 받은 폴더(필자의 경우는 /usr/local)로 이동 후


#tar -zxvf 파일명.tar.gz  명령어를 입력합니다.




심볼릭 링크


#ln -s jdk1.8.0_121 java 입력하면 java ->  jdk1.8.0_121 심볼릭 링크가 생성 됨.



환경변수 설정

# vi /etc/profile 입력

붉은 색 표시 된 부분을 입력후 저장 ( :wq )


# source /etc/profile 을 입력하여 설정한 환경변수를 적용합니다.


# java -version , javac -version 을 입력하여 jdk가 정상설치 되었는지 확인합니다.


OAuth 2.0 이란 ?

외부 어플리케이션에서 HTTP 서비스에 제한된 접근을 할 수 있도록 권한을 부여하는 프레임워크.



OAuth의 4가지 역활

자원서버 , 권한서버 , 자원 소유자 , 클라이언트



용어 및 특징 비교 ( OAuth 1.0 vs OAuth 2.0)

 용어 

 1.0 

 2.0 

 사용자 

 User 

 Resource Owner 

 클라이언트 

 Consumer 

 Client 

 API 서버 

 Service Provider

 Resource Server

 권한 

 Authorization Server


구분 

1.0 

2.0 

HTTPS 

선택 

필수 

구현 복잡도 

복잡 

비교적 간단 

보안산 안전한 환경 

Server-Side 

다양한 환경 지원 



OAuth 2.0 Protocol


Authorization Grant

1. 클라이언트가 자원 소유자에게 권한을 달라고 요청

2. 자원 소유자가 클라이언트에게 권한 위임 허가

3. 클라이언트는 권한 서버에게 자원 소유자가 허가했다고 알림

4. 권한 서버는 정말 사용자가 허가한게 맞는지 확인 후 Access Token을 클라이언트에게 발급

Authorization Grant Type

1. Authorization Code Grant

권한 코드를 이용한 허가 방식

장기 접근시 사용 ( Access Token 만료시, Refresh Token으로 갱신)

기밀 클라이언트일 때 사용

Authorization 요청

    • response_type : "code" 여야함
    • client_id : 클라이언트 식별자
    • redirect_uri : 응답시 redirect 될 uri
    • scope : 접근 요청 범위
    • grant_type : "authorization_code" 여야함

Authorization Token 응답

    • access_token : 필수 . 권한 서버가 생성한 권한 코드
    • expires_in : 만료시간(초)
    • refresh_token : 갱신토큰

Access Token 

    • ID , PW 를 대신하여 자원에 접근하기 위한 값
    • 접근된 접근 권한만 가짐.
    • 만료 시간 존재

Refresh Token

    • Access Token을 얻는데 사용되는 인증서
    • Access Token이 발행될 때 같이 얻을 수 있음.
    • Access Token이 무효화되거나 만료될 때 사용
    • 유출에 주의해야함


2. Implicit Grant

    나중에..

3. Resource Owner Password Credentials Grant

4. Client Credentials Grant




'웹 개발' 카테고리의 다른 글

JSTL (작성중)  (0) 2018.05.04
jsonp  (0) 2017.02.09
JSP 와 Servlet의 한글처리.  (0) 2016.10.06
Apache 와 Tomcat  (0) 2016.07.26
동일출처정책(same origin policy)  (0) 2016.07.26

목차

  • 개요
  • 사전작업
  • Host OS 네트워크 확인
  • VirtualBox 관리자에서 브리지 어댑터 설정
  • Guest OS 에서 네트워크 재시작
  • 상호 간 연결점검

개요

  • 브리지 어댑터를 이용하여 VM 을 공유기 네트워크에 편입시켜보자.
  • NAT과는 달리 HOST 와 GUEST의 네트워크가 동등한 관계가 된다. 포트포워딩으로 간단하게 웹서비스 가능
  • 아이피는 보통 192.168.0.X을 할당받음

사전작업

  • 리눅스의 eth0을 활성화시키면 된다. 블로그 내 포스팅 확인.

Host OS 네트워크 확인

실행 - ncpa.cpl 입력 후 확인

다음과 같이 2개가 보여야 함

  • 실제 네트워크 어댑터
  • VirtualBox Host-Only Network

VirtualBox 관리자에서 브리지 어댑터 설정

  • CentOS7 - 설정 - 네트워크 - 어댑터1
  • 다음에 연결됨 - 브리지 어댑터
  • 이름 - 실제 네트워크 어댑터
  • 고급 클릭 > 무작위 모드 = 모두 허용

CentOS로 SSH접속 확인.

HOST 포트 확인.

  • 리눅스에서 > 윈도우 nc -z 192.168.1.2 했는데 커넥션아웃 남..왜그런지 확인해야지..아마방화벽일듯..?


'웹 개발 > 로컬서버' 카테고리의 다른 글

CentOS Tomcat 설치하기.  (0) 2017.01.22
CentOS7 JDK설치하기  (0) 2017.01.22
로컬서버 - CentOS 설치  (0) 2017.01.11
로컬서버 - VirtualBox 설치하기  (0) 2017.01.07
VirtualBox에 CentOS7 로컬서버 구축하기  (0) 2017.01.07

목차

  • CentOS 7 다운로드

CentOS 7 다운로드


목차

  • 다운로드
  • 설치

다운로드

https://www.virtualbox.org/wiki/Downloads 링크타고 가서 다운받으면 됨.

설치

그냥 다 next 눌러주면 됩니다...



'웹 개발 > 로컬서버' 카테고리의 다른 글

CentOS Tomcat 설치하기.  (0) 2017.01.22
CentOS7 JDK설치하기  (0) 2017.01.22
로컬서버 - 브리지네트워크전환  (0) 2017.01.11
로컬서버 - CentOS 설치  (0) 2017.01.11
VirtualBox에 CentOS7 로컬서버 구축하기  (0) 2017.01.07

+ Recent posts