http://www.yes24.com/Product/Goods/93764236

 

탄력적 습관 - YES24

“삶은 원래 변덕스럽고 예측 불가능하다.그런데 왜 굳이 습관을 단단하게, 그래서 나약하게 만드는가?“누구나 한 번쯤, 다이어트 중에 식욕을 이기지 못하고 치킨 한 조각을 먹고서는 망했다

www.yes24.com

  • 심리학자 배리 슈워츠는 선택권이 지나치게 많으면 오히려 행복할 수 없다고 지적한다.

탄력적 습관 7단계 실천법

  1. (최대) 세 가지 습관을 정한다.
  2. 습관 하나에 수평적 선택지를 (대략) 세 개 정한다.
  3. 수평적 선택지마다 (최대) 세 단계의 수직적 목표치를 정한다.
  4. 신호를 정해서 충실하게 지킨다.
  5. 습관을 적어 잘 보이는 곳에 붙인다.
  6. 습관을 추적한다.
  7. 점수를 매기고 성과를 평가한다(선택 사항).
  • 계획을 세우지 않는 것은 실패를 계획하는 것이다.
  • 탄력적 습관의 핵심은 유연성이다.

http://www.yes24.com/Product/Goods/96837073

 

타인을 읽는 말 - YES24

테러리스트, 직장 상사, 말 안 듣는 아이까지 누구에게 어디서도 통하는 심리학자의 대화법“저자들은 나의 학문적 영웅이다.” - 말콤 글래드웰“어느 고위 장교는 이렇게 말했다. 저자들에게

www.yes24.com

 

HEAR(정직, 공감, 자율, 복기)를 기억하자.

  • 나는 상대방을 솔직하게 대하는가, 아니면 조종하려 드는가?
  • 나는 상대방에게 공감하고 그 사람의 관점에서 상황을 바라보는가, 아니면 그저 나 자신의 입장에만 집중하는가?
  • 나는 상대방의 자율성과 선택의 권리를 존중하고 강화하는가, 아니면 상대방에세 내가 원하는 대로 하도록 강요하려고 드는가?
  • 나는 상대방의 이야기를 주의 깊게 듣고 복기해서 더 깊이 이해했음을 드러내고 친근감과 유대관계를 만들려고 하는가?

 

http://www.yes24.com/Product/Goods/79652283

 

IT에 몸담은 이들을 위한 지적 생산 기술 - YES24

효율적인 학습법, 정리법, 활용법을 배운다!『코딩을 지탱하는 기술』의 저자가 알려주는 몸값을 올리는 공부법!우리는 일을 할 때 생산적이면서 가치가 높아지는 방안에 대해 끊임없이 고민한

www.yes24.com

- 뭘 해야 할지 모르겠으면 뭐든 해라

최근 앱 업데이트에서 targetSdkVersion 을 기존에 30에서 31로 올렸다.

플레이스토어 게시하고 하루만에 1만건이 넘는 크래시 리포트가 접수되었다. ㅠ.ㅜ

 

아래는 에러 로그.

Fatal Exception: java.lang.IllegalArgumentException
kr.connect.touch.joins: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.

PendingIntent 인텐트 사용시 플래그에 FLAG_IMMUTABLE 이나 FLAG_MUTABLE 을 사용해야 한다.

 적용하기 위해서는 gradle 파일의 디펜던시에 라이브러리를 추가한다.

implementation 'androidx.work:work-runtime-ktx:2.7.1'

그리고 PendingIntent를 사용하는 부분에서 flag를 수정한다.

val contentIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
    PendingIntent.getActivity(
            this,
            statusBarNotifications.hashCode(),
            statusBarNotifications,
            PendingIntent.FLAG_MUTABLE
    )
} else {
    PendingIntent.getActivity(
        this,
        statusBarNotifications.hashCode(),
        statusBarNotifications,
        PendingIntent.FLAG_UPDATE_CURRENT
    )
}

 

저걸로 끝난줄 알았는데...

앱이 백그라운드에 있는 동안 푸시를 수신하면 계속 같은 에러가 발생한다.

 

도무지 어디서 문제인지 찾기가 너무 어렵다.

에러 로그를 한참 째려보고 'firebase-messaging' 라이브러리와 관련한 부분에서 문제가 발생하는것 같다.

그래서 'firebase-bom'의 버전을 업그레이드 한다.(기존엔 26을 사용했다.)

implementation platform('com.google.firebase:firebase-bom:28.0.0')

