반응형

개발 코딩 정보 공유 67

접근제어(public, private) 알고 사용하자

접근제어(public, private) 알고 사용하자 이미지 / pixabay 접근제어를 왜 써야되는가? 예전 문서들을 보던중 갑자기 접근제어에 대해 정리를 하고 싶어 졌습니다. 언어를 처음 공부할때 도대체 이해가 안되던 기억이 나네요. 자바의 접근제어에 대해서 이해해 봅시다. 자바에서 접근제어 키워드는 public, private, protected, default 가 있습니다. 그냥 쓰면 되지 굳이 이딴걸 왜 만들었을까요? 이렇게 이해하면 쉽습니다. 이미지/pixabay/생각 사고 반영 어느날 철수는 한 프로젝트에 투입되게 됩니다. (갑자기???) 철수는 클라이언트개발자로 활동중입니다. 프로젝트에 투입되자 경태 라는 코어(라이브러리, 클래스작성자라 칭함) 개발자를 만나게 됩니다. 거기서 철수가 하는일..

함께 하는 스터디 - 클래스 class 너란 녀석을 알아보자

2장. 클래스 너란 녀석... 이미지/flickr 클래스? 이제야 자바공부의 본격적인 진입입니다. 이번장 에서는 바로 그 객체란 녀석을 만들어보겠습니다. 추상적인것 말고 실제로 객체를 만든다는것은 어떤것 일지 알아야 합니다. 자바에서 객체는 Class 라는 엔티티로 표현되게 됩니다. * OOP 적인 프로그래밍 - 자바 에서 우리들이 하는 일은 그저 객체를 만드고 그걸 활용하는 것 그것이 전부. 라고도 한답니다. 그럼 객체를 만들어 볼까요? 우리는 자동차라는 객체를 이용하여 무언가를 하고싶습니다. 한번 만들어 봅시다. MyCar myCar = new MyCar(); "이게 끝입니까?" “네 끝입니다” 이것이 객체를 만드는 전부 입니다. 객체를 만든다는것은 어떤것 일까요? 객체를 생성하는 행위는 사실 메모리..

함께하는 스터디 도대체 자바가 뭐에유? 객체지향은 또 뭐람???

1장. 도대체 자바가 뭔가요? 객체지향은 또 뭐구요. 이미지 / pixabay 자바?? 커피임?? 프로그래밍을 하는자 혹은 아닌자… 혹시 누구든 자바 라는 프로그래밍언어에 대해 한번쯤은 들어보지 않았을까 합니다. "아~ 그 자바. 자바.자바… 알럽~ 커퓌 알러~~ㅂ 그거 커피 아니야?? " "응. 아니야." 이번편에 설명하고자 하는 자바는 프로그래밍 언어 JAVA 입니다. 자바는 ‘썬마이크로시스템즈’ 의 ‘제임스 고슬링’ (+ 연구원들)에 의해 1995년에 발표된 언어 입니다. 처음에는 가전제품내에 들어가는 프로그램을 위해 개발 되었다가 현재는 웹 어플리케이션(일반사람들이 이야기하는 그 홈페이지)을 만드는데 주로 쓰이는 언어 입니다. “잘 이해가 안 가신다구욧?” 잘 이해가 안되면 핸드폰을 잠시 꺼내서 ..

자바 1.8 람다식 잘 사용해보자~!

자바 1.8 람다식의 사용 안녕하세요. 자바 1.8 기준 람다식 사용법을 정리 해보았습니다. 기존의 문법으로 쓰레드를 사용하여 Hello world를 출력하면 이런식이 됩니다. 1 2 3 4 5 6 new Thread(new Runnable() { @Override public void run() { System.out.println("Hello World."); } }).start(); cs 아시다시피 기존의 문법은 복잡합니다. { 열고 ... } 닫고... { 열고... } 닫고....... 람다식을 사용하면 아래와 같이 간략해 집니다. 1 2 3 new Thread( ()->{ System.out.println("Hello World."); } ).start(); cs 어떻게 이런게 가능한가?? 이..

firebase 를 이용한 안드로이드 채팅앱

안드로이드 채팅앱 (firebase 를 사용한) 안녕하세요. 오늘은 안드로이드 채팅앱을 만들어보려합니다. 말이 채팅앱이지 firebase 를 이용해서 만들면 정말 간단하게 구현할 수 있습니다. 구글 firebase는 정말 강력한 플랫폼인것 같습니다. 여러곳에서 사용되고 있는 FCM푸시 서비스도 그렇고 여러가지 강력한 서비스들을 무료로 사용할 수 있습니다. 이번에는 firebase 실시간 데이터베이스를 이용하여 앱을 만들어 보겠습니다. 우선은 firebase 프로젝트를 생성해야 합니다. 기존에 FCM 등에서 만들어둔 프로젝트에 추가하셔도 되구요. 이부분은 설명하지 않겠습니다. 1.추가된 프로젝트의 google-service.json 파일을 다운로드 받고 파일은 프로젝트/app 경로에 넣어주시면 됩니다. 다..

