본문 바로가기
반응형

개발 공부 기록하기84

FCM Push Notification with Postman Part1 안드로이드에서 푸시 알람을 처리하기 위한 방식으로 보통 FCM을 사용하게 됩니다. 앱에서 Push 개발을 하는건 크게 문제 없지만 내가 만든 코드가 잘 동작하는지 확인을 해볼 필요가 있는데 이번 포스팅에서는 어떻게 그 작업을 수월하게 할 것인지 정리해보는 시간을 가지기로 했습니다. 순차적으로 풀어가는 방식이 아닌, 바로 포스트 작성일 기준 최신버전 사용법을 알고 싶으신분은 FCM Push Notification(HTTP v1) with OAuth 2.0 Playground / Postman / Terminal - Part2 포스팅을 참조해주세요 FCM 푸시 알림을 테스트 하는 방법 1. Firebase 콘솔에서 푸시를 보내는 방법 이 방식은 가장 간단하지만 알림 메세지와 추가 데이터 그리고 채널 정도만 .. 2021. 1. 18.
Intellij 프로젝트 모듈별로 간단하게 나눠보기 간만에 학습 욕구가 생겨서 프로젝트를 만들었다. 그런데 프로젝트 생성하자마자 개발자병이 돋아난게 아닌가 특정 주제로 학습하고 싶어서 프로젝트를 만들었는데, 다른 주제가 하고싶으면 어떻하지? 그럼 또 새로운 프로젝트를 파야되나?고민을 하다가 스터디라는 프로젝트를 만들고 하나의 프로젝트 안에서 여러개의 주제가 생겨날때마다 추가하도록 하자라는 생각이 들었다. 루트 study라는 프로젝트 안에 여러 주제의 스터디 모듈이 생기는 구조인데, 오랜만에 위에 스크린샷처럼 구성하려니 삽질을 많이 하게되어 기록하게 되었다. 1. Root 프로젝트에서 모듈을 생성한다. root 프로젝트에서 오른쪽 클릭 > new > module 클릭 2. 생성하고자 하는 장르(?)의 모듈을 만들자 ex) Java, Gradle, etc.... 2020. 12. 13.
Kotlin 리스트 분할 및 병합하기(with chunked, windowed) 아래와 같은 리스트 2개가 있고, 두 개 리스트를 합쳐서 아래와 같은 결과를 만들고 싶다면 어떻게 해야 될까? A List 1 2 3 4 5 6 7 8 9 B List 100 200 300 400 500 600 700 800 900 결과 List 100 200 300 1 2 3 400 500 600 4 5 6 700 800 900 7 8 9 난 아래와 같은 방법을 생각했다. (혹시 더 좋은 알고리즘이나 생각이 있다면 알려주세요) 1. A List와 B List를 각각 3등분으로 나눈다 2. B List를 for문을 돌면서 각 index에 맞춰서 넣어주는 작업을 한다. 3. 합쳐진 list들을 풀어서 평평하게 만드는 만드는 작업을 한다. 코드로 옮겨보면 아래와 같이 된다. 하나씩 살펴보자 1 Line va.. 2020. 9. 2.
SourceTree 에서 한꺼번에 branch 삭제하기 SourceTree를 사용하여 작업을 하다보면 어느순간 내가 만든 브랜치들이 널부러져있는 경우가 생기가 된다. 정신 차리고 보니 이런 상태 ...!! 내가 많은 작업을 했구나 뿌듯해 할 수도 있지만 반면에 너무 많은 브랜치에 내가 무슨 작업을 했는지 잊어버리게 되는 상황이 발생한다. 하지만 이걸 하나하나 다 지우는것도 엄청난 노가다 아닌가? 내가 삭제하고자 하는 브랜치를 우클릭 해보면? 하나씩은 저런식으로 지울수 있는데 내가 삭제하고자 하는 브랜치가 다수라면 여간 노가다가 아닐 수 없다. 간단하게 한꺼번에 브랜치들을 삭제하는 방법을 알아보자 상단바에 보면 Branch 메뉴가 보일것이다. 눌러보면 짜잔 하고 Delete Branches 메뉴가 나타났다. Delete Branches 탭이 있고 여기서 내가 .. 2020. 2. 12.
클래스 생성시 맨 하단에 자동 줄바꿈 처리하기 Intellij에서 클래스를 새로 생성할때, 아무런 설정을 하지 않으면 클래스 가장 하단에 새로운 라인이 생기지 않는다. 그래서 Git에서 확인해보면 위의 스크린샷과 같이 No newline at end of file 이 뜬다 매번 클래스를 생성할때마다 한칸을 띄워주는건 매우 번거로운 작업이므로 아래와 같이 설정을 해주면된다. Editor > General > Other > Ensure line feed at file end on Save 체크후 OK 버튼 클릭 이후 다시 클래스를 생성해보면 아래와 같이 하단 줄바꿈이 이루어진것을 확인할 수 있다. :) 2020. 1. 15.
[Linux] 로그에 찍힌 API 콜 횟수 구하기 서비스를 운영하다 어떠한 API가 많이 사용될까 궁금한적이 있었다. 리눅스 명령어를 잘 몰라서 grep으로 대충 로그파일 뒤져서 눈으로 대충 아 몇개구나 파악하곤했었는데 조금더 확실한 방법을 알게되었다. nginx 로그를 보면 대충 이런식의 API 콜 기록이 남아있는걸 확인할 수 있다. 개인적으로 운영하는 서비스라서 로그가 듬성듬성 있지만, 회사에서 운영하는 서비스의 경우에는 초단위로 엄청난 로그가 수집된다. 이를 통계 내려면 어떻게 해야될까? cat access.log(로그파일 PATH) | cut -d " " -f 7 | sort | uniq -c | sort 이렇게 명령어를 날려보면? 호출된 수가 많은 순서대로 정렬되어서 해당 내용이 출력된다. 따라서 어떤 API가 가장 많이 호출되고 있는지 알 수.. 2020. 1. 11.
VI 문자열 일괄 변경하기 이런 내용의 파일이 있다고 해보자, dd를 대문자로 변경하고싶다면 어떻게 해야될까? 단순한 방법은 Shift + i 를 누른다음 각각 dd 문자로 이동하여 DD로 수정하는 방법이 있겠다. 하지만 dd의 문자열(내가 변경하고자하는 문자열)이 엄청 많이 있다면? 그만큼 노가다를 해야될 것이다. 일괄 변경하는 명령어를 사용하도록 하자 :%s/{변경하고자 하는 문자열}/{변경할 문자열} 이후 엔터를 쳐보면? 내용이 잘 변경된 것을 확인 할 수 있다. 2020. 1. 11.
AWS EC2 하드디스크 용량 늘리기 서버를 운영하다보면 서버의 하드디스크 용량이 부족해서 늘려야할 상황이 발생할 수 있습니다. 저도 전혀 생각도 안하고 있다가 운영중인 앱의 서버가 마비되서 동작하지 않는 현상이 발생했는데요 서버를 들어가보니 아래와 같은 에러가 뜨고 있었습니다. 서버에 무엇인가 문제가 있어서 배포를 하려고 보니 장치에 남은 공간이 없다는 에러메세지가 뜨고 있는 상황이었습니다. 재배포도 안되고 난감한 상황이라 용량을 확인해보니 (명령어 : df -h) 현재 사용중인 용량이 가득 차있는 것이 아니겠습니까. ㄷ ㄷ 현재 상황에서는 로그도 쌓이지 않고, 사진업로드는 당연히 안되며 아무것도 동작하지 않는 악몽과도 같은 상황이었습니다. 급한대로 이것저것 쓸때없이 용량 많이 차지하는것들을 지워봤으나, 크게 공간이 확보되지 않았고 용량 .. 2019. 8. 25.
앱 설치화면 보내기 또는 해당 앱 실행하기 우리는 안드로이드 앱개발하다가 아래와 같은 상황을 개발 해야될 때가 있다. - 특정 앱이 있으면 그 앱을 실행킨다. - 만약 없다면 플레이스토어에서 해당 앱을 설치하도록 유도한다.어떻게 해야될까? 우선 사용자의 폰에 내가 실행시키고자 하는 앱이 설치 되어있는지 판단해야된다. 앱이 설치가 되어있다면 그 앱을 intent를 활용하여 연다. 설치가 되어있지 않다면 구글 플레이스토어에 그 앱의 설치화면으로 보낸다. 위의 로직을 구현하면 된다. 로직은 So Simple! 추가 Tip 코틀린에서 확장함수를 사용하는 걸 좋아한다. 코드에보면 fun Context.market(..), fun Context.openApp(..)과 같이 Context를 확장한 함수를 볼 수 있는데 저렇게 사용하면 Context영역 아래에.. 2019. 8. 25.
반응형