이제 백그라운드에 있는 동안 푸시를 수신해도 문제가 없다.

 

 

[참고 자료]

https://keelim.tistory.com/entry/안드로이드-SDK-31-대응-사항-중-PendingIntent-에-관하여

 

[안드로이드] SDK 31 대응 사항 중 PendingIntent 에 관하여

java.lang.IllegalArgumentException: com.~~~, ~~~: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly conside..

keelim.tistory.com

https://hckim999.tistory.com/45

 

Target version 31로 올린 후 IllegalArgumentException 오류 수정

Target Version을 31로 업데이트 해 보았다. 그랬더니 아래와 같은 오류가 발생하였다. Fatal Exception: java.lang.IllegalArgumentException: com.example.app: Targeting S+ (version 31 and above) requires t..

hckim999.tistory.com

 

사용중인 개발용 기기에서 우리 앱을 실행하는데,

어느날부터 로그캣에 제목과 같은 에러 메시지가 출력되면서 FCM token 값을 가져오지 못하는 문제가 발생했다.

검색을 해봤지만 들어맞는 해결책을 찾지는 못했다.

 

그러다 우연히 '구글 플레이스토어'를 실행하게 되었는데, 정상적으로 실행이 되지 않았다.

플레이스토어가 실행은 되지만 '새로고침' 버튼만 노출되면서 콘텐츠를 가져오지 못하고 있었다.

이상하다 싶어 이런저런 방법을 써봤지만 문제는 해결되지 않았고

결국 해결 방법을 찾지 못해 디바이스 초기화를 진행했다.

이후 플레이스토어는 정상 실행 되었으며, 우리 앱에서도 FCM token 값을 정상적으로 받아오게 되었다.

나 같은 경우엔 기기에 설치된 구글 플레이스토어의 문제였다.

웹뷰에 '당겨서 새로고침' 기능을 적용 경우,

웹 콘텐츠에 가로 스와이프 기능이 들어가 있으면 문제가 발생하는 경우가 있다.

따라서 세로로 스와이프 할때만 새로고침이 되도록 해야 한다.

 

먼저, SwipeRefreshLayout을 확장해서 OnlyVerticalSwipeRefreshLayout 클래스를 생성한다.

OnlyVerticalSwipeRefreshLayout.kt

open class OnlyVerticalSwipeRefreshLayout @JvmOverloads constructor(context: Context, attrs: AttributeSet?=null) :
    SwipeRefreshLayout(context, attrs) {

    private val touchSlop: Int = ViewConfiguration.get(context).scaledTouchSlop
    private var prevX = 0f
    private var declined = false

    override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
        when (event.action) {
            MotionEvent.ACTION_DOWN -> {
                prevX = MotionEvent.obtain(event).x
                declined = false // New action
            }
            MotionEvent.ACTION_MOVE -> {
                val eventX = event.x
                val xDiff = Math.abs(eventX - prevX)
                if (declined || xDiff > touchSlop) {
                    declined = true // Memorize
                    return false
                }
            }
        }
        return super.onInterceptTouchEvent(event)
    }
}

 

사용은 SwipeRefreshLayout을 사용할 때와 동일하다.

<com.ahikuya.OnlyVerticalSwipeRefreshLayout
    android:id="@+id/swipe_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <WebView
        android:id="@+id/web_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:animateLayoutChanges="true"
        android:focusable="true"
        android:focusableInTouchMode="true"/>
</com.ahikuya.OnlyVerticalSwipeRefreshLayout>

 

아래 문서를 참고했다.

https://stackoverflow.com/questions/34136178/swiperefreshlayout-blocking-horizontally-scrolled-recyclerview

https://www.msit.go.kr/index.do

 

과학기술정보통신부

코로나19, 과학기술 ICT로 국민과 함께 이겨내겠습니다! 코로나19대응 정책과 과학기술동향 등의 정보를 제공합니다. 자세히 보기

www.msit.go.kr


https://www.nipa.kr/

 

정보통신산업진흥원

 

www.nipa.kr


http://www.tta.or.kr/

 

한국정보통신기술협회(TTA)

 

www.tta.or.kr


https://www.itfind.or.kr/main.do

 

ITFIND - IT 지식포털

최신간행물 1 / 3 이전다음

www.itfind.or.kr


https://spri.kr/

 

SPRi 소프트웨어정책연구소

소프트웨어정책연구소 - 소프트웨어 중심사회의 Think Tank 국가연구기관

spri.kr


https://ettrends.etri.re.kr/

 

