세션이란?

(특정한 활동을 위한) 시간

- 단말 세션(terminal session)이라 하면 대화형 시분할 시스템이며, 단일 사용자가 시스템에 로그온(log on)한 뒤 로그오프(log off)할 때까지의 기간을 말한다.


로그인하여 사용하는동안 전역변수를 저장하는 공간 이라고 생각하면 좋을것같다.

예를들면 로그인정보를 보관하거나 장바구니에 구매한 아이템들을 로그인한동안만 보관하는공간이다.


어렵게 설명하기는 까다로우니 간단히 설명해보도록하겠습니다.



세션이 시작되고 

로그인시도가 발생하여 로그인이 성공할 경우 세션영역에 ID나 NAME등 개인을 구분할 수 있는 값을 저장하여 사용하는 방식으로 로그인방식을 주로 사용합니다


마찬가지로 로그오프 할 경우 session_destroy() 나 세션에 "" 값을 주어서 로그오프시키는 방법등이있다.


간단히 설명하는 이유는 아무것도모르고 쿠키나 세션만 주구장창 파는거도 아닌듯 싶고 솔직히 이해만하면 크게 간단한 소스에서는 크게 어려움이 없는 부분이라 생각해서 간단히 다루어보았습니다.


php를 따로정리하자니 개념보다 기능에 관한게 많아서 DB부분만 한번 더 다루고 안드로이드와 연동을 다루고 php는 정리하도록 하겠습니다.

[출처] 7. PHP - 세션관리|작성자 초천재


'Programming > PHP' 카테고리의 다른 글

XE 삭제가안될시 지우는 방법  (0) 2012.11.02
[모바일웹] 모바일웹 해상도 meta 태그로 정하기.  (0) 2012.08.27
[모바일웹] 스마트폰 구분하기.  (0) 2012.08.24
쿠키란  (0) 2012.07.10
PHP란?  (1) 2012.07.10

쿠키란

- 구워 먹는것.

- 굽는다. - 서버가 브라우저를 통해 이용자의 저장공간에 쿠키 굽는다.

- 먹는다. - 서버가 브라우저를 통해 이용자의 쿠키를 가져온다.


쿠키는 어떤대에 쓰이나?

- 어떤 사이트를 접속시 사이트에서는 정보를 저장하기위해 사용자의 PC에 쿠키를 구워 저장한다.

  (장점)

  그럼 다음에 다시 접속했을때 그 쿠키를 웹브라우저를 통해 가져온다. ( 접속 속도 향상 )

  개인정보를 저장하기 때문에 자동로그인등의 기능과 같이 중복된 작업을 최소화할 수 있다.

  (단점)

  개인정보가 저장되어있기 때문에 개인정보가 탈탈탈 털린다.

   쓸때 없는 용량이 생겨난다.(작은용량이지만..)


이런 장점과 단점이 있습니다. 간단히 알아보면 그렇고요. 굽는다와 먹는다. 의 개념은 쉽게 이해하기 위해 적어 봤습니다.

브라우저를 통해 의 부분에 밑줄을 친 이유는 서버가 가져오고 싶다고 이것 저것 막 가져올 수 는 없다는거입니다. 쿠키도 조건을 두어서 아무나 모든쿠키를 다 읽을 수 있는것은 아니기 때문이죠.


쿠키 생성

<? setcookie("쿠키 명", "쿠키 값", 폐기시간, "경로", "호스트", "보안사용"); ?>

쿠키명은 필수이며 나머지는 경우에 따라 값을 넣어주게 됩니다.


인자  필수  설명 
 쿠키명

 Y

 쿠키이름 

 쿠키값

 N 

 쿠키의 값 

 폐기시간 

 N 

 쿠키의 폐기시간설정 time() 함수 

 경로

 N 

 쿠키를 사용할 수 있는 서버 경로 

 도메인 

 N 

 쿠키를 사용할 수 있는 도메인 

 보안 

 N 

 HTTPS에서만 사용할지 결정 


[출처] [PHP] 쿠키(Cookies)|작성자 aih303






'Programming > PHP' 카테고리의 다른 글

XE 삭제가안될시 지우는 방법  (0) 2012.11.02
[모바일웹] 모바일웹 해상도 meta 태그로 정하기.  (0) 2012.08.27
[모바일웹] 스마트폰 구분하기.  (0) 2012.08.24
세션이란?  (0) 2012.07.31
PHP란?  (1) 2012.07.10
PHP란??
¨ Personal Hypertext Preprocessor 
¨ HTML에 포함되어 동작하는 스크립팅 언어

스크립트 ??

