Sempre Avanti, Renaissance man [always forward]

youmin3.egloos.com

포토로그


google_ad_sense_TOP


[Tip]JavaScript by youmin3


자바스크립트 JavaScript 정리 by youmin3

Underscore, Backbone, Angular, d3, ember, react, redux, rxjs, AMD, webpack
jQuery, Bootstrap, React, Angular, angular2, ember, polymer
Typescript, Dart, CoffeeScript
React Native와 깃헙(Github)의 Electron
node.js, Express.js

jQuery
- 1세대 라이브러리,
- 클라이언트상에서 필요한 기능들을 제이쿼리 UI 라이브러리와 조합하여 손쉽게 구현

BackboneJS
- 싱글 페이지 어플리케이션 프레임워크의 1세대라고 할 수 있는,
- 자바스크립트를 활용하여 프론트엔드에서 웹페이지 전체를 구현해 낸 프레임워크.
- 용량이 매우 작고, 프레임워크 자체가 가벼워 빠른 속도가 특징.
- 서비스 구조를 직접 설계해야하기 때문에, 서비스를 확장함에 따라 고급 설계 기술을 요구합니다.
- 템플릿 엔진을 포함하지 않기 때문에, Handlebars와 같은 템플릿 라이브러리를 같이 조합하여 사용해하는 번거로운 점이 있습니다

AngularJS
- 구글 오픈 소스 프로젝트로 잘 알려진 프레임워크.
- 가장 대중화된 싱글 페이지 프레임워크.
- 투웨이 바인딩 기술이 구현되어 있어, 강력한 템플릿엔진을 가지고 있어, 자바스크립트내에서 변수가 변동되면, 템플릿과 연결된 화면이 자동으로 갱신되는는 장점.
- 손쉽게 싱글 페이지 어플리케이션을 개발을 할 수 있는 장점.
- 템플릿 엔진 자체가 너무 강력하다 보니 초급자에게 성능 저하 문제를 파악하는데 많은 어려움이 있습니다.

EmberJS
- 애플 icloud를 개발하던 엔지니어가, 제품을 만들다 제작한 프레임워크를 오픈소스로 공개한 후, 회사를 나와 오픈소스 회사를 운영하며 탄생하게된 프레임워크 입니다
- 장점은 초기에 CLI(command line interface)를 제공하여,
콘솔명령어로 쉽게 초기 파일을 자동으로 구성해주며,
addon시스템을 도입하여, 설치 명령어를 통해서 손쉽게 서비스에 추가할 수 있습니다

React
- 페이스북 오픈소스 프로젝트이자 최근에 가장 많은 관심을 받고 있는 React.
- 특징은 다른 프레임워크와 비교에 성능이 빠르다는 점이고 용량 역시 가볍습니다
- 프레임워크라기보다는 뷰(View) 라이브러리에 가까우며,
리액트 하나로 모든것을 구현하기에는 데이터 전송 및 관리가 어려워,
초기에는 flux라는 데이터 처리 라이브러리를 조합하였는데,
현재는 리덕스(Redux)라고 하는 React + Flux 데이터 처리 라이브러리를 조합하여 많이 사용합니다

webpack, gulp, grunt
패키지 관리 라이브러리인 등.

jest, mocha, qunit, jasmine
테스트 프레임워크 등.

1. javascript/ES5/6 언어 문법
2. HTML/CSS
3. CSS 구조화 (Less & Sass)
4. 반응형 디자인 (Responsive Design)
5. 싱글 페이지 앱 프레임워크 (angularjs, backbonejs, react, emberjs, …)
6. 리덕스 및 미들웨어 (redux, redux-thunk, redux-saga, redux-observable, …)
7. 디자인 패턴 (MVC등 소프트웨어 디자인 패턴 관련)
8. AMD (Asynchronous Module Definition: commonJS, requireJS, ES modules)
9. 노드 서버 및 서버 프로그래밍 (NodeJS)
10. 패키징 및 배포 자동화 (Task Runners: Grunt, Gulp, webpack, browerify)

[프로에게 묻다 2] 자바스크립트의 세계


만약 박근혜가 탄핵을 당하지 않고, 무사히(?) 임기를 마쳤다면 어떻게 됐을까 생각해봤다. by youmin3

만약 박근혜가 탄핵을 당하지 않고, 무사히(?) 임기를 마쳤다면 어떻게 됐을까 공상해봤다.