ETRI Journal

 

ettrends.etri.re.kr


 

서비스형 데이터 관리

- 기업에 여러가지 다양한 데이터 소스를 위한 중앙 집중식 스토리지를 제공하는 클라우드 서비스

- 데이터 사일로를 해결하고, 기업의 비즈니스 경쟁 우위를 확보 지원

- 복잡성 문제를 상당수 해소하고 데이터를 통해 기업을 선도적인 위치에 앉힐 수 있는 '실행 가능한 솔루션'

 

DMaaS 공급업체 선정 시 고려사항

- DMasS 솔루션은 단일 플랫폼에서 백업 및 아카이빙, 재해 복구, 애널리틱스, 보안 등의 종합서비스를 제공하는 방향으로 계속 발전

고려사항 설명
SaaS 기반 통합 플랫품

- 단순한 사용자 인터페이스를 갖춘 통합 대시보드에서 모든 데이터를 검색할 수 있는 기능을 제공하는 SaaS 기반 플랫폼이어야 한다.

단일 공급 업체

- 하나의 공급업체로부터 백업, 재해 복구, 아카이빙, 파일, 개발/테스트 등의 다양한 데이터 관리 서비스를 구독할 수 있어야 한다.
- 이를 통해 사용자는 즉시 서비스를 연결하고 신속하게 실행할 수 있어야 한다.

단일 GUI 제공 - 플랫폼은 모든 데이터를 관리할 수 있는 단일 GUI를 통해 하이브리드 환경(온프레미스, 클라우드, 엣지)에서 일관되고 원활한 경험을 제공해야 한다.
- 환경의 어느 위치로든 데이터를 이동 및 복구할 수 있어야 한다.
고급 클라우드 서비스 지원 - 플랫폼은 고급 클라우드 서비스를 지원해야 한다.
예) 랜섬웨어와 같은 사이버 공격을 감지하는 머신러닝 기능, 컴플라이언스, 프라이버시 문제를 처리하는 데이터 분류 서비스 등

 

[참고]

https://www.ciokorea.com/news/180594

smartits.tistory.com/216

www.yes24.com/Product/Goods/15317182?OzSrank=1

 

페스트

인간의 지독한 과제, 죽음. 그 앞에 당면한 천태만상의 인간 군상을관찰자 시선으로 담담하게 그려 내려간 반항과 긍정의 기록!알베르 카뮈는 20세기 프랑스 문학을 대표하는 작가이며, 작품들

www.yes24.com

저자 : 알베르 카뮈

옮긴이 : 최윤주

출판사 : 열린책들

 

독서 기간 : 2021.01.09~2021.01.27

읽기 방법 : 리디북스 전자책

 

난 독서 이해력이 떨어지는 것 같다.

책 내용에 대해 검색을 해보면 이런저런 좋은 내용이 많은데..

읽으면서는 그런 걸 전혀 느끼질 못하니...

 

그럼에도 마음에 와 닿았던 문장을 조금 옮긴다..

"선생님은 하느님을 믿지도 않으면서 어째서 그렇게도 헌신적이십니까? 선생의 대답이 제가 대답을 하는 데 아마도 도움이 될 겁니다."

어둠 속에 그대로 머문 채 의사는 이미 답을 했다고 말하며 만일 자신이 전지전능한 단 한분의 신을 믿는다면 사람들의 병을 고치는 일을 그만두고 신에게 그 일을 맡길 거라고 덧붙였다. 그러나 세상의 어느 누구도 심지어 신을 믿는다고 확신하는 파늘루 신부조차도 그런 식으로 신을 믿지는 않는데, 왜냐하면 어느 누구도 자신을 신에게 완전히 내맡기진 않기 때문이며 바로 그 점에 있어서 적어도 리유 자신은 신이 만든 세상과 투쟁하며 진리의 길을 걷도 있다고 생각한다는 것이었다.

 

다음엔 좀 더 나은 독서평을 쓸 수 있길 기대한다.

http://www.yes24.com/Product/Goods/70825545

 

단 한 권을 읽어도 제대로 남는 메모 독서법

1천 권 독서법, 1만 권 독서법, 혹은 권수에 상관없이 질적인 독서를 도와주는 가이드북까지 다양한 독서법 책이 나와 있다. 문제는 다양한 독서법에 앞서 대부분의 사람들이 절감하는 문제는 독

www.yes24.com

 

독서기간 : 2020.12.20~2021.01.08

읽기 방법 : 리디북스 전자책

+ Recent posts