자기 동기 부여

일상 2018. 6. 5. 19:01

동기에는 긍정적인 동기와, 부정적인 동기가 있다고 한다.


긍정적인 동기부여는 예를 들면 좋은 대학을 나오면 더 나은 환경이 기다리고 있어 라고 한다면

부정적인 동기부여는 가난한 삶을 살지 않기 위해서는 좋은 대학을 가야해 라고 표현할 수 있겠다.


나는 어떠한 동기로 살아가고 있나 를 되짚어 보았다.


나는 부정적인 동기로 움직이고 있다.

  • 돈을벌기 위해 회사를 다닌다.
  • 적어도 일을 할수 없는 나이가 될 때 까지는 회사를 다녀야 하므로 억지로 공부한다.
  • 돈과 가정을 위해 회사가 멀어도 다닐 수 밖에 없다.

동기부여의 방법


1. 잔이 반이나 비어 있다는 비관적인 자세보다는 반이나 차있다는 낙관적인 자세를 갖는다.
<감사하게 여기는 10가지 목록>
회사를 다니고 있다.
회사내부 인간관계가 나쁘지 않다.
결혼할 여자가 있다.
주위에 좋은 사람들이 있다.
차가 있다.

10가지 다 채우지 못하였다...

2. 무엇을 할 필요가 있는지를 찾아본다.
  좋은 개발자가 되고 싶다면, 개발 공부를 하라!

3. 당신 주변을 긍정으로 둘러쌓는다.
  부정적인 사람이 있다면 신경쓰지 말고, 오히려 그 반대가 되기 위해 노력한다.
  (넌 절대 그렇게 될 수 없다라고 듣는다면 그렇게 되지 않게 노력을 한다.)

4. 작은 것부터 시작한다.
  목표를 크게 잡지 말아라. 예를 들어 35kg 을 감량한다 보단 5kg 을 감량한다로 너무 벅차지 않는 것부터 시작하라.
  코틀린을 마스터 한다 보다는 작은 프로그램을 만들어보자.

5. 목표를 머릿속에 그려본다.
  하루에 몇 분만 투자하여 목표를 그려보자.
  나중에 어디서 무엇을 하고, 무엇을 입고, 어떻게 일하는지를 상상해보라.

6. 초심을 잃지 않는다.
  체중감량을 하고 싶다면 건강한 습관을 새로 만든다.
  돈을 더 벌고싶다면 예산 계획을 새로 짜보라.

7. 기존의 계획을 다듬는다.
  계획을 세운 부분이 제대로 되고 있는지 되돌아보고, 다듬는다.

8. 당신의 목표를 공개한다.

9. 사소한 문제를 거창하게 여기지 않는다.
  무언가에 실패를 하더라도, 실패를 인정하고 15분 정도 투덜 된 후 멈춘다. 내일 다시 새로운 날이 찾아온다.

10. 마음이 맞는 친구들의 도움을 받는다.
  도움이 필요할 때 도움을 요청하는 것이 중요하다.

11. 과정을 기록한다.
  설정한 목표를 기록하는 일기를 만든다.


'일상' 카테고리의 다른 글

요즘은 다시 안드로이드  (0) 2014.07.17
C# Winform 의 시작...  (0) 2014.01.15
Posted by 자바리즘
,

Data Binding 을 이용해서 이벤트를 정의해 보자!!


레이아웃 xml 파일

<data>
<variable
name="user"
type="kr.co.exam.myjetpack.bind.User" />

<variable
name="presenter"
type="kr.co.exam.myjetpack.event.Presenter" />

</data>




버튼을 정의하자

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="event"
android:onClick="@{(view) -> presenter.onSaveClick(view)}"
/>


람다표현식을 사용해서 위에 variable 에 선언한 presenter 의 onSaveClick 에 접근할 수 있다.




Presenter 클래스

public class Presenter {

private Context mContext;
public Presenter(Activity activity) {
this.mContext = activity.getApplicationContext();
}

public void onSaveClick(View view) {
Log.w("DEBUG", "onSaveClicked");

if(mContext != null) {
Toast.makeText(mContext, "onSaveClick~~", Toast.LENGTH_SHORT).show();
}
}
}



MainActivity 에서 아래와 같이 설정을 해주어야 한다.


Presenter 를 생성해서, binding을 해주어야 이벤트가 제대로 동작한다. (이걸 안해줘서 엄청 삽질..

-_-;;)

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main_activity)

val presenter = Presenter(this)
val binding = DataBindingUtil
.setContentView<DataBindLayoutBinding>(this, R.layout.data_bind_layout)
val user = User("Test", "User")
binding.user = user
binding.presenter = presenter
}


구동화면


'안드로이드 > JetPack' 카테고리의 다른 글

Data Binding  (0) 2018.05.24
Posted by 자바리즘
,

오늘 소개할 기술은 Data-Binding 이다.


#App 모듈의 build.gradle 에 아래의 구문을 추가하자.


android {

...

dataBinding {

enabled = true

}

...

}


#레이아웃


반드시 <layout> 태그로 시작해야 합니다.

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
   
<data>
       
<variable name="user" type="com.example.User"/>
   
</data>
   
<LinearLayout
       
android:orientation="vertical"
       
android:layout_width="match_parent"
       
android:layout_height="match_parent">
       
<TextView android:layout_width="wrap_content"
           
android:layout_height="wrap_content"
           
android:text="@{user.firstName}"/>
       
<TextView android:layout_width="wrap_content"
           
android:layout_height="wrap_content"
           
android:text="@{user.lastName}"/>
   
</LinearLayout>
</layout>

data 태그안의 variable 태그에서 name 은 별칭이고, type 은 해당 클래스의 패키지명입니다.