그러면, 새누리당도 쪼개지지 않았을 거고,
경선을 했겠지만 가능성은 어떨지 모르지만 홍준표가 대통령 후보가 됐을 수도 있다.

결과적으로 홍준표, 문재인, 안철수, 심상정 등 이 출마했을 것이고.
문재인과 안철수가 서로 진보표를 끌어가면서 공멸하고,
홍준표가 대통령이 됐을 수도 있었을 거란 생각이든다.

이명박 - 박근혜 - 홍준표 로 이어지는 새누리 3대 체제로 가면서 진정한 헬한쿡이 완성 됐을거 같다는.


[사이버출판사]실무에 강한 엑셀 매크로와 VBA] 실무에강한엑셀VBA_예제파일과 색상표 by youmin3

[사이버출판사]실무에 강한 엑셀 매크로와 VBA] 실무에강한엑셀VBA_예제파일과 색상표
Excel_VBA_example.zip


[사이버출판사]실무에 강한 엑셀 매크로와 VBA] 11장 고객 관리 프로그램 작성하기 by youmin3

1.     11장 고객 관리 프로그램 작성하기

1.1.     프로그램의 전체 구성도 살펴보기

1.1.1.     메인 화면 살펴보기

1.1.2.     신규 고객 등록하기

1.1.3.     조회 및 삭제하기

1.1.4.     전체 명단 조회하기

1.1.5.     프로그램 종료하기

 

1.2.     등록 폼과 조회 폼 작성하기

1.2.1.     신규 고객 등록 폼 작성하기

1.2.2.     고객 정보 조회 폼 작성하기

 

1.3.     폼과 워크시트 연결 프로시저 작성하기

1.3.1.     신규 등록 폼 이벤트 프로시저 작성하기

Private Sub UserForm_Initialize()

 

    Dim yyyy As Integer, mm As Integer, dd As Integer

   

    yyyy = Year(Now)

    mm = Month(Now)

    dd = Day(Now)

   

    txt = yyyy

    txt = mm

    txt = dd

   

    spn = yyyy

    spn = mm

    spn = dd

   

    With cbo거주지

        .AddItem "개포동"

        .AddItem "논현동"

        .AddItem "대치동"

        .AddItem "도곡동"

        .AddItem "삼성동"

        .AddItem "수서동"

        .AddItem "신사동"

        .AddItem "역삼동"

        .AddItem "청담동"

        .AddItem "기타"

    End With

 

End Sub

 

1.3.2.     날짜 입력 스핀 단추의 Change 이벤트 작성하기

Private Sub spn_Change()

    txt.Value = spn.Value

End Sub

 

Private Sub spn_Change()

    txt.Value = spn.Value

End Sub

 

Private Sub spn_Change()

    txt.Value = spn.Value

End Sub

 

1.3.3.     신규 등록 이벤트 프로시저 작성하기

Private Sub cmd등록_Click()

   

    Dim iRow As Integer

   

    iRow = Sheets("고객명단").Range("A1").CurrentRegion.Rows.Count + 1

   

    With Sheets("고객명단")

        .Cells(iRow, 1).Value = txt & "-" & txt & "-" & txt

        .Cells(iRow, 2).Value = txt성명

        .Cells(iRow, 4).Value = cbo거주지

        .Cells(iRow, 5).Value = txt전화

        .Cells(iRow, 6).Value = txt메일

       

        If opt = True Then

            .Cells(iRow, 3).Value = ""

        ElseIf opt = True Then

            .Cells(iRow, 3).Value = ""

        End If

   

        If chk헬스 = True Then

            .Cells(iRow, 7).Value = "●"

        End If

       

        If chk수영 = True Then

            .Cells(iRow, 8).Value = "●"

        End If

       

        If chk스쿼시 = True Then

            .Cells(iRow, 9).Value = "●"

        End If

    End With

   

End Sub

 

1.3.4.     신규 등록 이벤트 프로시저의 오류 해결하기

