본문 바로가기

개발15

playwright 를 이용해 디시인사이드 크롤링 해보기 (python) 발단 디시인사이드의 특정 갤러리의 게시글들을 주기적으로 백업을 해서 보고 싶었다. 요구사항은 - 주기적으로 새로운 게시글을 조회하여 백업 (이전 글들은 굳이 다시 조회할 필요 없음) - 백업한 게시글은 dcinside를 거치지 않고 자체적으로 다시 볼 수 있어야 함 이렇게 두 가지 였다. 구현 방식 고민 나는 playwright 라는 도구를 사랑한다. 회사에서는 playwright node.js 버전을 사용하고 있다. 그런데 어쩐 일인지 과거의 나는 python 으로 뭔가를 만들어보고 싶어했던것 같고 클라우드 한 구석에 playwright python 을 이용한 자동화 시스템이 있었다. 이 시스템은 문제없이 잘 돌아가고 있었기에 기존 시스템의 연장선 느낌으로 개발을 원했다. 그래서 나는 python에 그.. 2023. 7. 24.
Node.js 기반 Slack 봇 만들어보기 (Daily Geek News 알림 봇 만들기) 발단 GeekNews(https://news.hada.io/) 라는 플랫폼을 잘 사용하고 있다. 재밌는 소식이 자주 들려와서 좋다. GeekNews에서는 자체 제작된 봇을 통해서 글이 생성될 때마다 알림해주는 기능을 제공해준다. 내가 속해 있는 K-DEVCON 슬랙에도 해당 봇을 추가 해두고 잘 사용 하고 있었는데 최근에 의견이 나온 것이 너무 알림이 잦다는 것이였다. 그래서 하루에 한 번 알림이 오도록 하면 어떻겠냐 라는 의견이 나왔다. 그래서 Daily GeekNews 봇을 만들어보기로 했다. 구현 방식 고민 어떻게 처리할 수 있을까를 고민해봤다. 첫번째 생각났던 방법은 현재의 봇을 어떻게든 이용하는 것이였다. private 채널을 만들어 거기서 현재 봇이 알림을 보내주도록 하고 slack api를 .. 2023. 7. 23.
[error] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for ... 맥북에서 어느날 부터 Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for ... 이런 에러가 발생되었다. 아래 명령어로 해결하였다. // reset to the default command line tools path xcode-select -r // Link xcode-select with CommandLineTools sudo xcode-select -s /Library/Developer/CommandLineTools https://stackoverflow.com/a/73253436 2023. 7. 7.
[Jetpack Compose] Navigation Drawer와 TopAppBar 연결하기 자료가 많이 없어서 헤맸었기 때문에 이 부분도 정리해본다. 다 만들고 나서 정리를 하는 것이다 보니 중간중간에 갑자기 튀어나오는 부분이 있을 수 있다. 1. 일단 AppTopBar에 menu 버튼을 추가해보자. modifier 관련된 부분들은 [Jetpack Compose] nestedScroll connection 을 이용하여 스크롤 시에 AppTopBar를 사라졌다 보였다 하게 하기 에서 작업된 부분이다. Scaffold( modifier = Modifier.nestedScroll(nestedScrollConnection), topBar = { TopAppBar( title = { Text(stringResource(id = R.string.app_name)) }, modifier = Modifier.. 2023. 6. 3.
[Jetpack Compose] State와 DataStore 연결하기 https://developer.android.com/topic/libraries/architecture/datastore 앱 아키텍처: 데이터 영역 - Datastore - Android 개발자 | Android Developers 데이터 영역 라이브러리에 관한 이 앱 아키텍처 가이드를 통해 Preferences DataStore 및 Proto DataStore, 설정 등을 알아보세요. developer.android.com DataStore 라는것이 생겼다. 옛날에는 SharedPreference 라는 것을 썼었는데 더 모던해진 애로 이해하면 될 것 같다. 정확한 설명은 다음과 같다. Jetpack DataStore is a data storage solution that allows you to s.. 2023. 6. 3.
[Jetpack Compose] DarkMode 대응하기 이 글을 쓰게 된 계기는 다음과 같다. 안드로이드 개인 프로젝트를 하고 있는데 초기 기본설정에서 일반적인 것들은 처리 되었으나 스플래시 화면 (splash screen)과 상태바 (status bar) 만 dark mode가 적용이 되지 않았다. 인터넷에 있는 방법들은 아무리 해도 먹히지 않았다. 정보가 많지않아서 많이 헤맨만큼 다른 사람도 헤맬것이라 생각하여 정리해본다. 사실 결론은 안드로이드 스튜디오에서 jetpack 프로젝트로 생성하면서 자동 생성된 프로젝트 기본설정에서 잘못된 부분이 있어서 무엇을 해도 적용이 제대로 되지 않았던 것이였다. 안드로이드 12 이후로 변경된 splash screen에 대해서는 https://developer.android.com/develop/ui/views/launc.. 2023. 6. 3.