TextView 에서 @{user.firstName} 이 선언된 부분을 보면 variable 의 name 을 참조해서 firstName 에 접근하는 것을 확인할 수 있습니다.



public class User {
   
private final String firstName;
   
private final String lastName;
   
public User(String firstName, String lastName) {
       
this.firstName = firstName;
       
this.lastName = lastName;
   
}
   
public String getFirstName() {
       
return this.firstName;
   
}
   
public String getLastName() {
       
return this.lastName;
   
}
}

User 클래스가 구현된 코드 입니다. @{user.firstName} 은 사실상 getter 함수인 getFirstName() 에 접근합니다.



@Override
protected void onCreate(Bundle savedInstanceState) {
   
super.onCreate(savedInstanceState);
   
MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
   
User user = new User("Test", "User");
   binding
.setUser(user);
}

위에 선언된 레이아웃 파일 이름이 main_activity.xml 이라면 바인딩 클래스의 이름은 이 레이아웃 파일이름을 기준으로 자동생성이 됩니다. MainActivityBinding 이라는 이름을 참조할 수 있게 됩니다.

예를 들면, data_layout.xml 이라고 이름 짓게 되면 바인딩 클래스는 DataLayoutBinding 이라는 이름으로 생성이 됩니다.


val binding = DataBindingUtil
.setContentView<DataBindLayoutBinding>(this, R.layoutdata_bind_layout)
val user = User("Test", "User")
binding.user = user

위와 같은 형식의 코틀린 코드





Run 시킨 화면



출처 : https://developer.android.com/topic/libraries/data-binding/

'안드로이드 > JetPack' 카테고리의 다른 글

Data Binidng -02 Event  (0) 2018.05.24
Posted by 자바리즘
,

수동 (터미널)


디버그키

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android


릴리즈키

keytool -list -v -keystore 키스토어파일이름.keystore -alias 별칭 -storepass 스토어비밀번호 -keypass 키비밀번호


Android Studio Gradle 이용

signingReport 를 이용해서 키스토어의 정보를 볼 수 있다.

미리 키스토어에 대한 정보가 있다면 Release Key 에 대한 정보도 볼 수 있다.





'안드로이드 > TIP' 카테고리의 다른 글

Screen Orientation (화면 방향)  (0) 2018.07.26
Mixing Version  (0) 2018.06.18
Gradle Permission denied  (0) 2018.04.12
Aapt2Exception -part 2  (0) 2018.03.20
키보드 올라왔을 때 화면 스크롤  (0) 2018.02.28
Posted by 자바리즘
,

안드로이드 스튜디오에서 터미널에서 앱 빌드를 할 때 퍼미션 문제로 빌드하지 못할 때가 있다.


permission denied



터미널에서


chmod +x gradlew


을 해주면 된다.



참고로 맥에서 빌드 할 때는 ./gradlew build 를 하면 된다.

'안드로이드 > TIP' 카테고리의 다른 글

Mixing Version  (0) 2018.06.18
keystore 정보 가져오기  (0) 2018.05.04
Aapt2Exception -part 2  (0) 2018.03.20
키보드 올라왔을 때 화면 스크롤  (0) 2018.02.28
안드로이드 7.0 동작 변경 사항  (0) 2017.11.28
Posted by 자바리즘
,

빌드 환경을 구성하다 보면

Aapt2Exception 에러를 심심치 않게 볼 수가 있다.



오늘의 에러



라이브러리를 넣고 나니, 깔끔하게 에러가 떨어졌다 ^^


compileSdkVersion 이 다르면 나오는 에러인가 해서, 버전도 올려봤는데, 역시나 계속 에러 뿜뿜 ~~


점점 산으로 가는 프로젝트.


결국 위의 로그 내용에서 키워드만 추출해서 검색해보니, 위와 같은 경우가 있었다.


폰트를 제어 하기 위해 오픈소스 라이브러리를 사용했던 것이 문제 였다.



안드로이드 오레오 버전부터는 폰트 제어하는 기능을 내장했다고 한다. ( 아주 고~~맙습니다. 덕분에


매번 알 수 없는 에러들로 정신 못차리네요 -_-;; )


하위 호환성을 위해 이 라이브러리를 사용하지 않을 수는 없다고 판단이 되어 수정된 버전을 사용하기


로 했다.



위와 같이 maven 걸어지고, dependecies 에 라이브러리 주소를 기입하면 끝!





출처 : https://jitpack.io/#katoro/typekit/1.0.1







'안드로이드 > TIP' 카테고리의 다른 글

keystore 정보 가져오기  (0) 2018.05.04
Gradle Permission denied  (0) 2018.04.12
키보드 올라왔을 때 화면 스크롤  (0) 2018.02.28
안드로이드 7.0 동작 변경 사항  (0) 2017.11.28
Multidex, ClassNotFoundException  (0) 2017.11.27
Posted by 자바리즘
,

이전 포스팅 Youtube style UI 적용기 -01



어제는 유튜브 스타일 라이브러리 찾다가 포기하고 밥먹으러 갔다.


다시 마음을 추스린 후, 어떻게 할까 고민하다가 해당 클래스들을 내 프로젝트에 가져오기로 결심했다 !




클래스들을 복사해서 내 프로젝트에 복사!



빌드는 성공했고, Run 시키자!!


결과는...




























성공!!~~




진작 이렇게 할걸 ㅠㅠㅠㅠ







(드래그 전)




(화면 하단으로 드래그 후)



개선 된 버전은 3부에서 계속...


'개발이야기 > 성장일기' 카테고리의 다른 글

Youtube style UI 적용기 -01  (0) 2018.03.13
Posted by 자바리즘
,