Private Sub cmd등록_Click()

   

    Dim iRow As Integer

   

    If txt성명 = "" Then

        MsgBox "성명이 입력되지 않았습니다"

        txt성명.SetFocus

        Exit Sub

    End If

   

    If cbo거주지.ListIndex = -1 Then

        MsgBox "거주지가 선택되지 않았습니다"

        cbo거주지.SetFocus

        SendKeys "{F4}"

        Exit Sub

    End If

   

    If chk헬스 = False And chk수영 = False And chk스쿼시 = False Then

        MsgBox "신청종목을 1개이상 선택해야 합니다"

        Exit Sub

    End If

   

    iRow = Sheets("고객명단").Range("A1").CurrentRegion.Rows.Count + 1

   

    With Sheets("고객명단")

        .Cells(iRow, 1).Value = txt & "-" & txt & "-" & txt

        .Cells(iRow, 2).Value = txt성명

        .Cells(iRow, 4).Value = cbo거주지

        .Cells(iRow, 5).Value = txt전화

        .Cells(iRow, 6).Value = txt메일

       

        If opt = True Then

            .Cells(iRow, 3).Value = ""

        ElseIf opt = True Then

            .Cells(iRow, 3).Value = ""

        End If

   

        If chk헬스 = True Then

            .Cells(iRow, 7).Value = "●"

        End If

       

        If chk수영 = True Then

            .Cells(iRow, 8).Value = "●"

        End If

       

        If chk스쿼시 = True Then

            .Cells(iRow, 9).Value = "●"

        End If

    End With

 

End Sub

 

1.3.5.     등록 폼의 컨트롤 초기화하기

Private Sub cmd등록_Click()

   

    Dim iRow As Integer

   

    If txt성명 = "" Then

        MsgBox "성명이 입력되지 않았습니다"

        txt성명.SetFocus

        Exit Sub

    End If

   

    If cbo거주지.ListIndex = -1 Then

        MsgBox "거주지가 선택되지 않았습니다"

        cbo거주지.SetFocus

        SendKeys "{F4}"

        Exit Sub

    End If

   

    If chk헬스 = False And chk수영 = False And chk스쿼시 = False Then

        MsgBox "신청종목을 1개이상 선택해야 합니다"

        Exit Sub

    End If

   

    iRow = Sheets("고객명단").Range("A1").CurrentRegion.Rows.Count + 1

   

    With Sheets("고객명단")

        .Cells(iRow, 1).Value = txt & "-" & txt & "-" & txt

        .Cells(iRow, 2).Value = txt성명

        .Cells(iRow, 4).Value = cbo거주지

        .Cells(iRow, 5).Value = txt전화

        .Cells(iRow, 6).Value = txt메일

       

        If opt = True Then

            .Cells(iRow, 3).Value = ""

        ElseIf opt = True Then

            .Cells(iRow, 3).Value = ""

        End If

   

        If chk헬스 = True Then

            .Cells(iRow, 7).Value = "●"

        End If

       

        If chk수영 = True Then

            .Cells(iRow, 8).Value = "●"

        End If

       

        If chk스쿼시 = True Then

            .Cells(iRow, 9).Value = "●"

        End If

    End With

   

    txt성명.Value = ""

    cbo거주지.ListIndex = -1

    txt전화.Value = ""

    txt메일.Value = ""

    chk헬스.Value = False

    chk수영.Value = False

    chk스쿼시.Value = False

 

End Sub

 

1.3.6.     메인 화면 시트에서 등록 폼 실행 단추 작성하기

Sub Button20_Click()

 

    frm등록.Show

 

End Sub

 

1.3.7.     조회 프로시저 작성하기

Option Explicit

 

    Public fRow As Integer

 

Sub 고객조회()

 

    Dim inFind As String

    Dim mySh As Worksheet

   

    Set mySh = Sheets("고객명단")

   

    inFind = InputBox("찾고자 하는 고객의 성명을 입력하세요")

    fRow = Application.Match(inFind, Range("고객성명"), 0)

   

    With frm조회

        .txt2일자.Value = mySh.Cells(fRow, 1).Value

        .txt2성명.Value = mySh.Cells(fRow, 2).Value

        .txt2성별.Value = mySh.Cells(fRow, 3).Value

        .txt2거주지.Value = mySh.Cells(fRow, 4).Value

        .txt2전화.Value = mySh.Cells(fRow, 5).Value

        .txt2메일.Value = mySh.Cells(fRow, 6).Value

    End With

   

    If mySh.Cells(fRow, 7).Value = "●" Then

        frm조회.lst2종목.AddItem "헬스"

    End If

   

    If mySh.Cells(fRow, 8).Value = "●" Then

        frm조회.lst2종목.AddItem "수영"

    End If

   

    If mySh.Cells(fRow, 9).Value = "●" Then

        frm조회.lst2종목.AddItem "스쿼시"

    End If

   

    frm조회.Show

   

