728x90

목동코딩 : 코딩교육

이제 내년이면 코딩을 시작한지 40년이 된다.

예전에는 코딩이라는 말보다는 프로그램이라는 말을 많이 썼고, 그 일을 하는 사람을 프로그래머라고 불렀다.

하지만 요즘은 코딩이라는 말을 많이 쓰고있다.

그러면 코딩하는 사람을 코더라고 해야 하는건가? ㅎㅎ. 시키는 일만 복사.붙여넣기 하는 사람을 우리는 코더라고 불렀다. 분명한 레벨의 차이가 있었다고 생각한다. 물론 인건비도 많이 달랐다.

요즘 코딩이라는 말을 많이 쓰듯이 배우는 내용도 많이 놀이식으로 진행되고 있다(내 생각에는 가르치는 사람에 맞춘 교육이지 않을까 싶다... ).

간혹 코딩을 배우는 나이를 많이 질문받고 있다. 내가 경험한 내용을 토대로 생각해 보면, 분명히 나이는 별관계가 없다는 생각이다.초등학생이던, 대학생이던간에 재능이 없으면 어른이라도 하지를 못한다. 반대로 초등학생이라도 재능이 있으면 가능하다.

지금 수업하는 중2학생도 초등3학년 부터 시작했다고 한다. 이 친구는 밤세우며 코딩( 게임이 아님 )을 하다 보니 학교갈 시간에 잠이 와서 부모님과 많은 갈등이 있나보다. 이제는 부모님도 자기가 잘하고 좋아 하는 거를 하도록 도와주는거 같다.

이번 수업은, 3시간을 칠판에 서서 둘이 진행했다. 질문이 많아서 수업내내 칠판에 설명하면서 진행을 했다. 혼자서 공부하고 , 인터넷에서 관심이 비슷한 친구들이라 함께 코딩을 공부 한다고 했다. 내가 도와줄 내용은 지금 공부하는 내용이 어떻게 쓰일수 있는지 또한 어느 방향을 해야 할지를 같이 고민하는 일이다. 물론 선택은 스스로 하겠지만.....

코딩은 절대 장난이 아니다. 필요에 맞춰서 공부하지 않으면 정말 시간 낭비다. 너무나 쉬운 원리만 오래 공부하는 경향이 있다.

나는 우리의 학생들이 긴 시간 공부하고도 실패했던 영어 교육이 떠오르는건 왜인지 모르겠다.

동남아 다녀온 사람에게 미국에 대해 배우면 제대로 배울수 가 없드시 말이다.....

728x90
728x90

 

목동코딩 : 날짜계산

​

지금 진행하는 프로젝트가 시자을 계산하여 요금을 계산하는 업무이다 보니, 이번 기회에 Mysql에서 시간, 날자 등을 계산하는 방법을 정리해둔다.

