2026/02/14

오늘의 이야기

이 앱은 android 가 적용된 폰에서만 작동 합니다.


 


2023.03.02 : Google Gemini AI 을 적용해 봅니다. gemini-pro AI 와 교신(?)을 해야 하기 때문에 인터넷 사용이 필수 있을 있습니다.


 


변경된 설정 화면



 
2022.03.24 : 카카오톡 API V2 을 적용하는 과정에서 발생했던 문제점은 정리가 되어 다시 게시 되었습니다.
(playstore 바로가기)
 
이 앱의 기능은 스마트폰으로 오는 알림(Notify)을 중간에서 확인하여 미리 앱에 등록한 문구가 들어 있으면 사전에 등록한 카카오톡 친구에게 해당 문구가 들어 있는 알림을 전달해 주는 앱 입니다.
 
이앱을 사용하기 위해서는 메시지를 전달하고자 하는 사람과 메세지를 수신 받아야 하는 사람이 둘 다 이 앱을 설치하고 사용 동의를 한 경우에만, 등록이 가능하기 때문에, 나 혼자만 설치하고 나서 메시지 전달할 방법이 없다고 하시면 안됩니다. 
 
1. 설치하기


앱 알림 설정 화면



 
2. 설치를 시작하면 제일 먼저 스마트폰의 설정에서 알림 접근 허용 권한을 허용해 주어야 합니다.




(앱의 이름은 기능 개선을 위해 변경될 수 있습니다.)
 
3. 알림 접근 권한이 허용 되면,  앱을 다시 실행 하면 필요한 권한의 허용을 요청 합니다.
 





 
4. 이번 버전에서는 알림이 와도 내 카렌더에는 저장을 하지는 않습니다. 다만, 사용이 필요한 경우가 있을 것 같아 미리 권한을 요청 합니다. 사진 폴더의 이미지도 아직은 사용을 하지 않습니다.
 
5. 권한을 부여 받으면 그 다음은 앱의 실행을 위해서 카카오계정으로 로그인을 실행 합니다.
로그인이 완료 되면 카카오톡으로 메시지를 전달하기 위한 사전 동의 여부를 확인 합니다.
사전에 동의를 하지 않는 경우 이 앱을 사용할 수 없습니다. 


카카오톡 로그인 화면



 
6.  선택사항을 들어가서 카카오톡으로 메시지 전달 하는 기능을 사용 으로 설정 합니다.




 
7. 점검문자열 메뉴를 들어가서 + 버튼을 클릭하여 점검문자열을 등록 합니다. 이 때 카카오톡 사용 여부를 체크 하여 카카오톡 친구 목록이 나오면 점검문자열에서 점검된 알림을 전달할 친구를 선택 합니다. (점검문자열을 등록할 때, 전달할 카카오톡 친구을 선택하지 않으면 해당 문자열의 내용은 본인의 카톡 메모로 전달 됩니다.  이 경우도 선택사항에서 카카오톡 전송을 선택한 경우만 적용 됩니다.) 친구를 추가하면 처음 1회 앱에 대한 사용 승인을 해야 이앱에서 친구 목록으로 조회가 됩니다. 알림을 공유할 친구들 모두가 이앱을 설치하고 사용승인이 될 수 있게 해 주세요.
점검문자열에서 관리대상을 선택한 경우는 수신된 문자를 친구에게 전달하는 기능을 수행하며
출금대상을 선택한 경우는 아래 10번 이후에 추가된 기능으로 월간 출금 기능 표시에 사용 됩니다.




 
8. 이제는 알림 오는 걸 기다리는 일만 남았습니다.





그럼...
(2020.03.08 추가된 기능 설명 입니다.)
10.  새로운 버젼이 나오면 수신 메시지에서 매월 나가야 하는 이력들만 뽑아서 조회 되도록 추가 했습니다.  (그림은 샘플 입니다. ) 이 기능을 사용하기 위해서는 7번에 설명된 점검문자관리에서 구분항목을 출금대상으로 선택한 경우에만 적용 됩니다.
 
