블로그 이미지
내게 능력 주시는 자 안에서 내가 모든것을 할수 있느니라 - 빌립보서 4 : 13 - happydong

카테고리

Happydong (1363)
프로그래밍 (156)
MUSIC (16)
인물 (3)
Utility (10)
세미나 소식&내용 (22)
IT뉴스 (18)
운동 (830)
CAFE (10)
Life (282)
Total
Today
Yesterday



안드로이드 예제를 보면서 공부하고 있는데... 남들 다되는 소스가 내가 하면 안된다. 어떻게 안되느냐 하면, layout에서 @+id/{id}를 다들 지정해 주는데, java파일에 오면 R.id.{id}가 안나오는 것이다. 이상하다 싶어 알아보니, 리소스파일에 대문자로된 파일이 있으면 에러가 나는 것!! 그래서 R.java파일이 갱신이 안되는 것!!!

이걸로 30분 허비했음....;;;;


결론은 그냥 파일 넣을 때 소문자로 넣자!!


Posted by happydong
, |



예전에 "#if#end 또는 Conditional Attribute의 적절한 사용"라는 내용으로 블로 포스팅 한적이 있다. #if #endif의 사용법은 해당 포스팅을 참고하면 좋을 것이다. 이번에는 ASP.NET MVC 개발을 하면서 View에 디버깅 모드를 분리하는 방법에 대해  알아 보도록 하겠다.

@{

#if DEBUG

    // 해당 코드

#else

    // 해당 코드

#endif

}

[코드 1 - Index.cshtml 파일]


 위 [코드1]은 View에서 서버 코드를 작성 할때 처럼 "@{ }"를 이용해서 디버깅모드 설정을 한 것이다. 그러나 이건 마크업형태로 디버깅하기에는 매우 불편한 방법이다. 그래서 좀더 스마트 한 방법을 알아 보도록 하겠다. 이 방법을 사용하려면 기본적으로 "확장메서드(Extension Methods)"의 개념을 알고 있을 필요가 있다. 사용법 모른다면 일전에 제가 블로그 포스팅한 내용 "확장메서드(Extension Methods) 사용법" 참고 하길 바란다.

 

public static class ExtensionMethods

{

    public static bool IsDebug(this HtmlHelper htmlHelper)

    {

#if DEBUG

            return true;

#else

        return false;

#endif

    }

}

[코드 2 - cs파일에 HtmlHelper의 확장 메서드]

 위 [코드 2]처럼 HtmlHelper의 확장메서드를 만든다. 이는 간단하게 디거깅 모드인지 아닌지를 확인하는 메서드이다.



@if (Html.IsDebug())

{

    <div>Debug 모드</div>

}

else

{

    <div>Release 모드</div>

}

 

[코드 3 - Index.cshtml 파일]


 위 [코드 3]은 [코드 2]에서 만든 확장메서드를 사용하는 방법을 나타낸 것이다. 


 View에서 디버깅모드를 체크할때에는 [코드 1]을 이용하는 것 보다 확장 메서드를 이용하는 것이 좀더 스마트 한 방법이 아닐까 생각이 든다. 

Posted by happydong
, |



특정 달에 특정 일자를 알고 싶을때 사용할 수 있는 자바스크립트 함수이다. 가령 2013년 6월의 마지막주 금요일이 몇일 인지 알고 싶을때, 사용한다.


// 
해당 달의 요일별로 구분해서 Array형식으로 반환합니다.

// ( 참고 : 0: , 1:, 2:, 3: , 4:, 5: , 6: )

function getMonthToArrayDays(tmonth) {

 

        var tlastday = new Date((new Date(tmonth.getFullYear(),

                                       tmonth.getMonth() + 1, 1)) - 1);

 

        var firstDay = tmonth.getDay();

 

        var arrdaylist = new Array(7);

        arrdaylist[0] = new Array(); //

        arrdaylist[1] = new Array(); //

        arrdaylist[2] = new Array(); //

        arrdaylist[3] = new Array(); //

        arrdaylist[4] = new Array(); //

        arrdaylist[5] = new Array(); //

        arrdaylist[6] = new Array(); //

 

        var tempday = firstDay;

 

        for (var i = 1 ; i <= tlastday.getDate() ; i++) {

            var ttempval = tempday % 7;

            arrdaylist[ttempval].push(i);

            tempday++;

        }

        return arrdaylist;

}

[소스 1 - 해당 달의 일자를 배열형식으로 반환하는 함수]

 

위 [소스1]은 해당 달의 요일별로 일자들을 배열로 반환하는 함수이다. 즉, 마지막주 금요일이라 하면 배열의 5번째 열에서 마지막 아이템을 찾으면 마지막 날짜가 나올 것이다. 아래는 사용 예제를 나타낸 것이다.

 

var tmonth = new Date("2013-06-01");

 

       var arrlist = getMonthToArrayDays(tmonth);

 

       // 마지막주 금요일은 몇일인지 확인.

       var lastFriday = arrlist[5][arrlist[5].length - 1];

[소스 2 - 함수 호출 내용]

위 소스를 실행시켜보면 28이라는 숫자가 나올 것이다.

2013년 6월의 마지막주 금요일은 28일이다.

Posted by happydong
, |