SELECT TIMESTAMPDIFF(SECOND, '2021-01-01', '2021-01-02');
SELECT TIMESTAMPDIFF(MINUTE, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(HOUR, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(DAY, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(WEEK, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(MONTH, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(QUARTER, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(YEAR, '2020-01-01', '2021-03-31');
SELECT TIMESTAMPDIFF(QUARTER, '2020-01-01', '2021-03-31');

SELECT DATEDIFF('2020-01-01 00:009:00', '2021-03-31 00:00:00');
Declare TIME_DIFF int;

SELECT TIMESTAMPDIFF(SECOND, '2021-01-01', '2021-01-02') into TIME_DIFF ;

이렇게 계산한 TIME_DIFF 를 계산할 Table에 반영한다

 

 

 

목동코딩 코딩교육

728x90
728x90

목동코딩학원 : 안드로이드 교육

안드로이드로 앱을 개발하다 보면, 안드로이드에서 제공하는 Toast 메시지로만 처리하기에는 조금 부족한 면이 있다. 그래서 Toast 역시 커스터마이징 해서 표시되는 위치나 글자 크기, 색상 등을 변경해서 사용하곤 했다.

이번에는 커스텀 다이얼로그를 만들어서 이미지 까지 포함하는 메시지를 사용하는 방법을 정리해둔다.

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="500dp"
    android:layout_height="500dp"
    android:gravity="center"
    android:layout_marginBottom="30dp"
    android:layout_marginTop="50dp"
    android:background="#ffffff"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="#ffffff"
        android:orientation="vertical">

        <TextView
            android:id="@+id/custom_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:text="이용약관"
            android:textSize="40dp" />

        <TextView
            android:id="@+id/custom_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:text="확인합니다"
            android:textSize="20dp" />

        <ImageView
            android:id="@+id/custom_image"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:src="@drawable/common_member" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:layout_marginTop="20dp"
        android:weightSum="100">

        <Button
            android:id="@+id/pbutton"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:text="확인" />

        <Button
            android:id="@+id/nbutton"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:text="취소" />
    </LinearLayout>
</LinearLayout>

 

목동코딩학원 코딩교육 키오스크개발

 

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //다이얼로그 밖의 화면은 흐리게 만들어줌
        WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
        layoutParams.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
        layoutParams.dimAmount = 0.8f;
        getWindow().setAttributes(layoutParams);

        setContentView(R.layout.custom_dialog);

        full_screen();

        //셋팅
        mTitle = (TextView)findViewById(R.id.custom_title);
        mText = (TextView)findViewById(R.id.custom_text);
        mImage = (ImageView)findViewById(R.id.custom_image);

 
        mTitle.setText(sTitle);
        mText.setText(sText);
        mImage.setImageResource(R.drawable.common);        

        mPositiveButton=(Button)findViewById(R.id.pbutton);
        mNegativeButton=(Button)findViewById(R.id.nbutton);

        //클릭 리스너 셋팅 (클릭버튼이 동작하도록 만들어줌.)
        mPositiveButton.setOnClickListener(mPositiveListener);
        mNegativeButton.setOnClickListener(mNegativeListener);
    }
String title = "구매등록";
String text1 = "이용권 구매를 완료했습니다";
customDialog = new CustomDialog(AmountActivity.this,positiveListener,negativeListener);
customDialog.setsTitle(title);
customDialog.setsText(text1);
customDialog.show();

목동코딩 언택트 코딩교육

 

728x90
728x90

목동코딩 : 안드로이드 코딩교육

안드로이드 앱을 개발하면서 아래 사진과 같은 체크박스를 만들고 싶어서, 구글 검색을 통해 체크박스 크기를 변경하는 방법을 찾다보니, background에 이미지를 넣어서 하는 방법이 있어서 정리해 둡니다.

 

 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 체크박스 해제상태 -->
    <item android:drawable="@drawable/check_before" android:state_checked="false" />
    <!-- 체크박스 선택상태 -->
    <item android:drawable="@drawable/check_drop" android:state_checked="true" />
    <!-- 체크박스 기본상태 -->
    <item android:drawable="@drawable/check_before" />
</selector>

 

 

<CheckBox

android:layout_width="40dp"

android:layout_height="40dp"

android:text=""

android:id="@+id/term"

android:layout_marginLeft="76dp"

android:gravity="center"

android:button="@android:color/transparent"

android:background="@drawable/check_box"

android:layout_alignParentRight="true" />

 

목동코딩 안드로이드 앱개발 코딩교육

 

 

목동코딩 안드로이드 앱개발 코딩교육

 

 

목동코딩 안드로이드 앱개발 코딩교육

728x90
728x90

목동코딩: 코딩교육

이번 프로젝트는 조금 일반적이지 않은 프로젝트이다. 쇼핑몰과 비슷한데 공급처별로 보여주고 집계를 해서 주문을 하는 프로젝트이다.(아래화면)

그러다 보니 표시되는 input 태그에 각각의 공급처가 표시 되어야 한다. 그리고 주문시에는 각 공급처 별로 주문저장을 해야한다. 그래서 <input ss="Brand"/> 라는 커스텀 태그를 만들어서 사용하였다.

 

 

<script>
    function toOrder() {
        var number_input = $("input[ss=Brand]");
        console.log(number_input);

         
        $.each(number_input, function(index, value) {
            console.log('IDX :' + index);
            console.log(value);
            console.log('ID =' + $(value).attr("id"));
            console.log('NAME =' + $(value).attr("name"));
            console.log('VALUE =' + $(value).val());
        });
}
</script>

<input ss="Brand" name="Brand"  value="100">

이제는 split 하여서 사용하면 되겠다

 

목동코딩 코딩교육

728x90
728x90

목동코딩: 코딩교육

Php로만 프로젝트를 하다가, 갑자기 NGINX 에서 Kestrel 로 리버싱하여서 Asp.net mvc 프레임으로 개발하면서 많은 고생을 하고 있다. 그중에 SQL에 익숙한 나로선 해결 방법을 찾는데 많은 고생을 한다. 그래서 이미 알고 있는 사람한테는 웃음을 짓겠지만 나는 추후에 보기 위해서 기록한다

 

            FranchiseePoint d = new FranchiseePoint();

            d.RegiDate = c.RegiDate;
            d.FranchiseeId = c.FranchiseeId;
            d.point = c.point;
            d.비고 = c.비고;
            DB.FranchiseePoint.Add(d);

            DB.SaveChanges();

 

 

http://nooh-system.com/

목동코딩: 코딩교육 라즈베리교육

728x90
728x90

목동코딩: 추석 연휴에 자녀교육에 대하여....

많은 부모님이 이렇게 애기를 합니다.

"다 너 잘되라고 내가 이렇게 한다" 라고요.

그 말은 아이들에게 별로 영향을 미치지 않습니다. 아니 오히려 역으로 영향이 작용합니다.

부모님들은 할만큼 하다가 "나도 모르겠다 너 인생 알아서 해라!" ㅎㅎㅎ.

이랬다 저랬다 합니다. 그리고 그런 행동이 교육이고 애정이라고 생각을 합니다.

이렇게 자녀에게 행동하면 , 자식과의 관계도 멀어지고, 교육 성과도 없습니다.

그리고 공부에 조건을 걸면 안됩니다. "가령 1등하면 00을 해주겠다" 등등 .

그러면 자녀와 조건 관계가 형성이 되고 , 나중에 서로가 갑을 관계로 변질될 확률이 많아집니다.

제 경우에는 공부를 잘하던, 못하던 아들과 나의 관계에는 아무 영향이 없다는 마음으로 초등, 중등, 고등 까지를 유지해왔습니다.

아들이, 고3 때 수능 보기 1주일전, 내가 물었습니다 그냥 별 의미 없이 "공부 잘돼가냐"고요 ㅎㅎ.

막 울더군요 "1주일 뒤면 수능을 보고 , 나중에 점수가 나올텐데 그 점수를 보고 실망할 아빠 생각하면 잠이 안온다" 하면서 울더군요.

그때 나는 이렇게 말했습니다 "아냐 ! 아빠는 전혀 안그래, 정말 내 생각만 한다면 너 대학 안가고 내옆에 있는게 난 좋다"," 네가 공부를 하느라 떨어져 살면서 1~2년에 , 아니면 더 긴 시간동안에 얼굴 한번 보기 힘든 거 보다, 내 옆에 있으면서 결혼식도 같이 가고, 막걸리도 사다주고, 담배도 사다주는 아들이 난 정말 좋다, 네 생각 안하고 순전히 내 생각만 한다면 진심이다 ....".

이렇게 애기 하면서 내가 살아보니 " 인생은 잘 안되게 꼭 안 좋은거만은 아니더라" 라고 애기 해줬습니다.....

그 대신 점수에 맞추어 의미 없는 대학을 가지 말고, 군대를 먼저 가느게 어떠니?

그리고 1년뒤 입대를 했습니다

...

...

아들이 군대를 제대하고 조금 쉬더니 나한테 이렇게 애기 했습니다.

"아빠! 나 공부해도 되겠어요?" 그래서 그러라고 했습니다.

초등, 중등, 고등 12년 기간을 공부를 안하고 게임만 하면서 세월을 보낸 아들이 공부를 하겠다고 애기를 했습니다 ㅎㅎ.

정말 무섭게 공부를 하더군요 머리가 아프다고 울면서도 1년간 공부를 했습니다.

그래서 정시로 대학을 들어갔습니다. 정시 모집 인원이 너무 적어서 내가 "이건 문제가 있는거 같어, 철들어서 나중에 공부 하려고 하는 학생들은 입학하기가 너무 힘들겠다".

그랬더니 멋진 말을 했습니다 " 아빠! 개들은 나놀때 공부 했쟎아요?" ㅎㅎ 그래서 멋지다 해줬습니다.

수능보기전 9월 모의 고사에서 00학원 문과1등을 하기도 했습니다.

대학에 입학했습니다.

국문과에... 그때부터 코딩을 공부하도록 필요성을 느끼게 자주 애기 했습니다.

그러던중 기회가 찾아 왔습니다. 다니던 대학의 컴퓨터 공학과에서 복수전공자를 모집했습니다. 그리고 지원을 하고 합격을 하였습니다.

그 아들이 올해 4학년이 되어서 졸업반이 되었습니다.

다행 스럽게 국문학, 컴퓨터공학 두개의 학위를 가지고 사회에 나갑니다.

이번 여름 방학에 I.T업체에서 인턴을 하며, 사회생활에 자신감을 얻었는지, 아들이 몇달전 이렇게 말했습니다 "아빠! 난 세상을 이렇게 살면 될거 같아요".

참 고마웠습니다. 수능 공부를 하면서 "아빠 한테 효도할려고 공부한다" 는 말이 생각나서....

남들이 무시할때 자식을 자랑스러워 하는 부모님이 되시기를.......

추석 연휴 마지막날

728x90
728x90

목동코딩,코딩교육

function deleteOerder(obj) {

   $("#" + obj.id).closest('tr').remove();
}

var row = "";
row = row + "<tr>";

row = row +
    "<td><input id='" + resArray[0] +
    "' name='ItemCode' class='btn btn-secondary' onclick='deleteOerder(this);' type='button' value='" +
    '삭제' +
    "' style='width: 80%;padding: 0;border-radius: 0.4rem;font-size: 1.45rem;border-color: white;'></td>";
row = row +
    "<td ><input name='DispLetter'  type='text' value='" + resArray[1] +
    "' style='width: 100%;' disabled></td>";
row = row + "<td ><input name='ItemName'  type='text' value='" + resArray[2] +
    "' style='width: 100%;' disabled></td>";
row = row + "<td ><input name='Price'  type='text' value='" + comma(resArray[3]) +
    "' style='width: 100%;text-align:right;padding-right:10px;' disabled></td>";
row = row +
    "<td ><input   name='Cnt' onchange='reCalcu();'  type='number' value='1' min='1' style='width: 100%;' ></td>";

row = row + "</tr>";
$('#orderItems').append(row);
var totSum1 = uncomma($('#buySum').val());
var totSum2 = uncomma(resArray[3]);
var totSum = (parseInt(totSum2) + parseInt(totSum1)).toString();

$('#buySum').val(comma(totSum));
          
});
728x90

+ Recent posts