목록전체 글 (385)
만족
Notification을 생성하는 단계 1. Notification Channel 생성 2. Notification Builder로 Notification 생성 3. Notification Service에 Notification Channel과 Notification 등록 일단 전체 코드부터 보고, 하나씩 설명하겠다. class NotificationActivity: AppCompatActivity(){ //... fun makeNotification() { //create notification Channel val nId = "MyChannel" val nName = "TimeCheckChannel" val nChannel = NotificationChannel(nId, nName, Notificat..
일단 초쳐서 미안하지만 ssh에서 직접 비밀번호를 입력하는 옵션은 없다. 그래서 해당 옵션을 가능하게 할 패키지를 설치할 것이다. $ sudo apt-get install sshpass $ sshpass -p 비밀번호 ssh 외부계정명@외부호스트 sshpass 패키지를 설치하고 sshpass 명령어를 사용한다. 이것마저도 치기 귀찮아서 shell script를 작성할 것이다. nano connect.sh connect.sh파일을 하나 만들고 sshpass -p 비밀번호 ssh 외부계정명@외부호스트 파일에 다음 스크립트를 입력한다. 이제 이 sh파일을 실행하는 것 만으로 ssh 접속을 할 수 있다. $ sh connect.sh 그러나 이것은 보안상으로 별로 좋은 방법은 아니기 때문에 라즈베리파이로 실습을 ..
Collection 정렬 시 sort의 리턴값이 유효하지 않을 때 발생하는 에러다. 자세한 건 아래 링크 참고 118k.tistory.com/291 [오류] Comparison method violates its general contract! 예외 Java 에서 배열 정렬중에 다음과 같은 오류가 발생할 때가 있다. Comparison method violates its general contract! Exception in thread "main" java.lang.IllegalArgumentException: Comparison method violate.. 118k.tistory.com
developer.android.com/training/permissions/requesting?hl=ko 앱 권한 요청 | Android 개발자 | Android Developers 모든 Android 앱은 액세스가 제한된 샌드박스에서 실행됩니다. 앱이 자체 샌드박스 밖에 있는 리소스나 정보를 사용해야 하는 경우 권한을 선언하고 이 액세스를 제공하는 권한 요청을 설정할 수 developer.android.com 안드로이드에는 각 동작마다 권한이 존재한다. 예를 들어, 앱에서 카메라를 사용하는 것도 '카메라 사용 권한'이 필요하고, 내장 메모리를 사용하는 것도 '스토리지 접근 권한'이 필요하다. 단순 인터넷 사용 권한 같은 "사용자의 개인정보에 영향을 미치지 않는 권한들은 일반권한"으로 분류되어 mani..
졌지만 잘 싸웠다... 그냥 진행하면서 느낀점이나, 참고할 만한 사항들을 정리해보려 한다. 서류전형 그냥 자기소개서 같은 느낌이다. 맞춤법이랑 글자 수 정도 체크했다. 자소서를 6년전에 대학교 수시쓸때 써보고 안써봐서 좀 많이 못쓴거같지만, 통과했다. 주변사람한테 한 번쯤은 확인받고 제출하면 좋을 것 같다. 코딩테스트 1차 사실 코딩테스트라니까 좀 쫄았다. 왜냐면 대학교 알고리즘 수업 외에는 알고리즘 문제를 풀어본 적이 한 번도 없기 때문이다. 처음 생각으로는 ICPC급 고난이도의 문제 일 줄 알고 쫄았지만 1차라 그런지 쉬웠다. 1문제가 SQL, 1문제가 Web(html/css/js 다 포함이다. js는 제이쿼리같은거 못쓴다), 나머지 6문제가 알고리즘이였는데, 8문제중 6문제 풀어서 냈다. 사족다는게..
세타조인, 동일조인, 자연조인, 세미조인, 외부조인에 대해 알아보자. 조인은 기본적으로 두 개의 릴레이션에 대해 진행하는 연산으로 이항 연산자이며, 양쪽 외부 조인을 제외한 모든 조인은 두 개의 릴레이션에서 공통된 애트리뷰트가 하나 이상 존재해야 한다. 조인은 두 릴레이션에 대해 먼저 곱연산을 진행하고 난 다음의 릴레이션에 대해 열이나 행을 필터링하는 과정을 하나의 연산으로 묶은 것이라 보면 되겠다. 세타조인(Theta Join; ⋈AΘB) T= R⋈(AΘB) S라는 식이 있다고 해보자. 이는 R과 S 릴레이션을 조인하되, R의 속성 A와 S의 속성 B가 세타 관계가 성립하는 새로운 T 릴레이션을 생성한다. 세타에는 =, < 등 비교연산자가 포함될 수 있다. Relation R A AA 1 안녕 1 하세..
리눅스 커널에서는 자체적으로 LinkedList를 제공한다. 여기에서 제공되는 LinkedList는 "원형 더블 링크드 리스트이다" 이...이게뭐노..? 이미지에서 볼 수 있듯이 각 노드는 head와 prev 포인터를 갖는다. //#include struct list_head{ struct list_head *prev, *next; } 엥? 각 노드에 데이터는 어디있나? 특이하게도 prev, next, data가 평면적으로 존재하는것이 아니라, data안에 prev,next 정보를 가진 구조체 변수가 존재한다. struct your_data{ struct list_head list; int data; } 그러니까 위의 Circular Doubly Linked List에서 각 노드마다 data가 같이 존재..
애플펜슬 2세대의 가격은 말그대로 정신나갔다고밖에 표현할 수 없다... 그래서 대체품을 알아보던 중, 그나마 브랜드와 디자인이 괜찮은 Baseus의 제품을 직구해봤다. 가격은 3만원 근처라고 보면 된다. 외관 및 개요 외관은 봐줄만 한 것 같다. (색상은 맥북 스페이스그레이와 매우 유사하다) 그리고 정품은 아예 여분 펜촉을 제공하지 않는데 반해, 베이스어스는 한개 제공해준다. 아이패드 에어 4세대 이상, 프로 3세대 이상에서는 펜 내부에 자석이 있어 측면에 붙일 수도 있다. 정품보다 접착력이 약하지만, 떨어뜨리거나 일부러 흔드는게 아닌 이상 흘러내리지는 않는다. 또한 충전은 C타입으로 유선충전을 지원하고, 무선충전은 지원하지 않으며(붙어있는동안 충전되지 않는다), 전원 ON/OFF가 가능하다. 애플펜슬 ..
분명 새벽 3시 이후 화면을 켠 적이 없는데 배터리가 전부 빨려버렸다. 이런 현상이 가끔 일어나는데 아래 링크에 써있는 설명을 따라 하면 위 현상을 막을 수 있다고 한다. zagoodstory.medium.com/%EB%A7%A5%EB%B6%81-macbook-%EC%A0%88%EC%A0%84%EB%AA%A8%EB%93%9C%EC%9D%BC-%EB%95%8C-%EB%B0%B0%ED%84%B0%EB%A6%AC-%EB%A7%8E%EC%9D%B4-%EC%86%8C%EB%AA%A8%EB%90%98%EB%8A%94-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0-d5c542c5e6c7 맥북(MacBook) 절전모드일 때 배터리 많이 소모되는 문제 해결 MacBook Battery drainin..
현재 운영중인 게임 정보 앱에 관한 통계치이다. 안드로이드 플랫폼이며, 현재 실 사용 기기는 약 1.6만대이다. 릴리즈 당일 3.17.1 버전을 릴리즈한 당일인 3월 2일에는 업데이트율 5% 미만 릴리즈 후 1~4일 3월 3일 업데이트율 39%로 급격히 증가 4일 63%, 5일 74%로 4일차까지는 비교적 급격히 증가한다. 릴리즈 후 5일 3월 6일엔 업데이트율 77%로 이제 증가율이 완만해지기 시작한다 릴리즈 후 6일 3월 7일(6일차) 80% 달성 릴리즈 후 13일 3월 15일(13일차) 86% 달성 다음날에 사용률이 92%까지 치솟기는 했으나, 전날 너무 구버전의 경우 최신 버전이 아니면 사용 불가하게 막았기 때문이다. 정리해보면 릴리즈 후 4일차까지는 급격히 증가하나 (70%~80%) 이후 급격히..
sudo usermod -aG vboxsf $USER 해당 커맨드를 입력한 후 게스트 OS를 재부팅하면 정상적으로 접근 가능하다. (게스트 OS란 버츄얼박스 위에서 돌아가고 있는 OS를 말한다) stackoverflow.com/questions/26740113/virtualbox-shared-folder-permissions
m1맥북에 쓰인 애플의 arm 아키텍쳐와 기존 인텔/AMD CPU가 사용하는 x86이 다르다는 점은 안다고 가정한다. 짧게 설명하자면 소프트웨어가 하드웨어를 제어할 수 있게 CPU에서는 ISA(Instruction Set Architecture)를 제공하는데, 애플의 m1이 제공하는 ISA와 인텔/AMD가 제공하는 ISA가 서로 다르기 때문에 호환성이 떨어진다. (더 간단히 말하면, 기존에는 영어를 써서 대화했는데 m1은 한국어를 쓴다는 느낌이다) 호환성 문제를 애플도 의식했기 때문에 '로제타'라는 에뮬레이터를 제공하는데 x86명령어 세트를 arm명령어로 변환해 주는 번역기라고 생각하면 된다. 번역기가 완벽하지는 않기 때문에 번역이 불가능한 것도 있기 마련인데, 이것을 컴퓨터공학과 신입생이 사용할 프로그..
satisfactoryplace.tistory.com/93?category=829221 [React] 프로덕션 최적화: 코드 스플리팅 create-react-app 으로 리액트 프로젝트를 생성했다면 프로젝트 빌드 시에 webpack을 이용해 많은 파일들을 큰 몇개의 덩어리로 합쳐준다. webpack은 SPA(Single Page Application)을 제작하기에 제격인 빌드 도.. satisfactoryplace.tistory.com 코드 스플리팅을 한 이후 이 에러를 만날 수 있다. https://cpsp.kr/players/ (v 1.0.2) ChunkLoadError: Loading chunk 3 failed. (error: https://cpsp.kr/static/js/3.62522664.chu..
RANK/DENSE_RANK/ROW_NUMBER 함수는 모두 특정 열의 값에 대해 순위를 매기는 함수다. 서식은 다음과 같다 RANK() OVER([PARTITION BY COL_NAME_1] ORDER BY COL_NAME_2 [DESC]) RANK대신 DENSE_RANK/ROW_NUMBER로 대치해서 사용할 수 있다. [...]로 된 부분은 생략 가능하다. 다른 함수들과 달리 꽤나 괴상하게 생긴 함수인데, 그렇게 어려운 부분은 없으니 겁먹지 않아도 된다. 먼저 [PARTITION BY COL_NAME_1] 부분 없이 알아보자. RANK() OVER (ORDER BY COL_NAME_2 DESC)는 COL_NAME_2값을 내림차순으로 순위를 매기는 함수다. 즉 다음과 같은 데이터가 있다고 해보자. de..
item.gmarket.co.kr/detailview/item.asp?goodscode=1820719093 PC스피커 ₩88,000 R27BT 2채널 블루투스 컴퓨터스피커 PC USB 광단자 item.gmarket.co.kr 기존에 쓰던 스피커가 죽어버려서 새로운 스피커를 샀다. 전에 쓰던건 이놈인데, 10년인가 11년인가 불만없이 잘 썼을 정도로 일하던 녀석이였으나 얼마전 우퍼쪽 케이블 단선으로 수명을 다했다. 우선 새로운 스피커를 고를 때 염두한 것은 다음과 같다. 1순위: V자 성향의 시원시원한 음색 2순위: 블루투스 가능 3순위: 적당히 큰 사이즈 4순위: 2채널 (별도 우퍼가 있는 스피커는 공간을 너무 차지한다) 5순위: 리모컨 유무 3순위의 적당한 사이즈의 이유는, 너무 작은 스피커에서는 경험..
결론부터 빨리 말하자면, 중고나라, 당근마켓, 번개장터 등에서 에어팟/버즈 미개봉을 검색하면 판매가보다 약 30~40% 낮은 가격에 신품을 구매할 수 있다. 버즈뿐만 아니라, 에어팟, 에어팟 프로 역시 시중가보다 훨씬 저렴하게 올라와 있다. 왜 쌀까? 우선 버즈 시리즈의 경우, 플래그십 또는 준플래그십 휴대폰을 구매할 때 버즈 라이브/프로 할인쿠폰을 주는데 사실 모든 사람이 새 블루투스 이어폰이 필요한 것은 아니다. 그래서 해당 사은품을 다시 되팔아, 휴대폰 구매 비용을 캐시백받는 느낌으로 판매하는 것이다. 버즈 라이브의 경우 10~11, 프로의 경우 17~20정도의 가격이 형성되어 있다. 에어팟 시리즈는 평소에 사은품으로 끼워주진 않지만, 올해 1~2월에 진행하는 '신학기 프로모션'으로 에어팟을 무료로..
whitepaek.tistory.com/40 macOS 오라클 DB 설치 및 실행 방법 macOS에서 오라클 데이터베이스(oracle database)를 사용하기 위해서는.. 맥 OS에서 오라클 데이터베이스를 사용하기 위해서는 도커(docker)를 이용해야 합니다. MySQL처럼 바로 설치하여 사용할 수 있으 whitepaek.tistory.com 참고로 arm기반인 m1에서는 아직 docker를 사용할 수 없기 때문에 거기서는 안된다. 요약 1. 설치 (도커 설치 과정은 생략) docker pull jaspeen/oracle-xe-11g //이미지 다운로드 docker images //이미지가 다운로드 되었는지 확인 2. 실행 docker run --name oracle11g-test -d -p 808..
한국에서 정부사이트, 금융사이트 등을 이용하다 보면 컴퓨터에 AhnLab Safe Transaction, TouchWiz... 등등 보안 프로그램이 한무더기 쌓이게 된다. 그러나 이런 프로그램들이 한번 컴퓨터에 설치되면, 윈도우 시작과 동시에 작동을 시작하고, 관련 서비스를 사용하지 않을 때에도 지혼자 뭔갈 한다. (시작 프로그램에서 꺼버리면, 해당 사이트에서 프로그램을 인식하지 못해 다시 설치하라고 한다) 문제는 은근히 CPU를 많이 먹는다는 것인데, 따라서 컴퓨터 속도를 느리게하는 주범인 것이다. 하나하나 찾아서 지우기는 귀찮으니, 전용 소프트웨어를 사용하도록 하자. teus.tistory.com/category/IT/%EA%B5%AC%EB%9D%BC%EC%A0%9C%EA%B1%B0%EA%B8%B0 ..
2020-11-21자로 사이퍼즈 서포터 안드로이드 앱에 광고 제거 상품이 추가되었습니다. 2018-08-31에 첫 출시를 하고, 그로부터 2년이 지난 뒤에야 추가한 이유에 대해 천천히 풀어볼까 합니다. 사실 그 전부터 광고 제거 상품에 대한 요청은 많이 있었습니다. 그러나 제 답변은 항상 '예정에 없습니다' 또는 '고려중입니다' 에 불과했었죠. 여태껏 광고 제거 상품을 꺼려했던 가장 큰 이유는 다음 두 가지 입니다. 첫째로, 기존에 '기부'해 주셨던 분들이 느끼실 박탈감입니다. 사이퍼즈 서포터는 광고 제거 상품이 출시되기 전 까지 광고와 자발적 기부만으로 운영된 서비스입니다. 광고 제거 상품을 너무 저렴한 가격에 출시하게 되면, 기존에 기부 상품을 1000원에 구매하신 분들은 말 그대로 생돈을 날린 것 ..
350주고 산 맥북에 1년 6개월만에 화면에 커다란 멍자국이 생겼다. 주로 어두운 테마 환경에서만 작업을 해서 모르고 있었는데, 친구가 알려주고 난 뒤부터는 너무 신경쓰인다. 경우에 따라 검은색이나, 노란색 등으로도 멍이 나타나는데 찾아본 바로는 원인은 다음과 같다. 원인 1. 노트북의 열을 충분히 식히지 않고 노트북을 닫았을 경우 2. 외장모니터를 이용해 노트북을 닫은 상태로 사용할 경우 3. 외부적으로 노트북이 눌릴 경우 나의 경우는 1,2번 때문일 것 같다. (디스플레이에 지속적인 열이 가해지면 접착제가 녹아버리거나;스테인게이트, 디스플레이 자체가 손상된다고 한다) 좀 어이없는게, 1번은 그렇다 쳐도 2번의 경우 맥에서 공식 지원하는 기능인데 이런 치명적인 문제가 있는걸 알면서도 지원하는게 얼탱이가..