End Sub

 

1.3.8.     Tip. Match 워크시트 함수 살펴보기.

Match 함수는 엑셀VBA 함수는 아니고, 엑셀 워크시트 함수.

Match ( Lookup_value, Lookup_array, Match_type )

Lookup_value 찾으려는 값을 입력. 숫자, 문자열, 논리값과 같은 값 또는 값의 셀 참조 영역을 지정.

Lookup_array 찾으려는 값을 포함하는 참조 영역 (셀 범위)을 입력.

Match_type 참조 영역에서 찾는 방법을 지정하는 숫자로 -1, 0, 1 세가지가있음, 생략하면 1로 간주.

1

찾으려는 값보다 작거나 같은 값 중에서 최대값을 찾는다

0

찾으려는 값과 같은 첫 번째 값 (여러 개의 같은 값이 있을 경우)을 찾음.
만약 값이 없을 경우는 오류가 발생.

-1

찾으려는 값보다 크거나 같은 값 중에서 최소값을 찾는다.

 

1.3.9.     조회 프로시저의 오류 해결하기

Option Explicit

 

    Public fRow As Integer

 

Sub 고객조회()

 

    Dim inFind As String

    Dim mySh As Worksheet

   

    Set mySh = Sheets("고객명단")

   

    inFind = InputBox("찾고자 하는 고객의 성명을 입력하세요")

   

    If inFind = "" Then

        MsgBox "찾고자 하는 고객성명이 입력되지 않았습니다"

        Exit Sub

    End If

   

    On Error Resume Next

   

    fRow = Application.Match(inFind, Range("고객성명"), 0)

   

    If Err.Number = 13 Then

        MsgBox "입력한 고객은 등록되어 있지 않습니다"

        Err.Clear

        Exit Sub

    End If

   

    With frm조회

        .txt2일자.Value = mySh.Cells(fRow, 1).Value

        .txt2성명.Value = mySh.Cells(fRow, 2).Value

        .txt2성별.Value = mySh.Cells(fRow, 3).Value

        .txt2거주지.Value = mySh.Cells(fRow, 4).Value

        .txt2전화.Value = mySh.Cells(fRow, 5).Value

        .txt2메일.Value = mySh.Cells(fRow, 6).Value

    End With

   

    If mySh.Cells(fRow, 7).Value = "●" Then

        frm조회.lst2종목.AddItem "헬스"

    End If

   

    If mySh.Cells(fRow, 8).Value = "●" Then

        frm조회.lst2종목.AddItem "수영"

    End If

   

    If mySh.Cells(fRow, 9).Value = "●" Then

        frm조회.lst2종목.AddItem "스쿼시"

    End If

   

  '  mySh.Cells(fRow, 1).Select

   

    frm조회.Show

   

End Sub

 

1.3.10.   메인 화면에 <조회 및 삭제> <전체 고객명단> <프로그램 종료> 단추 작성하기

Sub Button22_Click()

 

    Sheets("고객명단").Select

 

End Sub

 

Sub Button23_Click()

 

    ThisWorkbook.Save

    ThisWorkbook.Close

   

End Sub

 

1.3.11.   등록 폼의 <회원 조회> <취소> 단추 이벤트 프로시저 작성하기

Private Sub cmd조회_Click()

    Unload Me

    Call 고객조회

End Sub

 

Private Sub cmd취소_Click()

    Unload Me

End Sub

 

1.3.12.   조회 폼의 <회원삭제> <취소> <신규등록화면> 단추 이벤트 프로시저 작성하기

Private Sub cmd2삭제_Click()

 

    If MsgBox(Me.txt2성명 & " 고객의 정보를 삭제하겠습니까", vbYesNo) = vbYes Then

        Sheets("고객명단").Cells(fRow, 1).EntireRow.Delete

        Unload Me

    End If

   

End Sub

 

Private Sub cmd2취소_Click()

    Unload Me

End Sub

 

Private Sub cmd2등록_Click()

 

    Unload Me

    frm등록.Show

End Sub

 

1.3.13.   Tip. 엑셀 VBA 커뮤니티 공간 사용하기

http://www.officetutor.co.kr/

 


1 2 3 4 5 6 7 8 9 10 다음