GUI(Graphic User Interface)같은 프로그래밍을 할 때, Event Driven Programming을 하게 됩니다. 예를 들어서 마우스 클릭 같은 이벤트 말이죠. 그런 이벤트가 일어나면 그 사실을 프로그램에게 알려줄 주체가 필요합니다. 그렇게 이벤트가 일어났음을 Callback 해주는 것이 바로 delegate(대리자)입니다.
Delegate는 특정메소드에 대한 참조를 가지고 있다가 이벤트 발생 시 메소드를 호출해 줍니다.
전체 페이지뷰
2016년 12월 28일 수요일
2016년 12월 27일 화요일
C# Exception Handling
프로그램 실행 중 비정상적인 상황이 발생하면 CLR에게 던져진 에러메세지를 받아 출력하고 프로그램은 강제 종료됩니다. 이런 상황을 처리하는 방법에 대해 알아보도록 하겠습니다. 그런데 왜 에러가 안 나게 하는 법을 배우지 않고 에러를 처리하는 법을 배우는거냐고요? 가장 훌륭한 프로그래머들이 모여 가장 최첨단의 프로그램을 만드는 Microsoft에서 만든 윈도우도 에러가 나서 죽거나 멈추거나 하지 않습니까?
가장 나쁜 경우는 예외가 발생했을 때 처리되지 못하고 이유도 모른 채 죽어버리는 거죠.
그런 경우를 막는 것이 이번 배움의 목표 되겠습니다.
대문, 처음 페이지 만들기
이제 어떤 사이트를 클릭했을 때 나타나는 첫 페이지인 홈페이지를 만들겠습니다.
여기서는 저에게는 완전히 미지의 영역인 UI "디자인"이 중요하므로 HTML, 자바스크립트, 스타일시트 등의 지식이 필요하다고 합니다.
여기서는 저에게는 완전히 미지의 영역인 UI "디자인"이 중요하므로 HTML, 자바스크립트, 스타일시트 등의 지식이 필요하다고 합니다.
2016년 12월 23일 금요일
C# Generic
제네릭은 C# 2.0부터 CLR에 포함되었습니다. 형식 매개 변수라는 개념을 통해 하나 이상의 형식에 대한 메소드 등을 정의하고 인스턴스가 생성될 때에 형식을 정해주어, 불필요한 박싱을 피하고 런타임에 형식을 캐스팅하는 위험을 덜어주는 방법입니다.
2016년 12월 21일 수요일
C# Collection, Indexer
.NET 프레임워크는 배열 말고도 많은 데이터 모음에 대한 자료구조를 제공합니다.
그 중에서 ArrayList, Queue, Stack, Hashtable 에 대해서 간략히 알아보겠습니다.
(제너릭에 해당하는 List 등은 다음에 알아보겠습니다. 제너릭은 정해진 형식만을 취급할 수 있고 지금 말하는 형식은 Object에 해당하여 아무 형식이나 다 가능합니다.)
System.Collections 네임스페이스를 사용합니다.
C# Property
OOP의 기본 중에 은닉성을 보장하기 위해 지금까지 우리는 마치 C++이나 자바처럼 private이나 protected 한정자로 필드를 숨기고, 이 필드에 접근하는 메소드를 public으로 공개하여 필드를 다루는 방법을 써 왔습니다. 그러나 C#에서는 좀 더 쉽게 이런 방법을 구현할 수가 있고 이것을 property라 부릅니다.
2016년 12월 20일 화요일
C# Interface
공부하면서 가장 궁금했던게 interface의 용법이었습니다.
여기저기 검색해봐도 필요하다...필수적이다..때에 따라 필요하다..디자인패턴을 알면 반드시 필요함을 알게 될거다...우리 팀에서는 금기시 했다...등 다들 대답이 제각각이어서 감을 잡기 어려웠습니다.
2016년 12월 16일 금요일
2016년 12월 14일 수요일
C# Class, Part 1
C#은 객체 지향용 언어입니다. 우리는 어떠한 사물을 프로그래밍으로 구현하기 위해 그 사물의 이름, 크기 등의 속성과 행동양식을 설명해 줄 메소드를 작성합니다. 그렇게 표현된 개념을 클래스라 합니다.
C# Method
아직 데이터형 중 배열과 컬렉션에 대해서는 알아보지 않았지만, 그에 앞서 메소드(method, C에서는 함수라 불러왔던)에 대해서 공부하겠습니다. 컬렉션에는 인터페이스라는 개념이 들어가므로 선행 지식이 필요하다 생각되므로 좀 뒤에서 알아보기로 합니다.
Blog 앱 만들기 6, 템플릿 코딩
이제 지금까지 구현한 것들을 화면에 보여줄 템플릿을 코딩해야 합니다. 상당히 많습니다.
post_all.html, post_detail.html, post_archive.html, post_archive_year.html, post_archive_month.html, post_day_archive.html 의 6가지를 구현합니다.
post_all.html, post_detail.html, post_archive.html, post_archive_year.html, post_archive_month.html, post_day_archive.html 의 6가지를 구현합니다.
2016년 12월 13일 화요일
2016년 12월 12일 월요일
C# 연산자
산술연산자
연산자란 하나 이상의 피연산자에 적용되는 프로그램 요소입니다.
++나 new와 같이 하나에만 적용되는 것을 단항연산자,
산술연산자(+, -, *, /)와 같이 두개에 적용되는 것이 이항연산자,
그리고 조건연산자(?)는 유일한 삼항연산자입니다.
C# 형식변환(Type Conversion)
서로 다른 형식의 데이터 간의 변환에 대해 알아보겠습니다.
이 때 늘 염두에 두어야 할 것은 최대값, 최소값을 넘어가는 범위의 변환을 할 떄 생기는 오버플로우, 언더플로우입니다.
Blog 앱 만들기 4, URLconf 코딩
앞서 북마크 앱을 만들 때에 URLconf를 각각의 계층에 따로 만들어주는 것이 재사용 측면에서 유리하다고 했습니다. 따라서 이제부터 mysite/urls.py와 blog/urls.py의 두 곳으로 나누어서 작성하고, 나누지 않고 한군데에만 작성했던 북마크의 url도 두 군데로 나누어 주겠습니다.
2016년 12월 10일 토요일
C# 데이터형
프로그래밍이란 결국 데이터를 얻고 가공하여 새로운 정보를 얻는 일인것 같습니다.
그것을 잘 다루기 위해서 많은 데이터의 형식이 생겨납니다.
그러나 프로그래밍 언어들 중에서는 Python처럼 그 형식을 엄격하게 지정하지 않고 컴퓨터가 유추하게 하는 프로그램이 있는가 하면 C계열의 언어들처럼 강력하게 타입을 제한해 두는 경우가 있습니다.
C# 골격 이해하기
저는 앞으로 Visual studio 2015 community 버전을 Windows10 환경에서 사용하겠습니다.
다만 이 블로그에 글을 올릴 때 코드를 예쁘게 하기 위해 칼라스크립터라는 사이트를 이용하는데, 비주얼스튜디오 모양 설정이 없어서 서브라임으로 설정하니 색이 좀 다를 겁니다.
Blog 앱 만들기 3, Github에 작업 올리기
사실 진작에 github에 올렸어야 하는데 버릇이 되지 않다보니 잊고 있었습니다.
로직의 변경이 있을 때마다 올리는 것이 맞다고 배웠으니 예를 들어 모델의 변경, URLconf의 수정시 마다 했어야 했는데 많이 늦었죠. 지금이라도 한번 해보겠습니다.
로직의 변경이 있을 때마다 올리는 것이 맞다고 배웠으니 예를 들어 모델의 변경, URLconf의 수정시 마다 했어야 했는데 많이 늦었죠. 지금이라도 한번 해보겠습니다.
Blog 앱 만들기 2, 모델 코딩
앞서서 models.py 파일을 수정해 테이블을 정의해 봤습니다.
이제 이 테이블이 Admin사이트에 보이도록 하고 Admin 사이트의 모습도 좀 바꾸도록 하겠습니다.
이제 이 테이블이 Admin사이트에 보이도록 하고 Admin 사이트의 모습도 좀 바꾸도록 하겠습니다.
2016년 12월 9일 금요일
.NET과 C#
윈도우즈 업데이트를 하게 되면 Microsoft .NET 프레임워크가 함께 업데이트 됩니다.
저는 늘 저것이 뭐길래 버전이 어떻고 어떤 게임과 버전이 안 맞으니 업그레이드 하라는 건가...하는 생각을 해 왔는데, 이제야 알게 되었습니다. 참 무식합니다...ㅠㅠ
C# 공부를 시작하며
사실 저는 몇달전 C# 문법책을 사서 공부한 적이 있습니다. 그러나, 다른 모든 초보자 분들과 마찬가지로 '문법은 익혔는데 어떤 식으로 프로그램을 짜야할지 감이 안 잡힌다'는 증상에 시달리고 있습니다. 비록 어찌어찌 해서 Swift로 앱을 몇개 만들긴 했지만 그래도 현장에 있는 사람이 아니기 때문에 실제 프로젝트에선 어떻게 해야 하는가 궁금하고, 다른 강좌를 보다가도 다른 분들이 짜 놓은 코드를 보면 숨이 턱턱 막혀옵니다.
2016년 12월 7일 수요일
Bookmark 앱 만들기 4, 완성
이번에는 템플릿을 작성해 보겠습니다.
지금까지 모델을 만들고 conf를 설정하고 view를 작성했다면 이제 실제 화면에 보여지는 템플릿을 만드는 단계입니다. 앞서 bookmark_list.html, bookmark_detail.html이 생성된다고 했습니다. 이 두가지 파일을 구현해 보겠습니다.
지금까지 모델을 만들고 conf를 설정하고 view를 작성했다면 이제 실제 화면에 보여지는 템플릿을 만드는 단계입니다. 앞서 bookmark_list.html, bookmark_detail.html이 생성된다고 했습니다. 이 두가지 파일을 구현해 보겠습니다.
2016년 12월 6일 화요일
Regular expression with Python, Optimization Recommendations
지금까지 긴 시간동안 파이썬 정규표현식에 대해 살펴보았습니다.
이제 정규식을 최적으로 사용하기 위한 권장 사항을 가볍게 살펴보고 마칠까 합니다.
이제 정규식을 최적으로 사용하기 위한 권장 사항을 가볍게 살펴보고 마칠까 합니다.
Regular expression with Python, Look ahead
지금까지 우리는 문자를 매칭하는 방법들에 대해 배워왔습니다. 그러나 그것은 동시에 그것은 매칭된 문자들을 버리는 방법이기도 했습니다. 무슨 말인가 하면 특정 패턴에 한번 매칭된 문자들은 그 연산 내에서는 다시 비교될 수 없다는 것입니다.
2016년 12월 3일 토요일
Regular expression with Python, Grouping
Grouping
그룹핑은 매우 유용한 도구입니다.
1. qunatifier를 subgroup에 적용하기 편리합니다.
2. 전체 식으로부터 변형해야 할 정확한 부위를 지정할 수 있습니다.
3. 매칭된 패턴으로부터 정보를 얻어낼 수 있습니다.
4. 식 안에서 추출된 정보를 반복 사용할 수 있습니다.
Regular expression with Python, Module & Compile
Module Operation
re 모듈을 사용하는 두가지 유용한 메소드들을 확인해 봅시다.
2016년 12월 2일 금요일
Regular expression with Python, MatchObject
MatchObject
match, search, finditer의 방법을 통해 얻어진 결과물을 MatchObject라고 합니다.
지금부터 이 object를 다루는 법을 살펴 보겠습니다.
2016년 12월 1일 목요일
Regular expression with Python, Searching
Searching
RegexObject의 중요한 메소드들을 알아보겠습니다. 다른 언어들이 match만 있는 반면에 파이썬에는 match와 search의 두 가지 operation이 있음을 주목하시기 바랍니다.
2016년 11월 30일 수요일
Regular expression 3
Alternation
지금까지 하나의 문자 집합으로부터 한개의 문자를 일치시키는 법을 알아보았습니다.
이제부터 pipe 심볼 | 을 이용해서 좀 더 복합적인 예들을 알아보겠습니다.
Bookmark 앱 만들기 2
지금까지 슈퍼유저를 등록하여 Admin 사이트를 만들고,
간단한 북마크 테이블을 만들어 등록한 후, 모델을 데이터 베이스에 반영하고
어떻게 보여지는지를 확인해 봤습니다.
(여기까지가 MTV의 M, 즉 모델 단계라고 할 수 있습니다.)
간단한 북마크 테이블을 만들어 등록한 후, 모델을 데이터 베이스에 반영하고
어떻게 보여지는지를 확인해 봤습니다.
(여기까지가 MTV의 M, 즉 모델 단계라고 할 수 있습니다.)
2016년 11월 28일 월요일
Bookmark 앱 만들기1
사이트에 일단 bookmark를 추가해 보겠습니다.
그 전에, 어떤 모습으로 만들지 UI, 접속을 위한 URL, 서버에서 필요한 데이터 로직 등을 설계해야 하나 저는 아직 배우는 단계이므로 텍스트 위주의 북마크가 될 것입니다.
그 전에, 어떤 모습으로 만들지 UI, 접속을 위한 URL, 서버에서 필요한 데이터 로직 등을 설계해야 하나 저는 아직 배우는 단계이므로 텍스트 위주의 북마크가 될 것입니다.
2016년 11월 25일 금요일
알아두어야 할 기본 사항
계속해서 실습을 진행하기 전에, 미리 알아두어야 할 사항을 공부해 보겠습니다.
장고가 빠른 이유는 MTV(Model-Template-View)의 룰을 따른다고 합니다.
이는 앱개발 등에서 따르는 MVC(Model-View-Controller) 디자인 패턴과 유사한 방식입니다.
장고가 빠른 이유는 MTV(Model-Template-View)의 룰을 따른다고 합니다.
이는 앱개발 등에서 따르는 MVC(Model-View-Controller) 디자인 패턴과 유사한 방식입니다.
2016년 11월 23일 수요일
Write your first Django App, part 1
Requests and Responses
장고 걸스 튜토리얼, 장고 공식 튜토리얼, 김석훈 님이 지으신 "파이썬 웹 프로그래밍: 실전편" 도서를 참고하여 공부를 진행해 보겠습니다.
장고 걸스 튜토리얼, 장고 공식 튜토리얼, 김석훈 님이 지으신 "파이썬 웹 프로그래밍: 실전편" 도서를 참고하여 공부를 진행해 보겠습니다.
Installation Django
1. Python 설치.
당연하게도 파이썬을 먼저 설치해야 합니다.
저는 이미 3.5.2 버전의 파이썬이 설치되어 있으므로 넘어가겠습니다. 파이썬에는 SQLite라고 하는 경량의 데이터베이스가 내장되어 있어 아주 큰 데이터베이스(MySQL, Oracle과 같은...)가 필요한 경우가 아니라면 더 이상 데이터베이스 설치가 필요치 않습니다.
당연하게도 파이썬을 먼저 설치해야 합니다.
저는 이미 3.5.2 버전의 파이썬이 설치되어 있으므로 넘어가겠습니다. 파이썬에는 SQLite라고 하는 경량의 데이터베이스가 내장되어 있어 아주 큰 데이터베이스(MySQL, Oracle과 같은...)가 필요한 경우가 아니라면 더 이상 데이터베이스 설치가 필요치 않습니다.
Django Python Web framework 를 시작하며...
Pull Request
내가 forking하여 참여하고 있던 프로젝트 상에서,
나는 새로운 작업을 하여 올리기로 하였다. 그러나 내가 올리기만 하면 바로 원격상의master가 변경되는 것은 옳지않다. 잘못된 내용이 있을 수 있고, 프로젝트의 전체 방향과 맞지 않을 수도 있다.
Git fetch
Github을 이용해 협업을 하던 중에,
나는 내 컴퓨터에서 새로운 부분을 작성해서 로컬 저장소 내에서 commit을 하였다.
아직 github에 push는 하지 않은 상태인데, 다른 작업자가 github에 새로운 내용을 push하였다면, 나의 커밋과 원격저장소 내의 커밋이 다른 상태가 된다.
2016년 11월 22일 화요일
Forking
여기서부턴 협업에 관한 내용이다. 솔직히 관련 일을 하지도 않고 실력도 일천하여 협업이라고는 꿈꿔본 적도 없는 나로서는 필요없는 기능이기는 하지만, 또 모르지 않은가..내 실력이 일취월장하여 거대 오픈소스 프로젝트에 참여한다던지 하는 날이 올지도.
그러나 사실 지금으로선 Github에 내 프로젝트가 보여진다는 것만으로도 얼굴이 붉어진다.
그러나 사실 지금으로선 Github에 내 프로젝트가 보여진다는 것만으로도 얼굴이 붉어진다.
Merge Conflicts
Udacity: How to use Git and Github
앞에서 두 개의 브랜치를 합치는(merge) 법과 원리를 알아보았다.
그럼, 다음의 경우를 생각해보자.
앞에서 두 개의 브랜치를 합치는(merge) 법과 원리를 알아보았다.
그럼, 다음의 경우를 생각해보자.
2016년 11월 21일 월요일
Branches
Udacity: How to use Git and Github
지금까지는 git이 한 줄로만 이어졌다. 그러나 도중에 다른 실험적인 기능을 시험해보거나, 다른 나라 언어 버젼으로 문서를 작성해 봐야 할 시점이 온다면 한 줄로만 이어갈수가 없게 된다.
지금까지는 git이 한 줄로만 이어졌다. 그러나 도중에 다른 실험적인 기능을 시험해보거나, 다른 나라 언어 버젼으로 문서를 작성해 봐야 할 시점이 온다면 한 줄로만 이어갈수가 없게 된다.
Working Directory, Staging area, Repository간의 비교
Udacity: How to use Git and Github
실제 버그를 잡고 다시 커밋하는 과정에서 우리는 여러 단계를 오가게 된다.
실제 버그를 잡고 다시 커밋하는 과정에서 우리는 여러 단계를 오가게 된다.
2016년 11월 19일 토요일
Udacity:How to use Git and Github - commit message
지금까지 git add하여 staging area에 commit할 파일들을 등록하였다.
이제 repo에 commit 하여 보자.
이제 repo에 commit 하여 보자.
2016년 11월 18일 금요일
2016년 11월 17일 목요일
윈도우즈 환경에서 git bash workspace를 위한 설정 몇 가지
Udacity: How to use Git and Github
Home directory:
git bash가 열릴 때 시작하는 곳. cd ~ 커맨드를 사용하면 바로 이동할수 있다.
Home directory:
git bash가 열릴 때 시작하는 곳. cd ~ 커맨드를 사용하면 바로 이동할수 있다.
2016년 11월 16일 수요일
Cloning and Exploring The Repo
Udacity:How to use Git and Github
Github에 올려진 repository로부터 프로젝트를 클로닝 해서 내 컴퓨터로 옮겨 오고 관찰해 보자.
Github에 올려진 repository로부터 프로젝트를 클로닝 해서 내 컴퓨터로 옮겨 오고 관찰해 보자.
How to Use Git and GitHub을 위한 workspace 설정
How to Use Git and GitHub을 위한 workspace 설정
계속해서 Udacity: How to use git and Github 강의를 따라가고 있는 중.
sublime text 3 설치 및 git bash에서 직접 띄우기
Sublime Text
sublime text 3의 설치와 설정
다음으로 텍스트 에디터인 sublime Text 3를 설치해본다.
이미 코딩용 IDE로 다른 제품을 쓰고 있는데 왜 굳이 sublime text를 설치하라고 하는가?
2016년 7월 27일 수요일
2016년 7월 6일 수요일
about Tubing Nylon App(IOS)
2016년 6월 17일 금요일
피드 구독하기:
글 (Atom)