일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Java 지네릭스(Generics)에 대하여 알아보겠습니다.
- 네이게이션 드로우
- 백준
- recyclerview
- 자바
- 라이브러리
- node.js
- navigation
- databinding
- EventEmitter
- android list
- 안드로이드
- 알고리즘
- android
- SlidingRootNav
- HTTP
- Today
- Total
목록분류 전체보기 (32)
삽질개발
요번 포스팅부터 Firebase 관련 글을 써보겠습니다. 먼저 firebase 에 대해서 알아보겠습니다. Firebase는 클라우드 서비스 제공자이며 동시에 백엔드의 기능을 가지고 있습니다. 원격 클라우드 서버를 제공하며 우리는 Firebase를 이용해 손쉽게 그 곳에 데이터를 저장하고 불러올 수 있습니다. 이 외에도 Firebase는 Android, IOS 그리고 Web 개발자들을 위해 여러 기술들을 만들어냈습니다. Firebase는 2011년 Andrew Lee 그리고 Tamplin에 의해 설립되었으며 2012년 실시간 클라우드 데이터베이스(Realtime cloud database)로 시작되었습니다. 실시간 클라우드 데이터베이스는 Firebase의 가장 핵심적인 무기인데, 그것이 무엇인지는 잠시 후..
쓰레드란동시에 여러가지 작업을 동시에 수행할 수 있게하는것!!!간단히 요약하자면 이러하다. 간단한 예제를 통해 알아보겠습니다. 먼저 Thread를 상속받는 class에 메소드 1개를 정의해보겠습니다. class Thread13_1 extends Thread {public void run() {int i = 10;while (i != 0 && !isInterrupted()) {System.out.println(i--);for (long x = 0; x < 2500000000L; x++); }System.out.println("카운트가 종료되었습니다.");}} run메소드는 쓰레드가 실행중일때 실행 메소드이며 여기에서는 isInterrupted()가있는데 현 Interrupted를 boolean 값으로 반환..
오늘은 간단하게 로컬 웹서버에 이미지를 불러와보겠습니다. 먼저 그러기위해 require -> http,fs 를 불러옵니다. var http = require('http');var fs = require('fs'); 이제 서버를 만들어줍니다. var server = http.createServer(); 이후 server라는변수에 listen 리스너를 포트번호와 funtion 을 넣어주면 웹서버가 시작됩니다. port 3000은 로컬을 의미합니다. 이후 클라이언트가 접속할때 이벤트와 접속후 response 에 해당 이벤트를 정의해주겠습니다. 앞서 배웠듯히 on이라는 이벤트 메소드를 씁니다. 여기서 현재 .js 파일들이 있는 path에 보여줄 이미지를 넣어놓습니다. 저는 me.jpg라고 넣어놨습니다. 이후 컴..
지네릭스(Generics)란 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능입니다. 지네릭스를 쓰면 얻는효과는1. 타입의 안정성2.코드가 간결해진다. 간단한 예제를 보겠습니다. 예를 들어 예시된 Car 클래스가 있다고 가정해봅시다. public class Car {Object speed; void setspeed(Object speed) {this.speed = speed;} Object getspeed() {return speed;}} 이제 이클래스를 지네릭 클래스로 변경하게되면 클래스옆에 를 붙이면 된다. public class Car {T speed; void setSpeed(T speed) {this.speed = speed;} T getSpeed() {..
오늘은 node.js 시간 class에서 함수를 정의하고 event 리스너를 설정해볼겁니다. require('events')를 불러옵니다. 이후 exports 및 클래스를 설정합니다.그전에 간단하게 2개정도 알고 넘어가겠습니다. 생성자 메소드는 클레스가 오브젝트로 생성되고 초기되기 위한 특별한 메소드 입니다.super 키워드는 부모 오브젝트의 함수를 호출할 때 사용됩니다. 여기서 보시면 생성자 메소드는 constructor() 이되겠습니다.간단하게 x,y를 받고 event 리스너를 'on' 으로 등록해보겠습니다. 이후 받은 x,y 를 더하는 함수를 세팅해보겠습니다. add()라는 함수를 만들어준후 간단하게 x+y 를 return 해보겠습니다.이제 모듈이 완료되었습니다.!! 이제 모듈을 한번 불러서 add..
출처: https://github.com/yarolegovich/SlidingRootNav 좋은 라이브러리를 소개할려고합니다. 위 보시는것처럼 SlidingRootNav 써보자 먼저 세팅을해주자.compile 'com.yarolegovich:sliding-root-nav:1.2.0' 이후 보시게되면 new SlidingRootNavBuilder(this) .withMenuLayout(R.layout.menu_left_drawer) .inject(); 를 쓰게됩니다. .withMenuLayout()의 View는 왼쪽에 보여주는 view 가되겠습니다. 저는 간단하게 이런식의 XML을 만들어보겠습니다. 그런다음 상단의 액션바를 style에서 noactionbar 로 세팅해줍니다. 이후 Toolbar 를 기존X..
node 에서 이벤트를 배워보았다.그래서 그걸활용해서 .txt 파일을 한줄한줄 읽을때마다 이벤트를 발생해보겠다. 먼저 require 내장모듈을 선언해보자 readline은 스트림을 한줄한줄 읽을때마다 인터페이스를 제공해준다. 이제 이벤트를 발생할 함수를 만들어보겠습니다. 먼저 보시면 변수를 받아올 filename을 스트림형식으로 만들어줍니다.!! 이후 라인마다의 이벤트를 만들어줄 interface도 역시 만들어줍니다. 이제 이벤트 세팅을 해볼차례입니다. 인터페이스를 만들어준 변수에 on을 붙혀 이벤트를 'line'에 생성해줍니다.읽기의 구분은 빈공간으로 생각하며 조건식을줘서 읽었을때 출력값을 만들어줍니다.이후 다읽었더라고면 'close' 이벤트를 만들어주면 끝!! 이제 .txt 파일을 저 함수 인자값으로..
노드는 동기식IO, 비동기식 IO 기능을 함께 제공합니다. 동기식IO -> 작업이 끝날때까지 대기... 비동기IO -> 요청하고 다음작업을 바로수행!!! 이둘을 비교하기위해 동기식IO메소드 에서는 Sync라는 단어를 붙입니다. 간단한 동기식IO를 통한 파일 읽기를 해보겠습니다. 위에 코드를 보시게되면 readFileSync() 메소드를 사용했는데 이름에 Sync가 붙어 있으므로 동기식동작입니다. 컴파일을 하면 package.json 이 출력되는걸 확인하실수있습니다. 이번엔 노드에서 자주사용하는 코드패턴인 비동기처리를 알아보겠습니다. 여기서보시면 readFile()메소드를 실행하면서 세번째로 전달된 function은 작업이 끝났을때 호출됩니다. err가 null체크로 error를 판단할수있겠죠?? 대표적인..
Recyclerview는 옆에 보시는바와같이 리스트형식으로 표현되는 RecyclerView는 supportLibrary와 Android 5.0(API 21 이상)에서 사용이 가능합니다. API 7부터 사용이 가능한 supportLibrary - recyclerview-v7은 다음과 같이 정의할 수 있습니다. dependencies { compile 'com.android.support:recyclerview-v7:24.2.1' } 이제 간단하게 Recyclerview 를 구현해보겠습니다. 먼제 file->project structure->Dependencies 를 가서 +버튼을 클릭합니다. OK를 눌러등록합니다. 여기서!!! 뒤에 버전은 현재 자신의 버전이랑 같게해야된다!! compile 'com.and..
기존 개발할때..login = (Button) findViewById(R.id.loginActivity_button_login); signup = (Button) findViewById(R.id.loginActivity_button_signup); 노가다의 연속... 이제 ㅂㅂ 이젠 DataBing!!!! 생각보다 간단하다 build.gradle(Module:app) -> android { . . . . dataBinding { enabled = true } } 하면 세팅끝!! 이제 xml로 이동하게되면 부모 뷰를 이런식으로 잡고 빌드를 해보자! 빌드를 하게되면 JavaCode 에서 class가 생성이된다. xml 네이밍이 activity_main이면 ActivityMainBinding 즉 xml이름 +..