Using

코틀린에서 기본적으로 Use을 제공한다.

myStream.use { // 자동으로 열고 닫는다.
val line = readLine()
}

하지만 Rx에도 자원관리를 할 수 있는 방법이 있다. 바로 Using 이다.

공식문서는 

http://reactivex.io/documentation/operators/using.html


그럼 우선 RxKotlin 에서 어떻게 보이는 지 살펴보자.

fun <T, D> using(
resourceSupplier: Callable<out D>, //첫번째 인자 (열고)
sourceSupplier: Function<in D, //두번째 인자 (값 만들고)
out ObservableSource<out T>>, //세번째 인자 (닫기)
disposer: Consumer<in D>): Observable<T> {
return using(resourceSupplier, sourceSupplier, disposer, true)
}

분해해보면 단순하다. 열어서 처리하고 닫으면 된다.

그럼 한번 사용을 해보자.

우선 닫을수 있는 Resource 클래스를 정의하자

class Resource : Closeable {
init {
println("Resource Created")
}

fun open() : Resource{
println("Resource Opened")
return this
}
val data : String = "Hello World"

override fun close() {
println("Resource closed")
}
}

이 걸 테스트 해보자.

@Test
fun testResource() {
Observable.using(
{
Resource().open() //열고
} ,
{ resource : Resource ->
Observable.just(resource) //실행
},
{ resource: Resource ->
resource.close() //닫고
}
).subscribe{
println("Resource Result -> ${it.data}")
}
}
===========
Resource Created
Resource Opened
Resource Result -> Hello World
Resource closed

잘 실행되는 걸 볼 수 있다. 의외로 간단한 사용에 놀랍다.

리소스 관리가 필요한 DB 또는 스트림에서 유용해보인다.

task deleteBuild(type: Delete) {
delete 'build/generated/'
delete project(':mobile-ui').file('build/')
delete project(':domain').file('build/')
delete project(':cache').file('build/')
delete project(':presentation').file('build/')
delete project(':data').file('build/')
delete project(':remote').file('build/')
}


mobile-ui -> app 모듈로 변경..


https://blog.coderifleman.com/2017/12/18/the-clean-architecture/?utm_medium=social&utm_source=gaerae.com&utm_campaign=%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%8A%A4%EB%9F%BD%EB%8B%A4
MIME-TypeDescriptionFile Extension
application/acadAutoCAD drawing filesdwg
application/clariscadClarisCAD filesccad
application/dxfDXF (AutoCAD)dxf
application/msaccessMicrosoft Access filemdb
application/mswordMicrosoft Word filedoc
application/octet-streamUninterpreted binarybin
application/pdfPDF (Adobe Acrobat)pdf
application/postscriptPostscript, encapsulated Postscript,ai, ps, eps
Adobe Illustrator
application/rtfRich Text Format filertf rtf
application/vnd.ms-excelMicrosoft Excel filexls
application/vnd.ms-powerpointMicrosoft PowerPoint fileppt
application/x-cdfChannel Definition Format filecdf
application/x-cshC-shell scriptcsh csh
application/x-dviTeXdvi dvi dvi
application/x-javascriptJavascript source filejs
application/x-latexLaTeX source filelatex
application/x-mifFrameMaker MIF formatmif
application/x-msexcelMicrosoft Excel filexls
application/x-mspowerpointMicrosoft PowerPoint fileppt
application/x-tclTCL scripttcl
application/x-texTeX source filetex
application/x-texinfoTexinfo (emacs)texinfo, texi
application/x-trofftroff filet, tr, roff t, tr, roff
application/x-troff-mantroff with MAN macrosman
application/x-troff-metroff with ME macrosme
application/x-troff-mstroff with MS macrosms
application/x-wais-sourceWAIS source filesrc
application/zipZIP archivezip
audio/basicBasic audio (usually m-law)au, snd
audio/x-aiffAIFF audioaif, aiff, aifc
audio/x-wavWindows WAVE audiowav
image/gifGIF imagegif
image/iefImage Exchange Format fileief
image/jpegJPEG imagejpeg, jpg jpe
image/tiffTIFF imagetiff, tif
image/x-cmu-rasterCMU Raster imageras
image/x-portable-anymapPBM Anymap image formatpnm
image/x-portable-bitmapPBM Bitmap image formatpbm
image/x-portable-graymapPBM Graymap image formatpgm
image/x-portable-pixmapPBM Pixmap image formatppm
image/x-rgbRGB image formatrgb
image/x-xbitmapX Bitmap imagexbm
image/x-xpixmapX Pixmap imagexpm
image/x-xwindowdumpX Windows Dump (xwd)xwd
multipart/x-gzipGNU ZIP archivegzip
multipart/x-zipPKZIP archivezip
text/cssCascading style sheetcss
text/htmlHTML filehtml, htm
text/plainPlain texttxt
text/richtextMIME Rich Textrtx
text/tab-separated- valuesText with tab-separated valuestsv
text/xmlXML documentxml
text/x-setextStruct-Enhanced textetx
text/xslXSL style sheetxsl
video/mpegMPEG videompeg, mpg, mpe
video/quicktimeQuickTime videoqt, mov
video/x-msvideoMicrosoft Windows videoavi
video/x-sgi-movieSGI movie player formatmovie


