2018년 7월 20일 금요일

2018년 7월 18일 수요일

안드로이드 스튜디오 유용한 플러그인

https://blogdeveloperspot.blogspot.com/2017/12/android-studio.html

1.CodeGlance
이 플러그인을 설치하면 우측에 코드 미니맵이 생성되어 코드를 더욱 편하게 볼 수 있게 해준다.

2.Parcelable code generator
귀찮은 parcelable 코드를 자동으로 생성해주어 생산성을 높여준다.

3.Presntation Assistant
어떤 기능을 사용 할 때 단축키를 시각적으로 보여준다.
key promoter라는 비슷한 플러그인이 있는데 클릭한 위치에서 오랜시간(?) 단축키를 알려주지만 개발에 방해가돼 개인적으로 깔끔한 이 플러그인을 선호한다.

4.ADB idea
자주 사용하는 몇몇 ADB 커맨드를 클릭으로 사용할 수 있게 해준다.

5.Android Drawable Impoter
drawable 리소스를 한사이즈만 제작하면 자동으로 여러 해상도 사이즈에 맞게 추가해준다.

안드로이드 스튜디오 단축키

http://www.androidside.com/bbs/board.php?bo_table=B56&wr_id=26482

핵심단축키

http://coolmsd.tistory.com/122

http://link2me.tistory.com/1214

http://corej21.tistory.com/63

http://yonoo88.tistory.com/887

https://hhd2002.blogspot.com/2017/06/170609-android-studio-for-windows.html

Gradle 알기

gradle 로 java 빌드 해보기 일본 사이트
https://qiita.com/tatesuke/items/6e30dc8891d0857f240e

2018년 7월 17일 화요일

android studio 레이아웃 에디터에서 빨간버튼뜨는거 해결

https://stackoverflow.com/questions/44449275/failed-to-load-appcompat-actionbar-with-unknown-error-in-android-studio

2018년 7월 16일 월요일

개발자를 위한 레시피-안드로이드

http://recipes4dev.tistory.com/category/ANDROID%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

튜토리얼 많은 곳

https://www.tutlane.com/

2018년 7월 9일 월요일

android MVVM 만들기 1-7

http://susemi99.kr/4644

2018년 7월 8일 일요일

java, c++ 책처럼 정리 잘되어 있는곳

http://tcpschool.com/cpp/cpp_algorithm_functor

2018년 7월 7일 토요일

예외처리 checked Exception, unchecked Exception

http://www.nextree.co.kr/p3239/

2018년 7월 5일 목요일

javascript - Abstract Factory 예제

var NpcFactory = (function(){
    var npcList = [];
    return {
        addType : function(npcElement) {
            if (npcList.indexOf(npcElement) > -1) {
                console.log("duplicated");
                return;
            }
            npcList.push(npcElement);
        },
        createNpc : function(npcElement, options) {
            var Npc = npcList[npcList.indexOf(npcElement)];
            return (Npc ? new Npc.npcElement(options) : null)
        }
    }
})();

var enermyMagician = (function(){
   function enermyMagician(options){
       this.name = options.name;
   }
   enermyMagician.prototype.attack = function(target) {
        console.log("big macic");
    }
   
   return enermyMagician;

})();

var enermySword = (function(){
   function enermySword(options){
       this.name = options.name;
   }
   enermySword.prototype.attack = function(target) {
        console.log("swing");
    }
   return enermySword;

})();

const npcOfMagician = {
    npcType : 'magician',
    npcElement : enermyMagician
};
const npcOfSword = {
    npcType : 'sword',
    npcElement : enermySword
};

NpcFactory.addType(npcOfMagician);
NpcFactory.addType(npcOfSword);
var magic1 = NpcFactory.createNpc(npcOfMagician, { name: 'magic_1' });
var magic2 = NpcFactory.createNpc(npcOfMagician, { name: 'magic_2' });
var sword1 = NpcFactory.createNpc(npcOfSword, { name: 'sword_1' });

console.log(magic1.attack());
console.log(magic2.name);

2018년 7월 4일 수요일

코틀린 강좌 모음

일단 시작하는 코틀린
https://www.slideshare.net/parkjoongsoo1/ss-58654366

실무자가 자주 사용하는 코틀린 문법
http://i5on9i.blogspot.com/2015/07/blog-post_5.html

새차원의 코틀린 강좌
https://www.slideshare.net/ssuser70d5d01/kotlin-1-why-kotlin


http://blog.dskim.xyz/kotlin/2017/07/22/kotlin-02.html


http://wonwoo.ml/index.php/post/1505

[깡샘의 코틀린 프로그래밍]
https://github.com/kkangseongyun/kkangs_kotlin

코틀린 한글판
http://javacan.tistory.com/entry/Korea-Kotlin-Ref-Doc

코틀린 연습장등.
http://sunnybong.tistory.com/166?category=770381

Deep Learning 소개 - 자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.

https://www.slideshare.net/yongho/ss-79607172

2018년 7월 2일 월요일

javascript 은닉화 기본 -

browserStore = function()
{
        var self = {};

        self.set = function(key, value)
        {
           console.log(`key:${key} value:${value}`)
        }
        
        self.get = function()
        {
           console.log(`return key value`)
        }
        return self;
}
     
var test = new browserStore();
test.set('key', 'value');
test.get('key', 'value');

browserStore.set('key', 'value'); // exception browserStore.set is not a function
browserStore.get(); // exception browserStore.set is not a function

Javascript 반복 if 를 Curring 으로 깔끔하게.

var apiName = 'Activity';
var askedFields = 'heheh KIM fdsfas BABO AHO';

//before curring
var getRelationName = false;
if(apiName === 'Activity' && askedFields.indexOf('KIM') > -1)
{
    activityGetRelationName = true;
}
var getIndividualRelationName = false;
if(apiName === 'Activity' && askedFields.indexOf('TAEHO') > -1)
{
   getIndividualRelationName = true;
}
//add condition for 1 year after
var getIndividualRelationWarukuti = false;
if(apiName === 'Activity' && askedFields.indexOf('BABO') > -1)
{
    getIndividualRelationWarukuti = true;
}

console.log(`activityGetRelationName:${getRelationName}`);
console.log(`activityGetIndividualRelationName:${getIndividualRelationName}`);
console.log(`activityGetIndividualRelationWarukuti:${getIndividualRelationWarukuti}`);

//change curring
function curringOut(argApiName) 
{
    var apiName = argApiName;
    return function(condition) 
    {
         if(!condition) return false;
         return apiName && condition;
    }
}

function findWord(word) 
{
    return askedFields.indexOf(word) > -1;
}

var isAskedFiled = curringOut(apiName);
var getRelationName2 = isAskedFiled(findWord('KIM'));
var getIndividualRelationName2 = isAskedFiled(findWord('TAEHO'));
var getIndividualRelationWarukuti2 = isAskedFiled(findWord('BABO'));


console.log(`getRelationName2:${getRelationName2}`);
console.log(`getIndividualRelationName2:${getIndividualRelationName2}`);


console.log(`getIndividualRelationWarukuti2:${getIndividualRelationWarukuti2}`);

2018년 7월 1일 일요일

c# 디자인 패턴

http://ehpub.co.kr/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EC%84%A4%EA%B3%84-c-1%EB%B6%80-%EC%83%9D%EC%84%B1-%ED%8C%A8%ED%84%B4%EB%93%A4/