기존에 있던 메인 화면은 새로 추가된 "수신메시지보기" 메뉴로 이동 했습니다.
 
 
11.  매월 반복적인 항목을 따로 관리 할 수 있는 "매월 출금 리스트" 메뉴도 추가 되었습니다.
 
리스트가 나오고 아래 "+" 버튼을 클릭 하면 매월 출금 리스트를 추가할 수 있습니다.
디스크 모양 버튼은 저장하는 기능이 동작 합니다.  "X" 버튼은 삭제할 수 있습니다.
다만, 리스트에서 선택해 수정/삭제 화면으로 들어온 경우만 가능 합니다.
이상 추가된 기능 입니다.
 
(2022.03.24 개선된 패치)
12. 메인화면 관리 방법이 변경 되었습니다.   선택사항에서 선택에 따라 수신메시지 목록을 볼 수 도 있고,  달력 형태의 화면을 메인으로 사용할 수 도 있습니다.
 


설정화면 비교



시작화면 선택에 따라서 로그인을 하고난 이후 나오는 화면의 모양과 메뉴 구성이 달라집니다. 
매월 조회 시작할 날자을 선택하는 것은 월간리스트 화면 하단 오른쪽에 합산금액이 표시될 때 금액을 합산할 시작 날자를 지정하기 위해서 사용 됩니다. (예, 3일 이면  3일 부터 다음달 2일까지  나오는 합산을 하게 됩니다.)
 
매일 알림 시:분은 당일에 지출해야할 금액을 매일 알림을 통해 알려 줍니다. 다만, 안드로이드가 지원하는 worker 처리 방식을 따라가다 보니, 지정한 시간에서 오차가 일부 있을 수 있습니다.
 
월간리스트 형태는 매월 발생하는 지출금액을 뽑아서 모아 보기 위한 구성이기 때문에 수신되는 문자열에 
날자와 금액이 포함 되어야 화면에 노출이 되는 형태이과, 
 
수신메시지 보기 방식은 점검문자열에 나열된 문자열이 포함 되어 있기만 하면 리스트에 남는 형태 입니다. 
 
사용하고자 하는 방식에 따라서 설정을 하고 사용할 수 있습니다.


초기화면과 메뉴 구성



 
13. 매월출금 리스트


매월출금리스트



알림이 오지 않지만, 매월 반복적으로 출금이 있는 경우
날자와 금액, 적요을 등록해 두면, 다음달로 넘어가는 시점에
일괄적으로 자동 등록이 되거나, 
 
월간 리스트 일괄 추가 메뉴를 통해서 화면에 보이는 달에 일괄 추가할 수 있도록 하기 위해서 미리 날자별로 지정해 두는 화면 입니다.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14. 백업하기와 복원하기 에 대해서 ... 


백업파일 경로



처음 개발했을 때는 휴대폰에서 외장 스토리지(SD card)을 사용하는 기능을 구현했던 것인데, 구글의 보안 정책이 변경 되면서 sd card 에 직접 저장하는 방식을 구현할 수 없게 되었습니다.  
 
그래서 백업하기를 실행하면 저장 되는 경로는  sdcard에 있는
Android/data/com.nari.notify2kakao/files/notify2kakao 폴더에
notify2kakao.sqlite 라는 파일 이름으로 저장 됩니다.
 
다만, 혹시나 앱을 삭제하는 경우 해당 경로가 같이 삭제가 되기 때문에 백업을 잘 보관 하기 위해서는 해당 경로의 파일을 다른 곳으로(sdcard 에 있는 다른 경로) 이동해 두어야 합니다. 
 