¨ 소프트웨어에 실행시키는 처리 절차를 문자(텍스트)로 기술한 것. 일종의 프로그램이라고 할 수 있다


식별자 ( 변수 )

¨ PHP에서는 변수라는것을 알려주기 위해 $를 변수명 앞에 붙힙니다.

¨ 문자와 밑줄(_)로 시작 합니다.
¨ (_)이외의 기호는 사용불가능합니다.
¨ 변수는 대,소문자 구분 합니다.
¨ 타입형이 없습니다. 타입을 적지 않고 바로 변수명만 넣어서 사용합니다.



include / reclude


include 는 c언어의 include를 생각하시면 편합니다. 사전적 의미로 포함하다 라는 의미를 가지고 있습니다.

그러나 php에서의 차이점은 함수만 가지고 있는것이 아니라 php문을 통체로 copy & paste 하면 된다고 생각하시면
됩니다.

include를 하며 가져온 php 파일의 변수, html코드, 함수, echo로 출력되는 내용까지 다 가져오게됩니다.

그런 특징 때문에 include말고도 require가 존제합니다.

include 에러가 발생하면 그이후줄로 넘어가지만
require는 에러가나면 프로그램이 더 이상 실행되지 않습니다.



함수 ( function )

위 사진은 php의 함수와 java의 메소드와 비교한 것입니다.

문제가 있는 내용이지만 이해하는데 크게 어려움은 없으리라 생각합니다.


php의 함수에서는 변수관리가 좀 까다로운데, 



return을 이용하지 않고 변수의 값을 바꾸는 과정이다.

임시값을 이용하여 값을 서로 변경하는 과정이다. 버블정렬에서 많이쓰이는 방식으로

$num1 = 5 / $num2 = 6 이라는 수가 있다.

처음 주황색칸에 있는 함수는 맞는듯 보이지만 값이 변하지 않는다. 

지역 변수로 사용한 값이 밖에 값에 적용되도록 하기위해서는 지역변수앞에 & 기호를 붙혀주어 사용하면

파란색 경우처럼 값이 변하게 된다.

전역변수를 직접 사용하는 경우의 문제점이다.

처음 파란칸에 문법은 맞는듯 보이지만 값을 출력했을 시에 아무것도 출력되지않는다.

함수안에 echo $a; 에서 $a를 찾지 못하기 때문이다. 즉 $a를 가져오고 싶음 

"이건 지역변수가아니라 전역변수야!"

라고 말을 해주어야 한다. 그래서 global $a로 전역변수라는것을 알려주어 사용한다.


이게 내가 가장 햇갈리던 기본개념이다.

다음에는 html부분,레퍼런스함수 등 퍼올수 있는것보다 개념적인 부분을 보도록 하겠습니다.

'Programming > PHP' 카테고리의 다른 글

XE 삭제가안될시 지우는 방법  (0) 2012.11.02
[모바일웹] 모바일웹 해상도 meta 태그로 정하기.  (0) 2012.08.27
[모바일웹] 스마트폰 구분하기.  (0) 2012.08.24
세션이란?  (0) 2012.07.31
쿠키란  (0) 2012.07.10



구글맵을 띄울 엑티비티는 Activity를 상속 받는것이 아니라 MapActivity를 상속 받습니다.


그리고 인터페이스를 하나 구현해 줍니다.


public class 클래스명 extends MapActivity implements LocationListener {

...


Location을 구현하기 위해서는 4개의 메소드가 필요하다.


 

public void onLocationChanged(Location location) {}

// 위치값이 변경될 시 , 지역변수는 위치 값을 말한다.

public void onProviderDisabled(String provider) {}

// 위치 제공이 안될 시

public void onProviderEnabled(String provider) {}

// 위치 제공이 가능한 경우

public void onStatusChanged(String provider, int status, Bundle extras) {}

// 상태가 변경되었을 시 ( ex. gps->3g )



이 내용물들을 잘 골라가며 그때 그때 맞추어 사용하면 된다.


가장 많이 사용하는 것이 onLocationChanged() 일텐데, 이것을 관리하기 위해 LocationManager 을 선언과 생성을 해줍니다.



  

public class Test_Activity extends MapActivity implements LocationListener {

  LocationManager locManager; // 선언

  @Override

	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.test);



locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // 생성

// GPS 사용시 

//locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000, 0, this);

// 3G,4G,WIFI 사용시

// locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, this);

}

}

이런식으로 지정해주시면 됩니다.

requestLocationUpdates(GPS,네트워크 방식지정 , 시간(ms) , 거리(m) , 객체리스너) 로 이루어져 있고

이 설정에 따라서  onLocationChanged() 이 작동하기 때문에 이 설정을 잘 이해해주시는게 좋습니다.