MIME 확장명

파일 확장명

application/x-silverlight-app.xap
application/manifest.manifest
application/x-ms-application.application
application/x-ms-xbap.xbap
application/octet-stream.deploy
application/vnd.ms-xpsdocument.xps
application/xaml+xml.xaml
application/vnd.ms-cab-compressed.cab
application/vnd.openxmlformats-officedocument.wordprocessingml.document.docx
application/vnd.openxmlformats-officedocument.wordprocessingml.document.docm
application/vnd.openxmlformats-officedocument.presentationml.presentation.pptx
application/vnd.openxmlformats-officedocument.presentationml.presentation.pptm
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.xlsx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.xlsm
application/msaccess.accdb
application/x-mspublisher.pub
image/svg+xml.svg
application/xhtml+xml.xht
application/xhtml+xml.xhtml



출처: http://devbible.tistory.com/160 [devbible]

task copyTestClasses(type: Copy) {
from "build/tmp/kotlin-classes/debugUnitTest"
into "build/intermediates/classes/debug"
}

task copySdkClasses(type: Copy) {
from "build/tmp/kotlin-classes/debug"
into "build/intermediates/classes/debug"
}


추가 후에 Run 설정에서 defaults 에서 junit 과 Instrumented test 에 2개를 추가해준다. 



출처 : http://thinkerodeng.tistory.com/227


1. Android Studio는 Intellij 기반이다. 


2. 클래스와 자동 주석을 달기 위해서 /**  을 사용하면 자동으로 뭔가 정보가 입력되었으면 좋겠는데, 그게 안된다. 

  (클래스 주석 그리고 메소드 주석 수정/추가 기능이 안된다)


3. 다른 방법을 찾아보니 Live Templates 라는 기능이 있었다. 

   나름 찾은 방법이니 정답은 아니다.


4. File -> Settings  이동





5. Editor -> Live Templates -> AndroidComments 선택 후 -> + 버튼 클릭 -> 1.Live Template 클릭





6. <abbreviation> 으로 포커스가 잡힌다.





7. 정보를 입력한다. 필자의 경우는


Abbreviation : classComment

Description : 클래스 주석

Template Text :

/**
* $Text$
* @author 임성진
* @version 1.0.0
* @since $date$ $time$
**/





8. 하단에 Change 클릭 -> Java 체크




9. (1) 오른쪽 중단 쯤에 Edit variables 에 들어간다.

   (2) Expression에 date(), time() 입력 후 엔터(엔터를 처야지 적용된다)

   (3) Skip it defined 체크 (이걸 체크해야지 date, time 함수가 적용된다)






10, 이제 코드 입력창에서 Ctrl + j 를 누른다. 그러면 아래화면처럼 나오는데, classComment 를 찾아서 엔터




11. 빨간 네모안에 텍스트 입력하라고 포커스가 잡힐 것이다. 

     내용 입력 후 엔터를 치면 완성








출처: http://thinkerodeng.tistory.com/227 [Thinker]

출처: http://thinkerodeng.tistory.com/227 [Thinker]

fun appendList<T>(listOfLists: List<List<T>>, toAppend: List<T>): List<List<T>> { }

Of course both of the following work:

