본문 바로가기

개발 코딩 정보 공유/안드로이드 자바 코틀린

다형성의 쉬워 보이는 이해^^; 다형성의 쉬워 보이는 이해^^; 골 판지 상자 / 이미지 / pixabay oop 의 이해 : 다형성 자바에는 많은 특징이 있고 그것들을 통해 자바는 객체지향적 프로그래밍이 가능하게 됩니다. 그 중에 이번장 에서는 다형성에 대해 알아보겠습니다. 다형성(polymorphism) 은 쉽게 말해 한가지의 형태로 다양한 각자의 행동을 취하는것을 말합니다. 예를 들면! 자동차 연구소가 있다고 칩니다. 그곳에는 H자동차, K자동차, B자동차 가 있다고 하죠. 다형성을 위해 아래와 같이 상속관계를 구현하는것입니다. [자동차] (인터페이스) 더보기
클래스의 재사용과 상속 관계 클래스의 재사용과 상속 관계 상자 물음표 질문 / 이미지 / pixabay 클래스의 재사용 , has a 의 관계 같은 동작을 하는 같은 코드를 매번 만들필요는 없겠지요?(가끔 그럴때도 있긴 합니다만…) 코드를 재사용 하는 것은 객체지향언어에서 최대의 장점중 하나 입니다. 우리가 흔히 알고 있는 객체 지향의 특징중 하나인 상속 이라는 것이 있죠. 상속을 통한 재사용도 있을수 있지만 상속을 통한 관계는 부모 클래스에 매우 종속적이게 됩니다. 컴파일 시에 타입이 결정되기 때문이죠. (자식은 부모형태 이다 = child is parent ) 바로 is a 관계가 성립하기 때문이죠. 클래스 내부에서 멤버 객체(클래스)들을 생성하여 필요한 조합으로 구성할 수 있고 이를 컴포지션 이라고 합니다. 클래스 내부에서 클.. 더보기
접근제어(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 가 문제가 되냐? 에 대해 알아보겠습니다. .. 더보기