github에 코드를 올리다보니, apikey를 github에 노출시키면 안되겠다는 생각을 했다. 안그래도 전에 그냥 apikey를 올렸더니 github security인가 거기서 메일을 계속 받았던 경험이 있었다. django의 env처럼 apikey를 따로 관리하는 기능이 있을거라고 생각하고, 구글링을 시작했다. 이런 저런 자료를 찾아보다가, android에는 local.properties 파일에 비밀키를 보관한다는 것을 알 수 있었다. 확인해보니 local.properties 파일이 프로젝트 생성이 되면 기본으로 만들어진다. local.properties 파일에 비밀키를 적고, ## This file is automatically generated by Android Studio. # Do not ..
분류 전체보기
네아로 구현 관련 다음 에러가 뜬다. 2024-04-04 23:26:04.121 27710-27710 test com.mksoo.postingautomation E invalid_request client info invalid. 불행인지 다행인지, 몇번 끄적이다 보니 원인이 다음 코드였다. 이 코드를 NaverIdLoginSDK.initialize(context, {BuildConfig.OAUTH_CLIENT_ID}.toString(), {BuildConfig.OAUTH_CLIENT_SECRET}.toString(), {BuildConfig.OAUTH_CLIENT_NAME}.toString() ) 이렇게 바꾸면 됐다. NaverIdLoginSDK.initialize(context, BuildConfig..
자, 이제 마지막 단계!!! 네이버 카페에 내용을 올리는 코드를 작성하면, 일단 파이프라인은 완성된다. 하지만 이 과정도 녹록지는 않았다. 일단 kotlin에서 바로 네이버 카페로 올리는걸 시도해봤는데 안됐다. 원인을 생각해보았다: 액세스 허가를 받은거는 안드로이드인데, 코틀린으로 바로 포스팅을 시도하려니 잘 안되는 것 같았다. 그리고 자료를 찾아보니까 네이버 로그인 먼저 하고나서 로그인 토큰을 받아서 그걸로 네이버 카페에 올리는거까지 해야되는 것 같았다. 참고: 네아로 구현과정 그래서 바로 안드로이드에서 포스트를 올려보는 쪽으로 진행해보도록 하자. coroutine 참고 GitHub - Kotlin/kotlinx.coroutines: Library support for Kotlin coroutines ..
이 부분은 기존에 python으로 작성한 코드를 chatGPT를 활용해서 kotlin으로 바꾸고, 약간의 수작업을 추가해서 완성시킬 수 있었다. ChatGPT 대화내용 링크 ChatGPT A conversational AI system that listens, learns, and challenges chat.openai.com timeout 이슈 timeout 에러가 났었는데, 처리 시간이 기본 세팅된 timeout보다 오래 걸려서 발생한 에러이다. 이미지를 다루다보니 처리 시간이 길어져서 생긴 것이다. 나는 timeout의 길이를 늘려줘서 처리를 했다. 다음 코드를 적용하면 timeout 문제를 해결할 수 있다. ... val okHttpClient = OkHttpClient.Builder() .co..
화면 구성은 단순하게 처리했다. 네이버로 로그인을 먼저 하고, accesstoken을 받았다면, 갤러리에서 이미지 선택 버튼을 눌러서 갤러리를 열고 이미지를 선택하면 알아서 chatGPT api와 네이버 카페 api로 인자를 전달한다. 아래는 코드. 주석에 간단하게 설명 달았으니 참고하면 될 것 같다. MainActivity.kt class MainActivity : ComponentActivity() { // 선택한 이미지의 URI를 저장하는 변수 private var imageUri by mutableStateOf(null) // 갤러리에서 이미지를 선택하기 위해 시작된 activity의 결과를 처리하기 위한 ActivityResultLauncher private lateinit var resultL..
부제: kotlin 알못이 chatGPT와 copilot만으로 프로그램을 하나 만들기 네이버 아이디로 로그인(네아로) v5.8.0 이상 가이드 네이버 카페에 글을 올리기 위해서는 우선 로그인을 진행해서 accessToken을 받아와야 한다. 이 코드도 네이버 api에 따라할 수 있는 가이드가 있다. 네이버 아이디로 로그인을 구현하는 자세한 과정은 다른 블로그에도 나오니 다루지는 않겠다. 네이버 아이디로 로그인을 하려면 우선 네이버 개발자센터에 앱을 등록해야 한다. 등록하고, 코드를 다음과 같이 적었는데, 일단 initialize를 위해서는 client_id, client_secret, client_name이 필요하다. 이 변수들은 따로 github에 올리면 안되는 내용들이기 때문에 properties에 ..
프로젝트 소개 프로젝트 배경 및 동기 지역에서 행사를 하거나 지자체에서 어떤 혜택이나 복지같은거 보면 홍보가 잘 안되어 있는 경우가 종종 보인다. 길을 가다가 관심있는 정보를 봤을 때, 인터넷에 검색해보면 아직 게시가 안나와 있는 경우가 종종 보인다. 그럴 때, 그냥 포스터를 인터넷에 게시하는 것만으로도 나름 홍보의 효과가 있지 않을까? 라는 생각에서 시작함. 하지만 포스터를 하나하나 사진을 찍어서 블로그에 올리는 행위는 나로서는 비효율적인 행위라고 생각을 했다. 그리고 난 개발자이므로 이런 과정을 파이프라인으로 만들고 싶었다. 여기서 더 나아가서 chatGPT vision을 사용해서 포스터 안의 내용을 읽어서 포스팅을 할 때 제목과 내용을 작성하게 하면, 사진만 찍어서 매우 효율적으로 정보를 공유할 수..
immutable object와 mutable object에 대한 사전 지식이 필요한 포스팅입니다. mutable vs immutable object 불변 타입(immutable type) 한 번 생성되면 그 상태를 변경할 수 없는 데이터 타입. immutable type의 대표적인 예로는 int, float, str, tuple 등이 있음. immutable type의 특징 >>> a = "hello" >>> b = ["hello", "world"] >>> p sept-moon.tistory.com shallow copy a는 원본, b는 a를 복사한 복사본이라고 하자. shallow copy를 하면 같은 메모리 주소를 바라본다. 이 때, b 또는 a의 값을 바꿀 경우, 이 둘이 immutable인지,..