복원하기를 하고자 하는 경우에도 Android/data/com.nari.notify2kakao/files/notify2kakao 폴더에
notify2kakao.sqlite 라는 파일 이름으로 붙여 넣기를 한 다음, 앱에서 복원하기를 하게 되면 정상적으로 복원이 됩니다.
 
 
 
 
 
 
 
 
 
 
 
 
이제 추가 설명은 끝... 사용중에 궁금한 부분이 있는 경우 개발자 이메일(6k2emg@gmail.com)로 요청 하시면 설정해 드립니다.





오늘의 이야기





반응형









아침 출근길에 만난...
몇날 몇일을 이곳에 버려진(?) 망부석 처럼

이것들은 일상에 이로운 것인가?
해로운 것인가?

그렇다고해서 선뜻 탈 수도 없다.
과태료 때문에...





반응형





























오늘의 이야기


#billcorea #운동동아리관리앱
🏸 Schneedle — незаменимое приложение для бадминтонных клубов!
👉 Матчевая игра: записывайте результаты и находите противников 🎉
Идеально подходит для любого места: в одиночку, с друзьями или в клубе! 🤝
Если вам нравится бадминтон, обязательно попробуйте

Зайди в приложение 👉 https://play.google.com/store/apps/details?id=com.billcorea.matchplay




오늘의 이야기





반응형









들꽃2

집으로 오는길에...
인도 한 켠에 핀 들 꽃
예전에는 산을 오르거나 했어야 보아았던...

이제  여름이  가고나면
다 떠날까???





반응형





























오늘의 이야기





반응형







python 이나, java 에서 소스를 이용해서 jsoup 파싱을 해 보기는 했으나,  android 폰에서 구현하는 파싱은 이번이 처음이다. 


예전에 lotto 당첨 결과를 얻어오는 앱을 만들어 본 적이 있는데, 


그때는 정말 날코딩으로 html 페이지를 분석해서 쪼개여 왔는데, 이제 그 보다 쉬운 방법이 있다는 것이다. 




동행복권 페이지에서 회차별 당첨 결과를 조회하는 페이지를 열어서 F12(개발자도구)을 이용해서 페이지에서 얻어와야 하는 html tag 을 찾아보자. 


다음은 android studio 에서 새 프로젝트를 하나 만들고... 제일 먼저 그래드 설정에 다음과 같이 jsoup 사용을 위해 추가해 본다. (2021.06.30 기준 버전은 1.13.1)


dependencies {

implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'org.jsoup:jsoup:1.13.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

그 다음은 manifast 파일을 열어서 인터넷 사용을 위한 권한 설정을 한다.


    <uses-permission android:name="android.permission.INTERNET" />

그리고 다음은 화면을 그릴껀데, 이건 예제 이므로 단순하게  버튼 하나와 textView 하나만 담았다.


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/button"
android:scrollbars="vertical"
android:text="" />

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="22dp"
android:layout_marginBottom="43dp"
android:text="HTML 가져오기" />

</RelativeLayout>

 


그리고 이번에는 MainActivity 구현을 해 본다.


소스에서 살펴볼 부분은 AsyncTask 을 이용해서 비동기 통신을 해야 한다는 것과  어떻게 하면 결과 숫자값만 뽑아올 수 있는 가 하는 부분이다.  위에 html 결과에서 span tag 을 값을 받아와야 하는 데 class 만 표시 되어 있어서 그 class 의 공통적인 종류를 이용해서 필요한 부분이 결과만 추출해 오면 된다.


package com........;

import androidx.appcompat.app.AppCompatActivity;

import android.os.AsyncTask;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.Arrays;

public class MainActivity extends AppCompatActivity {

private String drwNoUrl = "https://dhlottery.co.kr/gameResult.do?method=byWin";
private TextView textviewHtmlDocument;
private String htmlContentInStringFormat = "";
private String nowCnt = "" ;
String TAG = "Lotto" ;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textviewHtmlDocument = (TextView) findViewById(R.id.textView);
textviewHtmlDocument.setMovementMethod(new ScrollingMovementMethod());

Button htmlTitleButton = (Button) findViewById(R.id.button);
htmlTitleButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

nowCnt = "969"; // 2021.06.30 기준 마지막 회차
JsoupAsyncTask jsoupAsyncTask = new JsoupAsyncTask();
jsoupAsyncTask.execute(drwNoUrl, nowCnt);

}
});
}