안드로이드 어플개발시 구글맵 띄우기


xml에 구글맵을 띄우기 위해선 일단 구글맵키를 받아야 한다


  


이런식으로 구글맵이 생성이 되는데 

api키를 받아주어야 사용이 가능하다


운영체제 마다다른데 리눅스, 윈도우만 설명을 하면


우선 리눅스는(Centos)

Eclipse에서 

Window -> Preference -> Build -> “default debug keystore”에 저장된 경로를 확인합니다.

특별하지 않을경우 계정홈 .android/debug.keystore 로 지정이 되어있습니다.


그럼 터미널로 들어가서

# keytool -list -alias androiddebugkey  -keystore .android/debug.keystore -storepass android -keypass android 

를 입력해주면 키값이 뜹니다.



이 MD5의 값을 기억하고 계시고요


윈도우는 cmd로 명령프롬프트를 실행해주신뒤에 로그인한계정 .android 로 들어갑니다.

그 위치에서 dir *.keystore로 keystore가 있는지 확인하시고 있으면

위와 똑같이  

> keytool -list -keystore debug.keystore -keypass android -storepass android -alias androiddebugkey

를 입력해주세요

아래와 같은 경우처럼 안되는경우는 path등록을 안해주셨을 경우이기에 path를 등록해주시면 됩니다.




md5 값을 기억하시고

https://developers.google.com/android/maps-api-signup?hl=ko-KR

요기로 들어갑니다.


MD5 키입력란에 키를 입력하시고 확인을 눌러주시면


위와같이 사용자키가 생성됩니다


이키를 위 소스에 apikey안에 입력해주시고 실행하시면



이건 제가만드는중인 어플이라 조금 다를수가 있습니다.


이런식으로 지도가 띄워지게 됩니다.

다음에는 자기위치를 띄우는법을 쓰도록하겠습니다... 시간이 되면


/* 웹에서 파일 다운로드하기 * Stream을 이용하여 웹에서 파일을 다운로드하고 * 어플 내의 data공간에 파일을 저장한다. * db등의 파일을 다운로드할때 유용하다. */

File outfile = new File("/data/data/어플패키지명/databases/다운받을 파일명");

InputStream is = new BufferedInputStream(new URL("FileUrl").openStream());

OutputStream fo = new BufferedOutputStream(new FileOutputStream(outfile)); int read = 0; byte[] buffer = new byte[1024]; while ((read = is.read(buffer, 0, 1024)) != -1) fo.write(buffer, 0, read); fo.flush(); fo.close(); is.close();

위 소스 기반으로 파일을 다운을 받고 DDMS로 확인을 하면


다운로드 전


다운로드 후


이런식으로 파일이 변한것을 확인할 수 있습니다.


이환희 학생의 TED강연입니다. 

주제는 '무당벌레를 죽이는 아파트 조명옥상의 문제' 이고요

전에 유머사이트에서 봤던건대 생각나서 올립니다.

미국보면 와 신박한 사람많다. 이랬는대 우리나라도 이런분들이 계시내요.

내자신이 부끄럽고, 우리나라가 자랑스럽내요.




출처 - http://www.tedxbusan.com/p/1308

'etc. > TED' 카테고리의 다른 글

TED : 게임을 해서 더 좋은 세상을 만들 수 있습니다.  (0) 2012.03.16

오늘은 랜선만드는 방법에 대해서 적어보겠어요

순수한목적이외에 다른목적으로 적는것이지만 상새하게 적으려고 노력했어요

전산병 여러분 화이팅. 아 생각만해도 빡친다.


먼저 준비물 랜툴기 , 피복제거기 ,렌선 , RJ-45가 필요해요.




이제 렌선을 만들어 볼텐데요

우선 랜선을 야무지게 벗..깁니다.



그럼 / / / 4가지의 색이 나옵니다.

색별로 각각의 역활을 하는데 그건 아래에서 설명드릴께요.


그럼 랜선을 각각 나누어 줍니다. 

이건 덤인데 위에는 북쪽은 주황 서쪽은 파랑 동쪽은 초록 남쪽은 갈색 이런식으로 십자형으로 펴주면 

나중에 선을 정리할때 들꼬이고 이쁘게 꼬입니다.


최종적으로  흰주 / / 흰초 / / 흰파 / / 흰갈 /  순으로 묶어야해요

아래순서대로 하시면 왜 위에서 색을 동서남북으로 나누었는지 아실수 있으실꺼예요


1.흰주 / 주 를 만들고 동쪽에 흰초를 올려요

나머지는 사진이 짤렷는대 다음에 

