열심히 무언가에 열정을 갖고 열정과 노력을 투입한다는것은 현재의 결핍된 상황을 개선하기 위한 목표가 있다는 말이다.

즉 바꿔 말하면 현재 무언가 결핍(부족함)을 느끼고 있고 이를 타파하기 위해서는 가만히 있기 보다 개선하기 위한 노력을 투입 해야 한다.

결핍이 없어도 목표를 세울 수 있고 노력을 할 수도 있다. 그러나 동기부여 배경자체가 달라 집중력, 지속의지 등이 다를 수 있다.

 

목표가 생긴 사람은 이 목표를 이루기 위해 무엇을 해야 할까?

그 다음에 필요한 것은 계획이다. 바로 실행이 아니다.

생각만 하고 목표만 세우는건 아무것도 하지 않은것과 똑같다.

실천을 했으나 실패한 사람과는 다르다는 말이다.

실천하고 노력한 끝에 목표를 이루지 못하게 된다 하더라도 '경험' 이라는 것이 쌓인다.

그러나 생각만 하고 실천하지 않은 사람에게는 아무것도 남지 않았을 뿐 아니라 초기 '결핍' 상태에서 단 한 발자국도 나아가지 못한 것과 마찬 가지다. 오히려 허탈감만이 스스로에 대한 실망감과 죄책감을 안기겠지.

 

자 그럼 다시 계획을 세우는 단계로 다시 돌아가서,

계획은 구체적으로 세워야 한다.

내 목표가 1년, 6개월, 1개월 단위인지에 따라 기간을 세분화 하여 기간별 세부 목표를 세우고 최대한 구체적으로 계획을 세워야 한다.

예를들어 1년 짜리 목표라면 1년 전체 목표, 분기별 목표, 월별 목표를 세우고 마지막 주단위 목표까지 세워야 한다.

주단위 목표에서는 일주일을 시간표 처럼 시간단위로 쪼개어서 할일을 설정한다.

이렇게 목표를 이루기 위한 과정을 세분화 하고 그것을 1주일 단위로 쪼갠다면, 머릿속이 단순해 진다.

계획이 탄탄하다면 내가 지금 무엇부터 해야할지 이 다음엔 무얼 해야 할지를 중간중간 고민해야 할거다.

한주 한주 주단위 목표만 생각 하면서 달리다 보면 한달, 두달이 흘러 자신도 모르게 목표에 다가가 있을 것이다.

 

본인의 경우 연간, 분기, 주단위 목표를 운용 중이며, 별도 진행중인 프로젝트 별 로드맵을 운영 중이다.

이제, 이렇게 계획을 세워 움직이고 나서 좋아진 점을 정리해 보겠다.

시간을 알뜰하게 쓰게 된다.

내가 이번 주에 어떤 어떤 일들을 할지 세운 목표가 있을 거다.

생활에 목표가 있으면 시간을 헛되게 쓰지 않게 되고 짜투리 시간이 나면 계획표에 정한 할일을 하게 된다.

예를들어 직장에서 점심식사 이후 남은 점심 시간 동안 계획이 없었다면 인터넷 서핑이나 스마트폰 게임을 했겠지만,

이제는 계획에 세운대로 (책을 읽거나, 보고서를 읽거나, 동영상 강의를 보거나, 걷기운동 등) 움직인다.

만일 내 상태가 계획 보다 뒤쳐진 상태라면 따라잡기 위해 프로젝트 활동을 할 것이고.

그리고 주말이나 불금이 되면 이번주엔 뭘 하고 놀지? 누구한테 연락을 해볼까? 하는 생각을 할 필요가 없어 진다.

자연스럽게 카드값도 줄어든다.

그러나 인간관계는 일절 줄이고 목표수행에만 몰두해야 한다는 의미도 아니다.

스스로 알아서 조절하면서 시간에 버퍼를 두고 예상치 못한 약속이나 일정이 생긴다면,

그만큼 주중에 잠을 조금 줄인다거나 더 열심히 달리면 되니까.

나도 현재 진행형이다. 결핍에서 시작해서 목표와 계획을 실천해서 목표를 이루고 큰 성공을 이룬 사람은 아니다.

목표가 있고 이루기 위해 열심히 달리는 과정도 너무 행복하고 재미있다.

이렇게 성장하다 보면 언젠가 내 목표에 도달해 있을거라는 확고한 믿음으로 오늘도 달린다.

by wisegirl 2013. 3. 20. 16:14