// 백그라운드 호출을 해야 하는 것은 실시간으로 답을 받아올 수 없기 때문에
private class JsoupAsyncTask extends AsyncTask<String, Void, Void> {

@Override
protected void onPreExecute() {
super.onPreExecute();
}

@Override
protected Void doInBackground(String... params) {
Log.i(TAG, Arrays.toString(params));
try {
// 파라미터로 넘어온 값을 이용해서 url 와 회차를 설정한다.
String callUrl = params[0] + "&drwNo=" + params[1];
Document doc = Jsoup.connect(callUrl).get();
// 위의 html tag에서 결과숫자를 싸고 있는 span tag 을 class명을 이용함.
Elements links = doc.select(".ball_645");
Log.e(TAG, "links=" + links.size());
htmlContentInStringFormat += "회차=" + nowCnt ;
for(Element el : links) {
Log.e(TAG, el.text()) ;
htmlContentInStringFormat += " " + el.text() ;
}

} catch (IOException e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onPostExecute(Void result) {
textviewHtmlDocument.setText(htmlContentInStringFormat);
}
}
}

AsyncTask를 사용하면 UI 스레드를 적절하고 쉽게 사용할 수 있다. 이 클래스를 사용하면 스레드 및 / 또는 핸들러를 조작하지 않고도 백그라운드 작업을 수행하고 UI 스레드에 결과를 게시 할 수 있다.


AsyncTask는 Thread and Handler에 대한 도우미 클래스로 설계되었으며 일반적인 스레딩 프레임 워크를 구성하지 않는다. AsyncTasks는 짧은 작업 (최대 몇 초)에 이상적으로 사용되어야 한다.


화면의 결과가 초라해(?) 보이기는 해도 쉽게 그 결과를 얻어올 수 있었다.




 


살펴보고 궁금한 것이 있으시다면.  댓글을 달아 주세요.





반응형





























오늘의 이야기


#스하리1000명프로젝트,
迷失在韩国?即使您不会说韩语,这个应用程序也可以帮助您轻松出行。
只需说出您的语言即可 - 它会翻译、搜索并以您的语言显示结果。
非常适合旅行者!支持英语、日语、中文、越南语等10多种语言。
现在就试试吧!
https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127




2026/02/13

오늘의 이야기

다음 회차를 위한 로또 번호 분석 및 추천 결과입니다.

---

**최종 추천 조합:**
추천 [01,06,07,16,30,38]
추천 [05,10,12,27,34,40]
추천 [03,06,11,16,21,29]
추천 [02,04,17,20,31,39]
추천 [01,05,21,33,37,41]

---

**마지막 회차 (1210) 당첨 번호: 01, 07, 09, 17, 27, 38**
- 짝수/홀수 비율: 짝수 1개, 홀수 5개
- 총 합계: 99, 평균: 16.50
- 간격 패턴: [6, 2, 8, 10, 11]

**새로운 추천 조합과의 비교:**

추천 조합 1 (01, 06, 07, 16, 30, 38):
- 짝수/홀수 비율: 짝수 4개, 홀수 2개 (마지막 회차: 짝수 1개, 홀수 5개)
- 총 합계: 98, 평균: 16.33 (마지막 회차: 합계 99, 평균 16.50)
- 간격 패턴: [5, 1, 9, 14, 8] (마지막 회차: [6, 2, 8, 10, 11])
- 마지막 회차와의 유사성 점수 (4점 만점): 2점

추천 조합 2 (05, 10, 12, 27, 34, 40):
- 짝수/홀수 비율: 짝수 4개, 홀수 2개 (마지막 회차: 짝수 1개, 홀수 5개)
- 총 합계: 128, 평균: 21.33 (마지막 회차: 합계 99, 평균 16.50)
- 간격 패턴: [5, 2, 15, 7, 6] (마지막 회차: [6, 2, 8, 10, 11])
- 마지막 회차와의 유사성 점수 (4점 만점): 2점

추천 조합 3 (03, 06, 11, 16, 21, 29):
- 짝수/홀수 비율: 짝수 2개, 홀수 4개 (마지막 회차: 짝수 1개, 홀수 5개)
- 총 합계: 86, 평균: 14.33 (마지막 회차: 합계 99, 평균 16.50)
- 간격 패턴: [3, 5, 5, 5, 8] (마지막 회차: [6, 2, 8, 10, 11])
- 마지막 회차와의 유사성 점수 (4점 만점): 1점

추천 조합 4 (02, 04, 17, 20, 31, 39):
- 짝수/홀수 비율: 2개, 홀수 4개 (마지막 회차: 짝수 1개, 홀수 5개)
- 총 합계: 113, 평균: 18.83 (마지막 회차: 합계 99, 평균 16.50)
- 간격 패턴: [2, 13, 3, 11, 8] (마지막 회차: [6, 2, 8, 10, 11])
- 마지막 회차와의 유사성 점수 (4점 만점): 2점

추천 조합 5 (01, 05, 21, 33, 37, 41):
- 짝수/홀수 비율: 짝수 0개, 홀수 6개 (마지막 회차: 짝수 1개, 홀수 5개)
- 총 합계: 138, 평균: 23.00 (마지막 회차: 합계 99, 평균 16.50)
- 간격 패턴: [4, 16, 12, 4, 4] (마지막 회차: [6, 2, 8, 10, 11])
- 마지막 회차와의 유사성 점수 (4점 만점): 0점

---

### 추천 번호 생성 추론

주어진 20회차 당첨 번호 데이터를 기반으로 다음 회차를 위한 5가지 조합을 분석하고 추천했습니다. 각 조합은 다음과 같은 분석 및 전략을 통해 도출되었습니다.

1. **가장 자주 출현한 번호 기반 조합:**
- 지난 20회차 동안 가장 빈번하게 출현한 상위 6개 번호(01,16,27,30,38,39)를 직접 선별하여 조합을 구성했습니다. 이는 과거 데이터에서 가장 높은 빈도를 보인 번호들이 다시 출현할 가능성이 높다는 가정에 기반합니다. (추천 조합 1: 01,06,07,16,30,38)

2. **가장 흔한 짝수/홀수 비율 조합:**
- 지난 데이터에서 가장 많이 나타난 짝수/홀수 비율(4개 짝수, 2개 홀수)을 따르면서, 전체 번호의 평균 합계(109.95)와 가까운 조합을 생성했습니다. 이 조합은 최근 회차의 극단적인 짝수/홀수 비율(1210회차: 짝수 1개, 홀수 5개)에서 벗어나, 데이터 상의 일반적인 경향을 따르도록 설계되었습니다. (추천 조합 2: 05,10,12,27,34,40)

3. **가장 흔한 간격 패턴 기반 조합:**
- 지난 회차들에서 가장 자주 나타난 간격 패턴(3,5,5,5,8) 중 하나를 선택하고, 자주 등장하는 작은 시작 번호(예: 1, 3, 5 등)로부터 해당 패턴을 적용하여 조합을 만들었습니다. 이는 번호 간의 특정 '흐름'이 반복될 수 있다는 가설에 기반합니다. (추천 조합 3: 03,06,11,16,21,29)

4. **최근 미출현 고빈도 번호(Due Numbers) 혼합 조합:**
- 최근 5회차 동안 출현하지 않았지만, 전체 데이터에서 높은 출현 빈도를 보이는 '나올 때가 된' 번호들을 선별하여, 가장 자주 출현한 번호들과 섞어 조합을 구성했습니다. 이 조합은 장기적인 출현 경향과 단기적인 미출현 경향을 모두 고려하여 균형을 맞추려 했습니다. 또한, 총 합계가 전체 평균 합계(109.95)에 가깝도록 조정했습니다. (추천 조합 4: 02,04,17,20,31,39)

5. **높은 패턴 일치율 회차 참조 변형 조합:**
- 과거 데이터 중 분석 항목(간격, 짝수/홀수 비율, 합계, 평균)에서 가장 높은 일치율(Matching Ratio)을 보였던 회차의 당첨 번호를 참조하여 구성했습니다. 해당 회차의 번호들을 기반으로 1~2개 숫자를 변경하여, 과거의 강력한 패턴을 유지하면서도 완전히 동일하지 않은 새로운 조합을 도출했습니다. (추천 조합 5: 01,05,21,33,37,41)

모든 추천 조합은 지난 10회차 당첨 번호와 중복되지 않도록 검증되었습니다.



사용하는 예시 영상 보기
이 앱이 궁금 하다면, 아래 링크에서 설치할 수 있습니다.
로또 645






오늘의 이야기





반응형







윌라오디오북을 듣고 나서 ... 어떻게 이런 생각을 하고 사는 걸까 ?
조금은 일찍 알았다면, 좋았을까 하는 생각이 드는건 왜인가 ? 그래도 시작이 반이라는 말 처럼
이제라도 시작해 보면 언제가 좋은 날이 올 수 있는 것인가 ?
세상에 공짜는 없다는 말이 맞는 것 같다. 그래서 이책 저자의 말이 맞는 말이기도 하지만,
사실 절대적으로 맞는 말은 아니다. 그 또한 노력의 결과로 받아 드려져야 하는 것이라고 생각이 든다.
그래도 배운건 있지. 어떻게 하면  광고판을 얻을 수 있는 가 하는 것...


구글 애드센스 도전을 하고 있는데, 그쪽에서 받은 메일은 다음과 같다.


광고 게재가 준비되지 않은 사이트
사이트에서 정책 위반이 발견되어 아직 광고를 게재할 수 없습니다.

가치 있는 인벤토리: 콘텐츠 없음
Google에서는 콘텐츠가 없는 경우 수익 창출을 허용하지 않습니다.

제작 중인 사이트 또는 앱에 대한 자리표시자 콘텐츠를 포함하는 콘텐츠가 없습니다.
자세한 내용은 다음 자료를 참조하세요.

사이트에서 고유 콘텐츠와 우수한 사용자 환경을 제공하는지 확인하기
고품질 사이트를 만들기 위한 정책 도움말 2부
웹마스터 품질 가이드라인

콘텐츠 정책을 확인하거나 고객센터를 방문하여 자세한 정보를 확인하세요. 위반사항을 수정했으면 사이트 검토를 요청할 수 있습니다.

콘텐츠가 없음... 이게 무슨말인가 ? 내 딴에는 나름 이런 저런 것들도 열댓개의 글을 게시했는데, 말이지... 물론 내용이 써 많은 것은 아니지만... 그리고 더 자세한 가이드를 해 주지 않는다. (설령 내가 찾지 못한 것일 수 도 있지만)


이책의 내용을 듣다 보면  최소 1500자 이상의 글을 적은 페이지가 30개 이상은 되어야 할 것 같은 생각이 들었다. 그래서 그동안 적어 두었던 페이지를 살펴 보니 나름 이해가 안되는 것인 아니였다. 그런다고 해서 내가 뭘 더 채울 수 있는 것인가 하는 부분에 대해서는 고민을 해 보지 않을 수 없었다.  그래서 아직도 난 애드센서의 허가(?)을 얻지 못하고 있는 중이고, 어느날은 얻을 수 있을 지 모르겠지만 서도...


또 하나 잊혀지지 않아야 하는 주제는 파이프라인 을 만들어야 한다는 말...  이런 저런 것들을 차곡 차곡 쌓아두다 보면 나중에는 도움이 되는 길이 생길까 하는 것? 아직은 그것에 대해서 알 수는 없으나... 어느 날에는 아는 날이 올까 하는 궁금함이 생긴다.   이글은  이책의 저자가 말한 편법(?)을 누리는 중이다. 혹시 이해가 되지 않는 다면... 이 책을 꼭 읽어 보시길... ㅋㅋㅋ


이책의 목차는 아래와 같다.


추천의 글
리남의 강의를 수강한 분들의 실제 후기

프롤로그
지극히 평범했던 나도 했기 때문에
당신도 할 수 있습니다

제1부 원하는 것을 이루는 부의 마인드셋
01 돈을 벌기 위해 취업을 포기했다
나는 N포세대다
탈선도 필요할 때가 있다
바뀌고자 한다면 행동이 우선이다
나 자신을 알기로 했다

02 나는 자면서도 돈을 벌기로 결심했다
의심을 확신으로 전환하라
온라인은 모든 게 돈이다
당신도 같은 실수를 하고 있을지 모른다
도움 없이 스스로 시작하는 방법

03 무자본으로 파이프라인을 구축하라
월급은 노후를 보장하지 않는다
죽는 순간까지 물을 길을 수는 없다
*부업을 하는 이유: 파이프라인
무자본, 최소 시간, 공간 제약이 없는 가장 현실적인 부업
*취미로 돈을 버는 가장 현실적인 방법
파이프라인 구축을 위해 필요한 것

04 거창하지 않아야 시작할 수 있다
블루오션을 찾지 않기로 했다
블로그는 이제 끝났다는 모두의 거짓말
*블로그로 돈 버는 시대는 끝났다?
사실 거창한 이유는 필요 없다

05 실수를 반복하지 않기로 다짐했다
실패를 통해서도 배울 게 있다
처음에 돈을 벌지 못했던 이유
*블로그로 돈을 벌기 위해 필요한 것
그때는 몰랐고, 지금은 알게 된 것
여우와 두루미가 내게 준 교훈

제2부 자면서도 돈이 들어오는 파이프라인 구축 공식
01 성공의 핵심은 극비의 노하우가 아니다
근본적으로 필요한 것
온라인 마케팅으로 돈을 버는 방법
*인터넷 광고 종류 정리
반드시 알아야 할 마케팅 플랫폼

02 딱, 아는 만큼 보인다
블로그 서비스의 종류와 특징
*수익형 블로그 어디서 만들까?
*워드프레스 정말 저품질이 없을까?
애드센스를 선택한 이유
아는 것과 모르는 것의 차이
*블로그 월 1000만 원 수익 공개

03 첫 단추를 제대로 끼우는 게 중요하다
시작이 반이다
티스토리 블로그 사용법
*수익형 블로그 최적화 세팅
*티스토리 신규 에디터 사용법
검색되는 블로그를 만들자
*블로그 검색 등록 하는 방법

04 시작은 구글 애드센스로 하라
구글 애드센스 승인 TIP: 정공법과 편법
구들 애드센스 신청하기
*구글 애드센스 승인받기
구글 애드센스 사용법
*애드센스 광고 넣는 방법

05 어떻게 나만의 무기를 갖는가
나만의 효과적인 무기를 갖는 방법
*블로그 주제 선정 TIP
*키워드 추출 방법

https://www.welaaa.com/audio/detail/7680



 


나는 자는 동안에도 돈을 번다


저자 소개 빠듯한 가정에서 태어나 그 누구보다 평범하고 현실적인 삶을 추구하던 취준생이었지만, 대학 졸업 후 돌연 취업 포기를 선언했다. 내 집 마련, 결혼과 육아 등 월급의 한계가 가져다


www.welaaa.com




 


p.s (2021.07.06)


바라면 이루어 지는 건가... 드디어 오늘 메일 받았다.. adsense 로 부터... 드디오 광고를 허 하노라...







반응형





























오늘의 이야기



#스치니1000프로젝트 #재미 #행운기원 #Compose #Firebase

🎯 야 너 토요일마다 로또 확인하냐?
나도 맨날 "혹시나~" 하면서 봤거든 ㅋㅋ

근데 이제는 그냥 안 해
AI한테 맡겼어 🤖✨

그것도 구글 Gemini로다가!

그래서 앱 하나 만들었지
👉 "로또 예상번호 by Gemini" 🎱

AI가 분석해서 번호 딱! 뽑아줌
그냥 보고 참고만 하면 됨

재미로 해도 좋고…
혹시 모르는 거잖아? 😏


https://play.google.com/store/apps/details?id=com.billcorea.gptlotto1127




오늘의 이야기





반응형







android studio 을 이용해서 개발을 하다 보면 간혹 만나는 오류들이 여러가지가 있다면


그중에 황당한 경우라면 아마도 RuntimeException 으로 오류가 나는 경우일 것 같다.


1. 구글링을 해보자... 안드로이드를 책으로 배우는 입장에서는 제일 난감한 것이 오류를 만났을 때 인데, 


나보다 먼저 해 본 사람들이 남겨놓은 글들이 제일이다.


 


Process: com.tistory.webnautes.example, PID: 12963

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.tistory.webnautes.example/com.tistory.webnautes.example.MainActivity}:

java.lang.ClassNotFoundException: Didn't find class

 


2. 나오는 내용에 나의 메시지와 비슷한 글이 들어있는 것은 무조건 다 읽어본다.


3. 크롬 브라우저를 이용해서 검색을 하고 있다면.  번역기능을 이용해서 영문site 의 내용도 읽어보는 것이 도움이 된다.


4. 참고 사이트 


https://github.com/AdevintaSpain/Leku/issues/155



 


Unable to instantiate application on startup · Issue #155 · AdevintaSpain/Leku


Description Really looking forward to use this, thanks for sharing. But I'm having trouble getting an application set-up. Once i run my app i get an exception: E/AndroidRuntime: FATAL EXCEPTION...


github.com




 


내용을 살펴 보면 JDK 버전 떄문에 문제가 되는 것으로 보인다.  


5. 이제 gradle 파일을 수정해 보자


buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

}

}

compileOptions {

sourceCompatibility JavaVersion.VERSION_1_8

targetCompatibility JavaVersion.VERSION_1_8

}



}

위 예시는 java8 을 사용하는 경우의 gradle 파일에 대한 예시이니 나의 JDK 버전에 맞게 찾아서 설정을 해야 한다.


 


이래도 에러가 해소 되지 않는 다면...  다시 구글링을 해 보는 것으로 ...





반응형





























오늘의 이야기





반응형







 






들판에 핀
이름은 뭐지???


 


날 좋은 휴일 오후... 기약없이 흐르는 시간이 아쉽다.


집을 나섰다. 


남들은 햇빛이 뜨거워 움직이지 않는 다는 오후 1시.


작은 물병하나 들고 나서는 길이 시작 부터 덥다


이길을 걷다 보면 어디서 다시 돌아와야 하는 지 알 수는 없지만, 


그런데로 나름의 여유를 느낄 수 있기는 했다.


 


이길로 다시 돌아오지 않는다 해도 전혀 이상하지 않을 것 같은


시간들이 흘러 지나간다.


 


여태 보내온 시간들이 날 위해 무엇을 하였는 지 ?


 





반응형





























오늘의 이야기

아무래도 휴대폰에 앱을 개발하는 일이다 보니, 문자 전송 같은 기본 기능을 이용하는 앱을 개발하는 일이 많기는 하다.  요새는 카카오톡등을 이용하거나, FCM 등을 이용해서 알림을 보내는 기능등을 구현해 보지만, 예전 방식 처럼 SMS 을 전송해 보는...