본문 바로가기

[안드로이드 개발기간] request만들기 안드로이드 서버와 request 필요한 클래스는 - NetworkManager = 네트워크 연결과 관련된 설정 - NetworkRequest = request를 보내기 위한 설정 - AbstractReqeust = request를 쉽게 하기 위한 추상클래스 실제 request를 만들때는 abstractrequest에 설정된, http,https통신과 host,port 세팅을 해주고 Httpgetbaseurl 메소드는 일반 Httpsgetbaseurl 은 https메소드를 만들어 준다. 그리고 gson파싱과 타입토큰에 대한 메소드를 AbstractRequest에 T타입으로 만들어주고 AbstractRequest 를 상속받아서 구현을 해준다. request를 만들때 해당되는 data클래스를 new TypeT.. 더보기
[25일차] 채팅 User Data 클래스를 만든다. MessageListRequest Abstract 리퀘스트 상속 NetowrkResult 제네릭 타입. 드드드드드득득득득득득ㄱ득득득득득득득득득득득득득드귿귿귿귿귿귿귿귿귿귿귿귿귿귿귿그득득득득드귿귿귿그득득득ㄷ그 TypeToken gson에서 타입토큰을 넘겨줘야한다. TypeToken 설명 - https://brunch.co.kr/@elijah17/17 DAte를 받아야하는데 날짜를 형식으로 바꿔 주려면 SimpleDateFormat 클래스를 사용한다. SimpleDateFormat 설명 - http://ontent provider loadermanager Service로 구현 한다. push로 메세지를 수신할 때,topic 으로 gcm을 수신한 것이 아니기 때문에 디폴트로 .. 더보기
[25일차]페이스북 로그인 연동 오늘은 마지막으로 채팅할건데 이거 하기 전에 오늘부터 프로젝트 들어갈거다. 예제페북로그인에 성공하면 로그인한 토큰을 먼저 얻는다. 서버에 값을 저장하는건 아니다. 저걸 가지고 페북에게 정보를 요청하고, 받은정보를 저장하는 거지, 지금 얻은 토큰은 저장하면 안된다.서버의 규격서를 확인한다. 사용자가 서버에게 요청했을 때의 결과로써 로그인 성공, 페북 회원가입이 안되었을때, 로그인 실패했을 때 세가지 분기로 나뉜다.(규격서에 나와있는대로 회원가입되었을 때는 code 1, 안되었을 때는 code 3, 아예 실패했을 때는 code 2이다.)규격을통해 데이터를 하나 만들어주었고, User데이터에 facebookId를 추가해주었다. FacebookLoginRequest를 추가해주었고, 세가지 결과가 올 수 있기 때.. 더보기
[24일차]구글 GCM 메카니즘 푸쉬는 뭐냐면 클라이언트 서버가 있으면 지금까지는 클라이언트가 서버에게 요청하면 그거에 응답하는 방식이었다. 이것은 클라이언트 - 서버 방식이라 한다. 서버가 클라이언트에게 먼가 를 noti해야하는 경우가 생길때 , 이런것들을 처리 할 방법이 없다. chatting 서버가 따로 있다. 그렇게 서버랑 클라이언트가 둘다 클라이언트로 채팅서버와 연결되어있는 것이다. 이게 푸쉬다 GCM은 단말이 있으면 구글 플레이 클라이언트가 채팅 서버에 연결 되있고 채팅서버는 GCM 서버가 연결되어있다. 5222번 포트로 서버로 접속해서 사용되며, 연결된 후 에는 xmpp로 gcm과 클라이언트가 xmpp로 p2p로 직접연결되어 통신ㄴ한다. GCM은 변경사항을 알리는 용도로만 사용한다. 왜냐면 최대크기가 4K밖에 안되니까.. .. 더보기
객체 직렬화 참조 : HTTP://HYEONSTORAGE.TISTORY.COM/TRACKBACK/252 객체직렬화는 JVM에 힙영역에 있는 객체를 네트워크 전송이나 외부클래스와의 통신 중에, 객체를 바이트 단위의 형태로 나열하여 만드는 것이 객체 직렬화 라고 한다. 그래야 String형태의 데이터로 전송이 되고 원격지에서 그걸 받아서 객체화를 한다. 보안상 보안 정보가 있을 경우 transient 필드를 선언하여, 받는 정보지에서 null로 받을 수 잇따. 더보기
[24일차] 연동 로그인 페이스북 페이스북 로그인 퍼미션 하나 추가 해야된다. provider+ 앱 ID 페이스북 로그인 메카니즘 페이스북 로그인 하고 나면 페이스북에 대한 엑세스 토큰을 얻는다. 액세스토큰이라는게 여기 접근하는 key 이다. 인증 값이 있으면 누가 접근했는지 알 수 있다. 그래서 그 토큰을 내 서버에 넘기고, 페이스북으로 넘기면 누군지 알 수 있다. 페이스북 로그인 연동 토큰을 획득한다 인증값 앱에서 서버로 토큰을 보내고 서버에서 다시 페북으로 토큰을 보내서 인증을 하는거페북 아이디만으로 한다면 보안에 문제가 생김 그래서 access_token을 통해 사용자 정보를 얻는다페북 id로 내 db의 id를 확인한다. db에 id가 있는 경우 - 사용자가 이미 가입을 한 경우 db에 id가 없는 경우 - 사용자가 서비스에 가입.. 더보기
[23일차]페이스북 로그인 실습 페이스북 로그인 페이스북 개발자에서 앱 생성한다. 그리고 openssl 티아카 소모임 에서 다운 받은 다음에 환경변수 설정해서 그거 cmd로 실행시켜보고 끈다. 그리고 앱 만들어서 그대로 grdle설정하고 그대로 따라 하면 된다. 그리고 해쉬 키는 java key tool을 설정해서ㅓ한다. 그러면 로그인이 된다. 그리고 로그인 버튼 커스텀을 할 때는 버튼을 만들어 주고 resultAcitivity 로 호출해서 한다. 로그인 상태를 가지고 있는 애가 ACCess 토큰인데 얘가 있으면 로그인상태고 없으면 로그아웃 상태 이다. 토큰은 AccessToken = getInstance() 머시기 해서 얻어 올 수있다 그렇게 토큰에 상태에 따라서 버튼을 바꿔주고, Tracker라는 객체로 버튼이 바뀌면 상태를 알 수.. 더보기
[23일차] 페이스북 Oauth 페이스북 로그인 메카니즘 액세스 토큰을 보면 어떤 앱에서 누가 보는 지 알 수 있다. 로그인 요청할때 서비스의 앱 id를 같이 보낸다. 앱이 글을 쓰는데 어떤 사용자가 쓴 글인지 알면된다. id pw 는 누가 받았냐면 페이스북이 받았기 때문에 알수없다. 로그인 창을 페이스북에서 띄우고 인증되면 코드를 서비스에 보내고 토큰 요청을 하면서 앱의 id를 같이 보낸다. 그러면 토큰을 발급해준다. Permission이라고 한다. 페이스북은 scope라고 한다. 내가 사용자 정보를 보는 기능, 뭐 여러 기능들이 있다. 승인하면 그때 코드를 보낸다. 한번 발급 받으면 액세스 토큰을 계속 썻다. 일정 시간이 지나면 Access토큰이 만료된다. 이런 기술을 Outh다 라고 부른다. 로그인을 사용해서 하는 서비스이면, 다.. 더보기
[23일차] 채팅xmpp xmpp 주소를 교환 해 주는 애다 채팅이라고 하는게 기술적으로 주소를 주고받는 것이다. p2p 기술이다. 아~ 클라이언트 서버로 채팅을 하는 경우는 거의 없다. 실제로는 단말끼리 주고 받는다. xmpp서버간 연동 규격이있다. 구글 메신저나 해외 는 xmpp로 되어있다. 표준인거다. 딥러닝은 패턴을 찾는 알고리즘이다. 알파고 뒤에는 컴퓨터 1000대가 붙었다. 병렬처리 기술 Gpu 단말에서 서버로 데이터를 보낼때 중간에 게이트웨이가 마킹을 한다. 그럼 서버가 게이트웨이를 통해서 마킹을 통해 주고 받는다. 내부 ip를 사용할 때 돌아가는 메카니즘이다. 이거를 NAT라고 한다. 상당 히 복잡하다. smack 을 써서 구현한다. igniterealtime 에서 Openfire라고 해서 xmpp서버를 제공한다... 더보기
git push 문제 해결 http로 올리는데 컴퓨터를 다른사람이 쓰던거라 origin 설정이 안됬나 보다 그래서 ssh 로 올리는 방법으로 변경해서 올렸다. 먼저 github ssh-key 등록하기# repository https / ssh clone URL 확인 후 # git-bash 에서 # https 를 사용하여 로컬에 clone 생성 git clone https://github.com/ysoftman/ysoftmanCode.git # 또는 ssh 를 사용하여 로컬에 clone 생성 # 참고로 github 의 ssh 는 git 아이디만 사용해야 한다. git clone git@github.com:ysoftman/ysoftmanCode.git # ssh 로 clone 을 만들때 다음과 같이 권한이 없다는 에러가 발생하는 경우.. 더보기