2. 파 / 흰파를 동쪽으로 붙힌뒤 옆에 붙히세요

3. 그다음 아래에 흰갈 / 갈 을 위로 붙히시면


위와 같은 그림이 될꺼예요 

선이 막꼬이면 엄지끝마디랑 중지 중간마디로 길게잡고 위아래로 막 펴주세요.

그다음 엄지손 한마디 조금안되게 잘라주세요. 이건 솔직히 감이라...

그럼 아래처럼 잘리게 되요 이거를 잘잡고 

RJ-45 를 꼳아주면되요.

RJ-45를 꾹밀어넣으세요 옆면에서 보았을때 끝까지 다아있어야 좋아요

RJ-45 배에서(접촉면) 봤을때 왼쪽이 주황색이여야 정상이예요.


반대쪽도 마찬가지로 똑같이 만들어주시면 다이렉트 케이블이 만들어져요!!


그리고 랜툴기로 찝어주시면 끝납니다.

동영상을 찍었는대 아직 음성제거를못해서. 수정뒤 바로올릴수있도록 하겠습니다.


=--------------------------------------------------------------------------=

보너스 ! 크로스케이블 만드는법.

요즘은 크로스케이블을 잘안쓰죠. 예전에는 공유기가 비싸서 

랜카드 하나 더사서 한선으로 2개의 컴퓨터를 인터넷할때 많이 사용했는대..


랜선은 통신할때 TX (송신) / RX (수신) 로 통신을해요.


다이렉트 케이블을 보면


흰주(TX+) / 주(TX-) / 흰초(RX+) /  / 흰파 / 초(RX-) / 흰갈 /  

||

흰주(TX+) / 주(TX-) / 흰초(RX+) /  / 흰파 / 초(RX-) / 흰갈 /  


이런식으로 이루어져있어요

나머지선들은 놀아요? 라고 하시면 저건 예비선이예요. 

기가비트에서는 저걸 전원공급용으로 쓴다고해요.


크로스 케이블은

흰주(TX+) / 주(TX-) / 흰초(RX+) /  / 흰파 / 초(RX-) / 흰갈 /  

||

흰초(RX+) / 초(RX-) /흰주(TX+) /  / 흰파 / 주(TX-) / 흰갈 /  


이런식으로 서로 다르게 되어있어요.

원리는 좀어려운데 간단히 설명드리면 

서버 - 클라이언트 로 사용할때는 다이렉트 케이블을 사용해요

서로 보내기로한선 과 받기로한선의 역활을 구분해 두었으니까요

하지만 클라이언트 - 클라이언트 혹은 서버 - 서버 로 사용할 경우

서로 쓰기로한선이 중복되기때문에 서로 통신이 안되죠.

그래서 서로 통신을하기위해 한쪽은 RX 와 TX를 바꿔서 

서로 통신을 할수 있게 해주는 원리입니다.


이상으로 랜선만들기를 마칩니다. ^^



'etc.' 카테고리의 다른 글

블랙박스영상  (0) 2022.03.14

우선 유투브 동영상에서 ID주소를 가져옵니다


아이디주소는 


네모 친부분이 아이디입니다 기억해주세요


그리고 원하는 이벤트안에 아래 문구를 넣어줍니다


Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("vud.youtube:YOUTUBEID)); 
startActivity(i);

굵은 글씨공간에 적어주면됩니다.


그럼 내가 특정이벤트를 실행시 원하는 동영상을 Youtube 내장앱을 이용해 감상하실 수 있습니다.


꼭 내장유투브 뿐만아니라 인터넷으로도 부르고 싶다. 즉 어떤걸 선택할지 사용자가 정하도록 하고싶은경우


Intent i=new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=YOUTUBEID")); 
startActivity(i);

이런식으로 사용하면 됩니다.


Centos가 날라가서 다시 설치하고 세팅하는대

루트권한으로 들어가도 DDMS에 겔넥이 인식이 안되더군요.


구글신의 도움으로 글 써봅니다.


1. # lsusb 로 내폰을 찾아본다.


제폰이 왜 갤스2로 나오는지는 모르겠지만 여기서 알아두셔야할건 "ID 04e8:6860" 입니다.


2. # vi /etc/udev/rules.d/99-android.rules 로 파일을 만들어 아래내용과 같이 적어줍니다.



이때 "ID 04e8:6860" 이 ATTRS{idVendor}="아이디앞부분" , ATTRS{idProduct}="아이디뒷부분" 로 들어가 줘야합니다.


그리고 재부팅후 이클립스를 켜서 확인합니다.



야호 신난다. 이제 즐거운 개발을 해봐요...

+ Recent posts