이클립스 안드로이드 설치시 기억할것

 

(1) Java 설치, 환경변수 Path 경로추가

C:\Program Files\Java\jdk1.7.0_17\bin\

 

(2) 이클립스 다운로드

Juno 버전 이후 부터 SVN이용가능

 

(3) 안드로이드 SDK 다운로드, 환경변수 Path 경로추가

C:\Android\eclipse-SDK-4.2.2-win32-x86_64\sdk\tools\

 

(4) 이클립스 실행 후 안드로이드 Develop관련 추가설치

Help -> Install New Software ->

https://dl-ssl.google.com/android/eclipse/ 

 

by wisegirl 2013. 3. 20. 08:47

인플레이션(inflation)을 통해 탭 위젯 구현하기

 

인플레이션 구현 복습

해당 액티비티의 객체를 연결해 주는 infalter를 전달받고 그 inflater에 Layout과 TabHost를 등록

LayoutInflater inflater = LayoutInflater.from(this);

inflater.inflate(R.layout.main, mytabhost.getContentview(), true);

 

 

탭 위젯 구현하기

탭 호스트 spec을 만들고 sepc에 Indicator와 setContent를 해 주고 나서

탭 호스트에 spec객체를 addTab();

TabHost mytabhost;

TabHost.TabSpec spec = mytabhost.new TabSpec("tag");