안드로이드 메모리 관리는 어떻게 ? (누수 예방법)

안드로이드 메모리 관리 (누수 방지 안녕하세요. 오늘은 안드로이드 메모리 관련 입니다. 기존에도 한번 썻던것 같은데요. 메모리가 언제 leak이 나더라...다시 생각해보니... 어느새 다 잊어버렸습니다.하하하ㅏㅎㅎㅎㅎ.... 안드로이드의 경우 자바의 피를 이어받아... 자바의 성향을 그대로 따릅니다. (당연;;) 그렇다면 언제 메모리 누수가 발생하느냐? 뭐 무수히 많은 경우가 있겠지만 안드로이드 기준으로 흔히 사용하게 되는 inner class 가 문제인 것입니다. 웹 개발할 당시는 inner class를 1년에 한번 쓸일이 있을까 말까 했습니다만 안드로이드 개발시에는 하루에도 수십번 사용합니다. 그것도 아주 무분별 하게... 그렇다면 왜 inner class 가 문제가 되냐? 에 대해 알아보겠습니다. ..

안드로이드 FCM 푸시서버 예제

안녕하세요. 지난번에 firebase 안드로이드 FCM 푸시 관련하여 알아보았습니다. 오늘은 밑도 끝도 없이 예제를 통해서 간단한 사용법을 배워보죠! ***htttp V1 사용법이 아닙니다. 구글에서 말하는 기존의 구형 원시 사용법입니다. 예제는 간단합니다. 1 2 3 4 5 //구글 인증 서버키 private final String AUTH_KEY_FCM = "AAAAlTG6ylg:APA91bHo8 ... "; private final String API_URL_FCM = "https://fcm.googleapis.com/fcm/send"; //기기별 앱 토큰 private String userDeviceIdKey = "d-tse-wQXDA:APA91bH ..."; cs 인증서버키를 가지고 있구요. 예..

안드로이드 FCM 푸시서버 구현

내가 뭐 어쨌다고... 지난 푸시 앱설정 포스트에 이어서 안드로이드 푸시 서버구현에 대해 알아봅시다. FCM 푸시 서버 구현의 경우 몇가지 방법으로 나눠지는데요. admin sdk를 사용하여 보내는 방법과 원시프로토콜을 사용하여 보내는 방법 입니다. 그중에 원시프로토콜을 사용하여 푸시를 날려봅시다. 그 안에서도 이렇게 또 나눠집니다. (에고 복잡해) 1. FCM HTTP v1 API (신버전) https://firebase.google.com/docs/cloud-messaging/send-message?hl=ko#send_messages_to_specific_devices 2. 기존 HTTP 프로토콜 https://firebase.google.com/docs/cloud-messaging/http-serv..

안드로이드 GCM을 FCM로 마이그레이션 해봅시다

GCM 을 FCM 으로 마이그레이션 합시다 응? 나를 뭐 어쩐다고? 구글정책에 따른 문제파악 다들 바꾸셨겠지만 오래된 플랫폼의 경우 아직도 구글 GCM을 활용한 푸시서비스 방식을 쓰고있습니다. 이미 구글에서 2018년 4월 10일 부터 GCM 사용중지 공고를 하였습니다. 그럼에도 GCM을 쓰셔야 겠다면... 안타깝지만 불가능 합니다. " 2018 년 4 월 10 일부터 Google은 GCM을 사용 중지했습니다. " " GCM 서버 및 클라이언트 API는 더 이상 사용되지 않으며 2019 년 4 월 11 일에 즉시 삭제됩니다 . " " 신뢰할 수 있고 확장 가능한 GCM 인프라와 많은 새로운 기능을 상속하는 FCM ( Firebase Cloud Messaging)으로 GCM 앱을 마이그레이션 합니다. 자세..

안드로이드 8.0(api26) 알림채널 생성하기 (notification channel)

안드로이드 api 26(8.0 오레오) 대비 작업 - 알림 채널 생성 android oreo / pixabay / knd61 안녕하세요. 안드로이드 api 26(8.0 오레오)에 대비 하여 오늘은 알림 채널 생성을 해보겠습니다. 알림을 채널별로 관리하여 좀더 효율적으로 사용한다는 것인데요. 역시나 너무 귀찮습니다. "Android 8.0 (API 레벨 26)부터 모든 알림을 채널에 할당해야합니다. 각 채널에 대해 해당 채널의 모든 알림에 적용되는 시각 및 청각 동작을 설정할 수 있습니다. 그런 다음 사용자는 이러한 설정을 변경하고 앱의 알림 채널을 방해하거나 눈에 띄게할지 결정할 수 있습니다." 아래와 같이 작업을 하시면 되는데요. 알림채널의 경우 단 한번만 설정하면 다시 설정할 필요가 없기때문에 app..