fun appendList<T>(listOfLists: List<List<T>>, toAppend: List<T>): List<List<T>> {   // Use spread operator   return listOf(*listOfLists.toTypedArray(), toAppend); }

fun appendList<T>(listOfLists: List<List<T>>, toAppend: List<T>): List<List<T>> {
  // Turn to mutable list
  val ret = listOfLists.toArrayList()
  ret.add(toAppend)
  return ret
}


But this is confusing to users who might expect + to work. Due to type erasure, + will always have quirks like this. I had to add the following extension:

operator fun <T, C : Collection<T>> List<C>.plus(toAppend: C): List<C> {
    val ret = java.util.ArrayList<C>(this.size + 1)
    ret.addAll(this)
    ret.add(toAppend)
    return ret
}


요 며칠 Firestore 관련해서 삽질을 많이 했다. 느낀 점을 정리해본다. 


1. 읽고 , 쓰기 속도는 좀 걸린다. 

- 최소 1~2초정도 걸린다. 이점을 고려해서 설계를 해야 할것 이다. 


2. 모델링시 방법이 많은데 대략 3가지를 소개하고 있다. 

https://firebase.google.com/docs/firestore/manage-data/structure-data?hl=ko

문서의 중첩 데이터

문서 내에 배열(맵) 등의 복합 개체를 중첩할 수 있습니다.

  • 장점: 문서 안에 단순한 고정 데이터 목록을 보관하려는 경우 데이터 구조를 손쉽게 설정하고 간소화할 수 있습니다.
  • 한계: 중첩 목록에 대해 쿼리를 실행할 수 없습니다. 또한 시간에 따라 데이터가 증가하는 경우 다른 옵션보다 확장성이 부족합니다. 목록이 커지면 문서도 커지므로 문서 검색 속도가 느려질 수 있습니다.
  • 가능한 사용 사례: 예를 들어 채팅 앱에서 사용자가 가장 최근에 입장한 대화방 3개를 프로필에 중첩 목록으로 저장할 수 있습니다.
  • class alovelace
    •     name :
            first : "Ada"
            last : "Lovelace"
          born : 1815
          rooms :
            0 : "Software Chat"
            1 : "Famous Figures"
            2 : "Famous SWEs"

하위 컬렉션

데이터가 시간에 따라 증가할 가능성이 있다면 문서 내에 컬렉션을 만들 수 있습니다.

  • 장점: 목록이 커져도 상위 문서의 크기는 그대로입니다. 또한 하위 컬렉션에 대해 모든 쿼리 기능을 사용할 수 있습니다.
  • 한계: 하위 컬렉션을 삭제하거나 여러 하위 컬렉션을 대상으로 복잡한 쿼리를 수행하기가 어렵습니다.
  • 가능한 사용 사례: 동일한 채팅 앱에서 채팅방 문서 안에 사용자 또는 메시지의 컬렉션을 만들 수 있습니다.
  • collections_bookmark science
    • class software
        name : "software chat"
      • collections_bookmark users
        • class alovelace
              first : "Ada"
              last : "Lovelace"
        • class sride
              first : "Sally"
              last : "Ride"`


    • class astrophysics
      • ...

루트 수준 컬렉션

데이터베이스 루트 수준에 컬렉션을 만들어 상이한 데이터 세트를 정리합니다.

  • 장점: 루트 수준 컬렉션은 최대한의 유연성과 확장성을 발휘하며 각 컬렉션 내에서 강력한 쿼리 기능을 사용할 수 있습니다.
  • 한계: 데이터베이스가 커지면 본질적인 계층구조를 갖는 데이터를 가져오기가 점점 복잡해질 수 있습니다.
  • 가능한 사용 사례: 동일한 채팅 앱에서 사용자 컬렉션 하나와 채팅방 및 메시지 컬렉션 하나를 만들 수 있습니다.
  • collections_bookmark users
    • class alovelace
          first : "Ada"
          last : "Lovelace"
          born : 1815
    • class sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • collections_bookmark rooms
    • class software
      • collections_bookmark messages
        • class message1
              from : "alovelace"
              content : "..."
        • class message2
              from : "sride"
              content : "..."


3. 그리고 컬렉션이 아니라 내부 맵(배열)에서 검색이 가능하다. 

https://firebase.google.com/docs/firestore/solutions/arrays?hl=ko


내부적으로 맵을 넣어서 계층 검색을 할 수가 있다. 

즉 members -> document id(컬렉션) -> member(객체들) 

이런 구조이면 member 안에 map 형태를 넣어서 할수 있다.

예를 들어 map( key : photo , value : "path") 맵을 넣어서 

whereEqualTo(member.photo , "path") 로 쿼리 가능 하다는 것이다. 


4. 그리고 레퍼런스도 넣을 수 있다. 

DocumentReferecne 를 객체에 삽입해서 넣을 수 있다. 

하지만 가져올땐 계층적으로 못 가져오고 DocumentReference 를 가져오긴 한다. 흠..별 필요가 있는지?? ㅋㅋ


단점..

아직 서버쪽 어드민에서 Firestore를 지원 안해준다.. ㅠㅠ 

관리를 어떻게 해야할지 막막하다..

아직 베타라서 그런지 서비스가 지원안되는게 좀 있다는 점?


속도가 중요한 앱은 설계를 잘 해야 할 것 같다.  

1~2초씩 기본적으로 걸린다.. 




You have two choices:

The first and most performant is to use associateBy function that takes two lambdas for generating the key and value, and inlines the creation of the map:

val map = friends.associateBy({it.facebookId}, {it.points})

The second, less performant, is to use the standard map function to create a list of Pair which can be used by toMap to generate the final map:

val map = friends.map { it.facebookId to it.points }.toMap()



캬 멋집니다~

https://github.com/gkskenftpt/test/blob/master/1.md

https://github.com/gkskenftpt/test/blob/master/2.md

https://github.com/gkskenftpt/test/blob/master/3.md

https://github.com/gkskenftpt/test/blob/master/4.md


http://pluu.github.io/blog/android/droidkaigi/2017/12/30/droidkaigi-location/

'링크모음 > Android' 카테고리의 다른 글

Firebase Firestore 정리  (0) 2018.01.04
Dagger 의존성 관련 설명  (0) 2018.01.02
getFont 오류 나오는 경우  (0) 2017.12.28
안드로이드 엄청난 예제 링크  (0) 2017.12.27
MVI 패턴 즐겨찾기 모음  (0) 2017.12.26

https://stackoverflow.com/a/47126127



Fix res/values/styles.xml and Manifest.xml like so:This solution is tested and don't forget to clean and build :

  1. Manifest.xml

change the theme of HomeActivity to :

        <activity
        android:name=".ui.home.HomeActivity"
        android:theme="@style/Base.Theme.AppCompat.Light" />
    <activity android:name=".BaseActivity"></activity>

2. res/values/styles.xml Make all your themes preceeded with Base :styles.xml will be like this :

<resources>

<!-- Base application theme. -->
<!--<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">-->

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">


<!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.NoActionBar" parent="Base.Theme.AppCompat.Light">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="Base.ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="Base.ThemeOverlay.AppCompat.Light" />

Detailed explanation as requested: Theme.AppCompat.Light.DarkActionBar is a subclass of the superclass Base anyway. Ctrl+click (Android Studio) on it and you will be taken to the source:

<style name="Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light.DarkActionBar" />
  1. GithubBrowser-Master.gradle

make support_version = "27.0.0" and not support_version = "26.0.2

4.app.gradle :

compileSdkVersion 27
    buildToolsVersion '27.0.0'

and not

   compileSdkVersion 26
buildToolsVersion '26.0.2'



'링크모음 > Android' 카테고리의 다른 글

안드로이드 지도 100프로 트래킹하기  (0) 2017.12.30
getFont 오류 나오는 경우  (0) 2017.12.28
MVI 패턴 즐겨찾기 모음  (0) 2017.12.26
Rn? 자마린??? 한국에서 위치는??  (0) 2017.12.05
인스턴트앱 팁  (0) 2017.12.04

'링크모음 > Android' 카테고리의 다른 글

getFont 오류 나오는 경우  (0) 2017.12.28
안드로이드 엄청난 예제 링크  (0) 2017.12.27
Rn? 자마린??? 한국에서 위치는??  (0) 2017.12.05
인스턴트앱 팁  (0) 2017.12.04
room 연동 관련 팁  (0) 2017.12.01

페이퍼 프로에 대한 이미지 검색결과

이번에 새로산 페이퍼 프로 ..

전자잉크라서 그런지 가독성도 좋고 최고입니다. 추천합니다~


'링크모음 > Android' 카테고리의 다른 글

안드로이드 엄청난 예제 링크  (0) 2017.12.27
MVI 패턴 즐겨찾기 모음  (0) 2017.12.26
인스턴트앱 팁  (0) 2017.12.04
room 연동 관련 팁  (0) 2017.12.01
2017 devfest 세션 및 후기 모음  (0) 2017.11.20

https://medium.com/@joongwon/kotlin-kotlin-%ED%82%A4%EC%9B%8C%EB%93%9C-%EB%B0%8F-%EC%97%B0%EC%82%B0%EC%9E%90-%ED%95%B4%EB%B6%80-part-3-59ff3ed736be?source=rss-1ee57944eab8------2

https://medium.com/nos-digital/some-useful-insights-on-instant-apps-67cc7d177695

'링크모음 > Android' 카테고리의 다른 글

MVI 패턴 즐겨찾기 모음  (0) 2017.12.26
Rn? 자마린??? 한국에서 위치는??  (0) 2017.12.05
room 연동 관련 팁  (0) 2017.12.01
2017 devfest 세션 및 후기 모음  (0) 2017.11.20
fileexposeexception 발생시  (0) 2017.11.16

코틀린으로 연동시 주의 할 점


1. Data class 설정시 꼭 val -> var 로 하자. 

2. app build gradle 설정시 윗부분에 apply plugin: 'kotlin-kapt' 을 넣어주자

3. Database 에 export = true 또는 

build.gradle 하단에 

============================================

configurations.all {

    resolutionStrategy.eachDependency { DependencyResolveDetails details ->

        def requested = details.requested

        if (requested.group == 'com.android.support') {

            if (!requested.name.startsWith("multidex")) {

                details.useVersion '26.0.2'

            }

        }

    }

}

==============================================

을 넣어서 오류를 없애자. 


4. 컴파일시 오류발생시

================================

// build.gradle defaultConfig 안에 넣어주자. 

javaCompileOptions {

            annotationProcessorOptions {

                arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]

            }

        }

==========================



코틀린 + 룸 연동 (초급)

https://medium.com/@tonyowen/a-room-with-a-view-getting-started-ec010f9f5448


룸연동시 커스텀 시간 타입 설정

https://medium.com/@chrisbanes/room-time-2b4cf9672b98


룸 엔터티 설명

https://medium.com/@tonyowen/room-entity-annotations-379150e1ca82


room DB 외부로 추출시 

https://medium.com/@sreekumar_av/how-to-export-backup-room-db-and-view-all-the-tables-using-sqlite-viewer-9b053d44690f


7 단계별로 알아보는 룸

https://medium.com/google-developers/7-steps-to-room-27a5fe5f99b2


버전업 올릴때 설명(중요함)!!

https://medium.com/google-developers/understanding-migrations-with-room-f01e04b07929





http://www.moreagile.net/2015/05/how-to-start-machine-learning-study.html?m=1

http://soulduse.tistory.com/m/63

'링크모음 > etc' 카테고리의 다른 글

노마드 최신뉴스 모음 (2월 ~ )  (0) 2018.05.08
CI / CD 설명 [펌]  (0) 2018.01.29
영어 저작권 없는 자료 링크  (0) 2017.11.24
카카오톡 개인정보 약관 저장  (0) 2017.11.21
소스 검색 방법 펌  (0) 2017.11.18

http://damoa-nawa.tistory.com/173

english.zip


'링크모음 > etc' 카테고리의 다른 글

CI / CD 설명 [펌]  (0) 2018.01.29
영어공부 팁 모음  (0) 2017.11.25
카카오톡 개인정보 약관 저장  (0) 2017.11.21
소스 검색 방법 펌  (0) 2017.11.18
블로그에 가독성 좋은 소스 코드삽입을 해보자.  (0) 2017.11.17
adb shell am startservice -n com.google.wifisetup/.WifiSetupService -a WifiSetupService.Reset
adb shell am startservice -n com.google.wifisetup/.WifiSetupService -a WifiSetupService.Connect -e ssid "De\ Buurman" -e passphrase "test1234"

"" 사이에 값 입력해야 함.


그리고 한번 껏다가 키면서 랜선도 제거 해준다.

1. 개인정보 처리방침이란?

반갑습니다!

영어공부는 이용자의 ‘동의를 기반으로 개인정보를 수집·이용 및 제공’하고 있으며,
‘이용자의 권리 (개인정보 자기결정권)를 적극적으로 보장’합니다.

회사는 정보통신서비스제공자가 준수하여야 하는 대한민국의 관계 법령 및 개인정보보호 규정, 가이드라인을 준수하고 있습니다.

“개인정보 처리방침”이란 이용자의 소중한 개인정보를 보호함으로써 이용자가 안심하고 서비스를 이용할 수 있도록 회사가 준수해야 할 지침을 의미합니다.

본 개인정보 처리방침은 카카오 서비스(이하 '영어공부' 또는 '서비스'라 함)에 적용됩니다.

2. 개인정보 수집

서비스 제공을 위한 필요 최소한의 개인정보를 수집하고 있습니다.

회원 가입 시 또는 서비스 이용 과정에서 홈페이지 또는 개별 어플리케이션이나 프로그램 등을 통해 다음과 같은 서비스 제공을 위해 필요한 최소한의 개인정보를 수집하고 있습니다.

[영어공부]없습니다.

[계정]필수

없습니다.

선택

생년월일, 성별

[고객센터]필수

전화번호

일부 서비스에서는 특화된 여러 기능들을 제공하기 위해 ‘카카오계정’에서 공통으로 수집하는 정보 외 이용자 동의 후 추가적인 개인정보를 수집할 수 있습니다.

  • 필수정보란? 
    해당 서비스의 본질적 기능을 수행하기 위한 정보
  • 선택정보란? 
    보다 특화된 서비스를 제공하기 위해 추가 수집하는 정보 (선택 정보를 입력하지 않은 경우에도 서비스 이용 제한은 없습니다.)

정보 외 별도로 수집하는
개인정보 항목 자세히 보기
 고객상담을 위해 추가 수집하는
개인정보 항목 자세히 보기
개인정보를 수집하는 방법은 다음과 같습니다.

개인정보를 수집하는 경우에는 반드시 사전에 이용자에게 해당 사실을 알리고 동의를 구하고 있으며, 다음과 같은 방법을 통해 개인정보를 수집합니다.

  • 회원가입 및 서비스 이용 과정에서 이용자가 개인정보 수집에 대해 동의를 하고 직접 정보를 입력하는 경우
  • 제휴 서비스 또는 단체 등으로부터 개인정보를 제공받은 경우
  • 고객센터를 통한 상담 과정에서 웹페이지, 메일, 팩스, 전화 등
  • 온·오프라인에서 진행되는 이벤트/행사 등 참여
서비스 이용 과정에서 이용자로부터 수집하는 개인정보는 아래와 같습니다.

PC웹, 모바일 웹/앱 이용 과정에서 단말기정보(OS, 화면사이즈, 디바이스 아이디), IP주소, 쿠키, 방문일시, 부정이용기록, 서비스 이용 기록 등의 정보가 자동으로 생성되어 수집될 수 있습니다.

서비스 간 제휴, 연계 등으로 제3자로부터 제공받는 개인정보는 아래와 같습니다.

카카오는 (주)로엔과 연계한 음악 감상 서비스 제공을 위해 '멜론아이디, 이용권정보(이용 기한 포함) 및 플레이리스트'를 제공받으며, 이용자에게 알맞은 컨텐츠를 제안하기 위해 '음악 재생 이력(곡정보, 재생시간) 및 플레이리스트'를 제공 받습니다.
또한, 카카오페이 서비스 가입 시 수집된 본인 인증 결과(생년월일, CI)를 회사 서비스 내 본인 확인을 위해 제공 받습니다.

3. 개인정보 이용

회원관리, 서비스 제공·개선, 신규 서비스 개발 등을 위해 이용합니다.

회원 가입 시 또는 서비스 이용 과정에서 홈페이지 또는 개별 어플리케이션이나 프로그램 등을 통해 아래와 같이 서비스 제공을 위해 필요한 최소한의 개인정보를 수집하고 있습니다.

  • 회원 식별/가입의사 확인, 본인/연령 확인, 부정이용 방지
  • 만 14세 미만 아동 개인정보 수집 시 법정 대리인 동의여부 확인, 법정 대리인 권리행사 시 본인 확인
  • 이용자간 메시지 전송, 친구등록 및 친구추천 기능의 제공
  • 친구에게 활동내역을 알리거나 이용자 검색, 등록 등의 기능 제공
  • 인구통계학적 특성에 따른 분석 및 서비스 제공
  • 신규 서비스 개발, 다양한 서비스 제공, 문의사항 또는 불만처리, 공지사항 전달
  • 유료서비스 이용 시 컨텐츠 등의 전송이나 배송•요금 정산
  • 서비스의 원활한 운영에 지장을 주는 행위(계정 도용 및 부정 이용 행위 등 포함)에 대한 방지 및 제재
  • 이벤트/행사 참여 확인, 마케팅 및 광고 등에 활용
  • 음성명령 인식 및 개인화 서비스 제공
  • 서비스 이용 기록, 접속 빈도 및 서비스 이용에 대한 통계, 프라이버시 보호 측면의 서비스 환경 구축, 맞춤형 서비스 제공, 서비스 개선에 활용

4. 개인정보 제공

카카오는 이용자의 별도 동의가 있는 경우나 법령에 규정된 경우를 제외하고는 이용자의 개인정보를 제3자에게 제공하지 않습니다.제3자와의 서비스 연결을 위해 아래와 같이 개인정보를 제공하고 있습니다.

카카오에 제3자의 서비스가 연결되어 제공되는 경우 서비스 이용을 위해 필요한 범위 내에서 이용자의 동의를 얻은 후에 개인정보를 제3자에게 제공하고 있으며, 자세한 개인정보의 제3자 제공 현황은 [여기] 에서 확인하실 수 있습니다. 또한, 서비스 이용 시 제휴관계에 의한 제3자 제공 현황은 [여기]에서 확인하실 수 있습니다.

서비스 제공을 위해 아래와 같은 업무를 위탁하고 있습니다.

서비스 제공에 있어 반드시 필요한 업무 중 일부를 외부 업체로 하여금 수행하도록 개인정보를 위탁하고 있습니다. 그리고 위탁 받은 업체가 관계 법령을 위반하지 않도록 관리·감독하고 있습니다.

개인정보 위탁업체 자세히 보기

개인정보 처리위탁 중 국외법인에서 처리하는 위탁업무는 아래와 같습니다.

개인정보 국외이전 위탁업체 자세히 보기

5. 개인정보 파기

개인정보는 수집 및 이용목적이 달성되면 지체없이 파기하며, 절차 및 방법은 다음과 같습니다.

전자적 파일 형태인 경우 복구 및 재생되지 않도록 안전하게 삭제하고, 그 밖에 기록물, 인쇄물, 서면 등의 경우 분쇄하거나 소각하여 파기합니다.
- 안내메일 발송 및 CS문의 대응을 위해 카카오계정과 탈퇴안내 이메일 주소를 암호화하여 보관
- 서비스 부정이용 기록
또한, 카카오는 ‘개인정보 유효기간제’에 따라 1년간 서비스를 이용하지 않은 회원의 개인정보를 별도로 분리 보관 또는 삭제하고 있으며, 분리 보관된 개인정보는 4년간 보관 후 지체없이 파기합니다. 이 외에 법령에 따라 일정기간 보관해야 하는 개인정보 및 해당 법령은 아래 표와 같습니다.

관계법령에 따른 개인정보 보관 자세히 보기

6. 기타사항

카카오는 여려분의 권리를 보호합니다.

언제든 자신의 개인정보(만 14세 미만인 경우 법정 대리인)를 조회하거나 수정할 수 있으며 수집・이용에 대한 동의 철회 또는 가입 해지를 요청할 수도 있습니다. 보다 구체적으로는 서비스 내 설정 기능을 통한 변경, 가입 해지(동의 철회)를 위해서는 서비스 내 "계정삭제"를 클릭하면 되며, 고객센터를 통해 서면, 전화 또는 이메일로 연락하시면 지체 없이 조치하겠습니다. 개인정보의 오류에 대한 정정을 요청하신 경우 정정을 완료하기 전까지 해당 개인정보를 이용 또는 제공하지 않습니다.

개인정보 이용내역 확인하기
(로그인 필요)

또한, '온라인 맞춤형 광고 개인정보보호 가이드 라인'에 따른 이용자 권리보호를 위한 페이지도 제공하고 있습니다.

맞춤형 광고소개 및 거부방법 안내PC 기반 서비스의 제공을 위하여 쿠키를 이용하는 경우가 있습니다.

쿠키는 보다 빠르고 편리한 웹사이트 사용을 지원하고 맞춤형 서비스를 제공하기 위해 사용됩니다.

쿠키란?

웹사이트를 운영하는데 이용되는 서버가 이용자의 브라우저에 보내는 아주 작은 텍스트 파일로서 이용자 컴퓨터에 저장됩니다.

사용목적?

개인화되고 맞춤화된 서비스를 제공하기 위해서 이용자의 정보를 저장하고 수시로 불러오는 쿠키를 사용합니다. 이용자가 웹사이트에 방문할 경우 웹 사이트 서버는 이용자의 디바이스에 저장되어 있는 쿠키의 내용을 읽어 이용자의 환경설정을 유지하고 맞춤화된 서비스를 제공하게 됩니다. 쿠키는 이용자가 웹 사이트를 방문할 때, 웹 사이트 사용을 설정한대로 접속하고 편리하게 사용할 수 있도록 돕습니다. 또한, 이용자의 웹사이트 방문 기록, 이용 형태를 통해서 최적화된 광고 등 맞춤형 정보를 제공하기 위해 활용됩니다.

쿠키 수집 거부

쿠키에는 이름, 전화번호 등 개인을 식별하는 정보를 저장하지 않으며, 이용자는 쿠키 설치에 대한 선택권을 가지고 있습니다. 따라서, 이용자는 웹 브라우저에서 옵션을 설정함으로써 모든 쿠키를 허용하거나, 쿠키가 저장될 때마다 확인을 거치거나, 모든 쿠키의 저장을 거부할 수도 있습니다. 다만, 쿠키 설치를 거부할 경우 웹 사용이 불편해지며, 로그인이 필요한 일부 서비스 이용에 어려움이 있을 수 있습니다.

설정 방법의 예
  • 1) Internet Explorer의 경우

    웹 브라우저 상단의 도구 메뉴 > 인터넷 옵션 > 개인정보 > 설정

  • 2) Chrome의 경우

    웹 브라우저 우측의 설정 메뉴 > 화면 하단의 고급 설정 표시 > 개인정보의 콘텐츠 설정 버튼 > 쿠키

개인정보보호와 관련해서 궁금하신 사항은?

서비스를 이용하면서 발생하는 모든 개인정보보호 관련 문의, 불만, 조언이나 기타 사항은 개인정보 보호책임자 및 담당부서로 연락해 주시기 바랍니다. 카카오는 여러분의 목소리에 귀 기울이고 신속하고 충분한 답변을 드릴 수 있도록 최선을 다하겠습니다.

개인정보보호 책임자 및 담당부서
  • 책임자: 김태현
  • 전화: 82)051-514-1672
  • 담당부서: 개인정보보호파트
  • 문의: 고객센터

또한 개인정보가 침해되어 이에 대한 신고나 상담이 필요하신 경우에는 아래 기관에 문의하셔서 도움을 받으실 수 있습니다.

개인정보침해 신고센터
  • (국번없이)118
  • http://privacy.kisa.or.kr
대검찰청 사이버 범죄 수사단
  • 02-3480-3571
  • cybercid@spo.go.kr
경찰청 사이버테러대응센터
  • (국번없이)182
  • http://cyberbureau.police.go.kr
개인정보보호와 관련해서 궁금하신 사항은?

법률이나 서비스의 변경사항을 반영하기 위한 목적 등으로 개인정보 처리방침을 수정할 수 있습니다. 개인정보 처리방침이 변경되는 경우 카카오는 변경 사항을 게시하며, 변경된 개인정보 처리방침은 게시한 날로부터 7일 후부터 효력이 발생합니다.
다만, 수집하는 개인정보의 항목, 이용목적의 변경 등과 같이 이용자 권리의 중대한 변경이 발생할 때에는 최소 30일 전에 미리 알려드리겠습니다.

  • 공고일자 : 2017년 10월 26일
  • 시행일자 : 2017년 11월 01일


+ Recent posts