spec.setIndicator("탭이름"(;

spec.setContent(R.id.Layoutid);

mytabhost.addTab(spec);

 

 

by wisegirl 2013. 3. 19. 13:05

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'결핍' 이 결핍이 사람을 움직이게 만들고 성장하게 만든다는 사실을 깨닭았다.

지금 나에게 부족한 것이 인지되면 사람은 그 부족을 채우기 위한 방법을 생각한다.

생각 끝에 내가 어떻게 하면 그 결핍을 채워나갈 수 있을지 방법을 찾기도 하고, 찾지 못할수도 있다.

그 다음엔 결핍을 채울 수 있는 활동 또는 결핍을 채우는데 도움이 되는 활동을 하기 시작한다.

여기까지 생각이 미친다면 그 사람은 '목표'가 생겼다고 할 수 있다. 달려갈 목표가 생긴 것이다.

예를들어

가고싶은 대학 목표점수 보다 나의 점수가 결핍된 상태라면 점수를 올리기 위해 노력할 것이고

남에게 당당할 수 있을 만큼 외모가 결핍된 상태라면 당당할 수 있을 만큼 다이어트나 외모를 가꾸기 위해 노력할 것이고

가고싶은 회사의 조건에 내 스펙이 결핍된 상태라면 스펙을 올리기 위해 노력할 것이고

내 연봉이 결핍된 상태라고 느낀다면 더 높은 연봉을 받을 수 있는 곳으로 이직을 위해 자기계발에 노력할 것이다.

 

이처럼 목표를 갖고 지금보다 나은 상태를 만들기 위해 노력을 하게 될 것이다.

그러다 보면 노력 여하에 따라 변화(성장)하며 자신을 둘러싼 결핍을 조금씩 채워 나갈 것이다.

(모든 경우에라고 단정할 순 없겠지만) 대부분의 경우 스스로 의지를 갖고 노력을 시작하는데 

그 출발점은 '결핍'을 느낀다는 점에서 일 것이다.

아마 누구나 마음속에 '결핍'을 느끼는 부분은 하나 이상씩 다 있을것 이다.

결핍을 인지하고 이를 해소하기 위해 목표를 세우고 노력하는 사람은 발전 가능성이 있는 사람인 것이다.^^

 

 

by wisegirl 2013. 3. 17. 14:36

 

 

 

 

 

 

 

 

 

 

 

 

 

국가, 회사, 팀 어디에서든 리더의 역할이 정말 중요하다는 것을 느끼는 요즘이다.
좋은 리더가 갖추어야 할 조건에 대해 생각해 보았다.
앞으로 나는 어떤 리더가 되어야 할까?
지극히 개인적인 의견이다.^^

 

중요도: 통찰력 > 철학과 확신> 커뮤니케이션

 

1. 통찰력(Insignt)
꿰뚫어 볼 줄 아는 안목과 통찰력이 반드시 필요하다.
현상과 단면을 보고 그것이 내포하고 있는 의미,
드러나 보이지 않은 숨겨진 의미를 파악할 줄 알며, 
연관되어 펼쳐질 일들을 예측할 줄 아는 능력이 필요하다.
그리고 다음 목표와 방법의 가이드라인 정도를 구성원에게 제시할수 있어야 한다.

 

리더는 본인의 역할을 '열심히' '잘' 하는 사람이어야 한다.
선장에 비유 하자면 배가 나아가야 할 방향을 잘 잡을 수 있어야 된다는 의미인데,
'열심히' 만 하는 사람이라면 엉뚱한 방향으로 노를 열심히 저어 잘못된 방향으로 배를 이동시키는 꼴을 만들게 된다.
그렇다면 배는 점점 목적지(목표)와 멀어지는 결과를 낳을 뿐이다. 이는 안함만 못한 격이다.
결국 리더는 방향을 올바르게 '잘' 잡고 동시에 노를 '열심히' 저어갈 수있도록 조직을 이끌어야 하는 자리다.
방향을 '잘' 잡는건 오로지 리더만이 할 수 있는 역할이다.
방향을 '잘' 잡을 수 있도록 하는 통찰력은 반드시 갖추어야 할 필수 덕목이다.


2. 철학과 확신
본인의 인사이트와 판단에 대한 확신을 가질 줄 알아야 한다.

리더는 그저 구성원들의 의견을 듣고 수합하는 역할을 하는 자리가 아닌 것이다.
자신의 철학을 갖고 그 철학과 근거를 구성원들 에게 보여주며 자신감과 확신을 심어줄 수 있어야 한다.

그래야 구성원들도 리더를 믿고 걱정없이 따르며 진행될 방향에 대해 불안해 하지 않으며 실무에만 집중 할 수 있다.

 

3. 커뮤니케이션(인간적 면모)
구성원들의 마음을 한 곳으로 모으고,

조직의 운명과 업무에 주인의식을 갖게 하고,

가슴에 열정을 키워줄 수 있어야 한다. 
리더의 인간적인 면모가 뒷받침이 되어야 하는 부분이다.
공부를 하거나, 책을 본다고 얻어질 수 있는 덕목이 아닌 개인 인격의 역량인 것이다.

리더의 말과 행동에서 우러나는 모습들을 구성원들이 보고 느낄 수 있도록 만들어 주어야 하는 것이다.
구성원들과 커뮤니케이션하고 마음을 꿰뚫어 보며 그 마음을 다스릴 줄 아는 역량이 뒷받침 된다면 금상첨화 일 것이다.
 

'생각' 카테고리의 다른 글

목표와 시간관리  (0) 2013.03.20
결핍이 사람을 성장시킨다.  (0) 2013.03.17
by wisegirl 2013. 3. 15. 11:30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ㅇ static 변수는 해당 static변수가 선언된 클래스의 모든 인스턴스가 공유하는 변수이다.

 

ㅇ static 으로 선언된 변수는 특정 메모리 공간 하나의 주소에 존재한다. (동일한 주소로 변수 참조)

   - 다시말해, 여러번 생성 될 때 마다 메모리에 로딩되지 않고 한번만 한 곳에 로딩된다.

 

ㅇ static 변수는 객체가 생성(new)되기 전에 별도의 메모리 공간에 할당되어 초기화 된다.

 

ㅇ static 변수는 클래스가 생성(new)되지 않더라도 정의만 되어도 접근가능하다.

 

ㅇ static 변수가 초기화 되는 시점은 JVM에 의하여 클래스가 메모리 공간에 올라가는 순간이다.

   - 일반 변수는 객체가 new되는 시점에 메모리에 로딩된다는 점과 차이
   - static변수는 생성자를 통하여 초기화 하면 안됨

 

ㅇ 객체간 데이터 공유가 필요한 상황에서는 static변수를 선언한다.

 

ㅇ 클래스 내부/외부에서 참조의 용도로만 선언된 변수는 static final로 선언된다.

 

ㅇ static 메소드 내에서는 일반 객체 변수를 사용할 수 없다.
   - static 메소드를 호출할 때 객체가 생성되어 있지 않을수도 있기 때문이다.
   - 다시말해, new되어 변수가 메모리에 로딩되지 않은 시점 일 수도 있다는 말이다.

 

ㅇ static변수는 지속적으로 메모리에 유지된다.
   - 일반 변수는 메소드에서 사용되고 나면 자동으로 소멸되는것과 비교

 

ㅇ static 메소드는 컴파일시 early-binding되기 때문에 실행시 바인딩(late-binding)되는 객체 메소드 보다 빠르다.
   - 컴파일시 이미 호출될 함수가 결정되기 때문에 실행시에 호출되는 함수를 찾아서 결정하는 시간을 줄일 수 있다.

 

자주 변하지 않는 일정한 값이나 설정 정보 같은 공용자원에 대한 접근에 있어서 매번 메모리에 로딩하거나 값을 읽어 들이는것 보다 일종의 메모리 차지공간도 줄이고 효율도 높일 수 있다.

static으로 선언된 클래스 변수나 메소드는 객체의 변수가 아니라 클래스의 변수가 된다.
클래스의 변수라 함은 어떠한 객체라도 동일한 주소로 해당 변수를 참조할 수 있다.
반대로 객체의 변수라고 하면 매번 new될때 마다 참조 주소가 달라진다.

일반적으로 클래스의 변수나 메소드는 클래스가 인스턴스화(new) 되기 전에는 사용 할 수 없는데
static으로 선언된 변수나 메소드는 해당 클래스의 인스턴스 여부와 상관없이 바로 접근/사용가능

 

싱글톤(singleton)
클래스를 private로 선언하면 클래스 객체를 new로 생성할 수 없다.
public static으로 선언한, 객체를 리턴하는 getInstance()와 같은 메소드를 통해서만 객체 접근 가능
public static MyClass getInstnace()
{
if(classInstance == null)
classInstance = new MyClass();
return classInstance;
}

싱글톤 방식은 프로젝트에서 DB연결 등의 공용자원 접근에 이런 static적용을 통해 안전성을 높임
변하지 않는 값을 final static으로 선언하면 GC(Gabage Collection) 대상이 되지 않음

 

 

by wisegirl 2013. 3. 14. 17:24

요즘 개인적인 공부와 프로젝트 진행으로 공부할 곳을 많이 찾아 다닙니다.

제 의지가 약해서 인지 집에선 왠지 몰입이 잘 안되더라구요, 춥기도 하고 ㅎㅎ

그래서 집근처 또는 교통이 편하면서 공부하기 좋은 북까페를 많이 찾고 있어요.

앞으론 제가 다닌 북까페들 중 괜찮았던 곳들 여기다 기록해 볼까 해요~

 

우선 가장 최근에 알게된 홍대 지하철역 근처 '카페꼼마 2페이지'를 소개합니다.

카페꼼마 2page 라는 이름에서도 유추하셨겠지만 2호점 입니다.

1호점은 저도 아직 못가봤어요~ 지하철역에서 좀 거리가 있고 제 동선이랑은 좀 맞지 않더라구요.

 

우선 사진부터 나갑니다.

 

 

 

 

높은 천장, 통유리, 벽면을 가득 채운 책장.

분위기 너무 좋았어요. 게다가 잔잔한 음악까지도 좋았구요.

정리한 내용 아래와 같습니다.

 

ㅇ교통: ★★★★★

   2호선 홍대입구역 2번출구로 나와서 3분만 걸으면 왼편에 위치, 전 위치가 가장 마음에 들어요!!

ㅇ소음: ★★★☆☆

   스타벅스 정도의 적당한 소음이에요, 이어폰 끼면 조용한 정도구요.

   전 너무 조용한것 보다 적당히 소음이 있는게 덜 부담스럽고 좋아요.ㅎㅎ

ㅇ가격: ★★★☆☆

   아메리카노 한잔 4500원 정도로 가격은 좀 비싸지만 북까페 치고는 저렴한것 같아요.

   그리고 모든 메뉴 1000원으로 아메리카노 리필이 가능한 점도 메리트죠.

 

아래 위치 참고하세요^^

by wisegirl 2013. 3. 13. 11:13

2tier client/server모델: clint 와  server가 일대일로 연결하는 방식
3tier 모델: 클라이언트-응용서버-데이터서버 연결방식

소켓의 기본이해 (자바 네트워킹과 동일함)

//서버쪽
ServerSocket serverSocket = new ServerSocket(5001);
while()
 Socket socket = serverSocket.accept();
 ObjectInputStream instream = new ObjectInputStream(socket.getInputStream());

 //스트림으로 들어오는 input데이터, socket으로 부터
 String inStr = instream.readUTF();
 System.out.println("result: " + inStr);

 ObjectOutputStream outstream = new ObjectOutputSteam(socket.getOutputStream());
 outstream.write("from server: "+ inStr);
 outstream.flush();

 

//클라이언트 쪽
Socket socket = new Socket("localhost", 5001);

ObjectOutputStream outstream = new ObjectOutputSteam(socket.getOutputStream());
outstream.write("Hello");
outstream.flush();

ObjectInputStream instream = new ObjectInputStream(socket.getInputStream());

//스트림으로 들어오는 input데이터, socket으로 부터
String inStr = instream.readUTF();
System.out.println("result: " + inStr);

자바와 안드로이드 차이점은 메인UI 접근제한으로 핸들러를 이용한다는 점

서버는 일반 소켓서버를 쓰면 된다. 어차피 소켓 프로토콜이므로,

by wisegirl 2013. 3. 13. 10:54

스레드 객체 및 메소드 내에서 메인 UI객체에 접근할수 없다!

그래서 핸들러가 필요하다.

Thread 내에서 Handler 객체를 이용하여 UI 객체와 값을 주고 받는다.

class ProgressHandler extends Handler{

   public void handleMessage(Message msg){ //handler를 통해 UI로 부터 값을 수신하는 메소드. (핵심)

      mytext.settext(msg.what);

   }

}

그리고 Activity쪽에서는 아래와 같이 쓰면 된다.

Thread thread = new Thread(new Runnable(){

   public void run() {

      Message msg = handler.obtainMessage(); // new로 매번 객체를 매번 만드는 대신 handler에게 msg달라고 요청

      msg.arg1 = '1111';

      msg.arg2 = '222';

      msg.object = Object;

      Message msg = Message.obtain(handler, '1111', '222', Object); // 또는 이렇게 한줄로 처리할수도 있다.

     //메세지에 값을 담아서 넘겨준다.

     handler.sendMessage(msg); // msg전송 handler객체의 handleMessage() 메소드가 호출된다

   }

}

 

루퍼: 무한루프 방식을 이용해 메시지 큐에 들어오는 메시지를 지속적으로 보면서 하나씩 실행

 

AsyncTask

백그라운드 작업을 좀 더 쉽고 간단하게 할 경우

AsyncTask 객체를 만들고 execute() 메소드를 실행하면 이 객체는 정의된 백그라운드 작업을 수행하고, 필요한 경우에 그 결과를 메인 스레드에서 실행하므로 UI 객체에 접근 하는데 문제 없게 됨

 

doInBackground

새로만든 스레드에서 백그라운드 작업 수행

execute()메소드를 호출할 때 사용된 파라미터를 배열로 전달받음

 

onPreExecute

백그라운드 작업 수행 전 호출

메인 스레드에서 실행되며 초기화 작업에 사용

 

onProgressUpdate

백그라운드 작업 진행 상태를 표시하기 위해 호출

작업 수행 중간 중간에 UI객체에 접근하는 경우 사용

이 메소드가 호출되도록 하려면 백그라운드 작업 중간에 publishProgress()메소드 호출

 

onPostExecute

백그라운드 작업이 끝난 후 호출

메인 스레드에서 실행되며 메모리 리소스를 해제하는 등의 작업에 사용

백그라운드 작업의 결과는 Result타입의 파라미터로 전달

 

class ProcessTask extends AsyncTask{

   doInBackground() //스레드 run()함수처럼 실행부분

   publicshProgress() //호출하면 onProgressUpdate()가 호출된다. (스레드에서 .start()하면 run()실행되는것 처럼)

   onProgressUpdate() //이 안에서 메인UI접근가능

   execute() //.start()와 같이 스레드 실행 함수

}

by wisegirl 2013. 3. 11. 22:28

안드로이드에서는 여러 객체에게 메세지를 전달하고 싶은 경우 브로드캐스팅을 사용한다.

문자 수신 또는 전화수신같은 글로벌 이벤트가 대표적.

전달되는 브로드캐스팅 메세지는 브로드캐스트 수신자 애플리케이션 구성요소에 의해 수신.

애플리케이션 구성요소 이므로 매니페스트 파일에 등록해야 함.

서비스 처럼 브로드캐스트 수신자도 화면을 구성하지 않음.

등록방식은 자바코드 상에서 registerReceiver()메소드로 등록

수신하고싶은 메세지가 있다면 그 메세지는 인텐트 필터를 이용해 등록함

 

<receiver android:name=>

 <intent-filter android:prority="1000">

  <action android:name="android.provider.Telephony.SMS_RECEIVED"/>

 </intent-filter>

</receiver>

 

prority속성은 메시지 수신의 우선순위 결정, 숫자가 클 수록 우선순위 높음

  

by wisegirl 2013. 3. 6. 23:59
| 1 2 3 4 5 ··· 8 |