달력

12014  이전 다음

brew node

JavaScript 2014. 1. 27. 21:10
MacBook-Pro:~ kenu$ node --version
-bash: node: command not found
MacBook-Pro:~ kenu$ brew link node
Linking /usr/local/Cellar/node/0.10.24... Warning: Could not link node. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/node/0.10.24/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/zlib.js
Target /usr/local/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/zlib.js already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name
MacBook-Pro:~ kenu$ brew link --overwrite node
Linking /usr/local/Cellar/node/0.10.24... 1190 symlinks created
MacBook-Pro:~ kenu$ node --version
v0.10.24
MacBook-Pro:~ kenu$ npm --version
1.3.21


Posted by 케누 kenu허광남
TAG brew

댓글을 달아 주세요

jQuery 1.11, 2.1 출시

JavaScript 2014. 1. 27. 20:34

http://blog.jquery.com/2014/01/24/jquery-1-11-and-2-1-released/


하이라이트

1. 클래스 변경 시 성능향상

2. 세세하게 모듈화된 jQuery 커스텀 빌드

3. 시작 오버헤드 낮춤

4. npm 통해서 배포 https://npmjs.org/package/jquery/

  npm install jquery 로 설치 가능

  npm install jquery@1.11

5. bower 통해서 배포

  bower install jquery 로 설치 가능

6. 기본 배포시 map 호출 제거



image from: http://teerapuch.wordpress.com/2011/09/13/intro-jquery-วิธีเริ่มต้นกับ-jquery/


Posted by 케누 kenu허광남
TAG jQuery

댓글을 달아 주세요

Error와 Exception

java 2014. 1. 26. 13:56

자바의 Error는 프로그램의 실행을 이어가도록 조치할 수 없는 상황입니다.

Exception은 프로그램에서 조치가 가능한 경우입니다.

IOException과 같이 반드시 코드에서 처리를 해줘야하는 CheckedException 계열이 있고,

RuntimeException과 그 상속받은 예외들처럼 코드 상에서 반드시 처리를 하지 않아도 되는 UncheckedException 계열로 나눌 수 있습니다.




try catch finally 명령을 통해서 예외를 처리하거나, 메소드 시그너처에서 노출합니다. 그 메소드를 부르는 상위 메소드에서 처리하도록 강제하는 것입니다.




package net.okjsp.java;

public class ExceptionTest {

	public static void main(String[] args) {
		divide(30, 5);
		try {
			//divide(30, 0);
			divide2(3, 0);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			System.out.println("반드시 실행되는 코드");
		}
	}

	private static void divide(int a, int b) {
		int c = a / b;
		System.out.println(c);
	}

	private static void divide2(int a, int b) throws Exception {
		if (b == 0) {
			throw new Exception("0으로 나눌 수 없습니다.");
		}
		int c = a / b;
		System.out.println(c);
	}

}


Posted by 케누 kenu허광남

댓글을 달아 주세요

http://alexgorbatchev.com/SyntaxHighlighter 사이트에서 syntaxhighlighter_3.0.83.zip 파일을 다운로드 받고, 압축을 해제합니다. index.html 파일을 실행해서 소스를 참고하면 좋습니다.


관리자 화면에서 HTML/CSS 메뉴 선택합니다. 


이 4줄은 다운로드받은 패키지의 index.html 소스를 참고했습니다.

<script type="text/javascript" src="./images/shCore.js"></script>

<script type="text/javascript" src="./images/shBrushJScript.js"></script>

<link type="text/css" rel="stylesheet" href="./images/shCoreDefault.css">

<script type="text/javascript">SyntaxHighlighter.all();</script>


Hello SyntaxHighlighter

function helloSyntaxHighlighter()
{
	return "hi!";
}


저장을 누르고, 파일업로드 탭을 눌러서 해당 파일을 업로드합니다.



shCore.js는 scripts 폴더와 src에 있습니다. 업로드할 파일은 scripts/shCore.js 입니다.




Posted by 케누 kenu허광남

댓글을 달아 주세요

가장 많이 사용하는 ArrayList와 HashMap의 근본입니다.



다이어그램 읽기

삼각형 실선은 상속(extends), 삼각형 점선은 구현(implements), 그리고 화살표는 사용(has)입니다.

SortedMap<K,V>는 Map<K,V>를 상속하고,

public interface SortedMap<K,V> extends Map<K,V> 


HashMap<K,V>는 Map<K,V>를 구현했습니다.

public class HashMap<K,V>

    extends AbstractMap<K,V>

    implements Map<K,V>, Cloneable, Serializable


HashMap<K,V>는 Set<E>를 필드로 사용하고 있습니다.

    private transient Set<Map.Entry<K,V>> entrySet = null;



UML class diagram은 ObjectAid 이클립스 플러그인을 사용했습니다.

http://www.objectaid.com/

site-url : http://www.objectaid.net/update


간단 플러그인 사용법

ctrl+N > class 필터 > Class Diagram 선택

model.ucls 파일 생성

클래스를 끌어서 ucls 파일에 놓으면 생성

show attributes > none

show operations > none

Layout Diagram 정렬


Add > Java Classifier : 클래스명으로 추가


아웃라인 기능




objectaid 플러그인에서 Sequence Diagram은 라이선스가 있어야 됩니다. Class Diagram만 무료로 사용할 수 있습니다.





IntelliJ IDEA에서는 클래스 선택하고 ctrl+alt+U 로 UML을 바로 볼 수 있네요. 무료버전인 Community Edition에서도 가능합니다.

이클립스처럼 따로 플러그인을 설치하지 않아도 되는 편한 기능입니다.

http://www.jetbrains.com/idea/features/uml_class_diagram.html


Posted by 케누 kenu허광남

댓글을 달아 주세요

Java Templates 사용하기

java 2014. 1. 22. 15:05

이클립스에서 sysout 입력하고 ctrl+space를 치면 System.out.println(""); 코드가 자동으로 완성됩니다.

날짜 시간을 기록하는 dtlog 라는 것을 만들어 보겠습니다.


Quick Access(ctrl+3)에서 templates로 검색해서 Templates - Java/Editor를 선택합니다. 


sysout도 이곳에 설정되어 있습니다. New... 버튼을 클릭합니다.



dtlog를 입력하고 Pattern:에 ${date} ${time} 을 입력합니다.


이제 코드에서 dtlog라고 입력하고 ctrl+space를 입력하면 현재 날짜와 시간이 기록됩니다.



더 많은 옵션들이 스택오버플로우에서 공유되고 있습니다.

http://stackoverflow.com/questions/1028858/useful-eclipse-java-code-templates

Posted by 케누 kenu허광남

댓글을 달아 주세요

따옴표를 다시 바꾸려면 귀찮은 작업인데, 옵션을 이제야 찾았습니다.


프로그래밍에는 곧은 따옴표가 좋습니다.




Posted by 케누 kenu허광남

댓글을 달아 주세요

http://www.slideshare.net/yearinreview/kenu/qPYAAA


더 열심히 활동하고 싶은 자극을 주는 통계페이지입니다.




Posted by 케누 kenu허광남

댓글을 달아 주세요

강사: 허광남(kenu)

약력

  • OKJSP.net 공동대표 (since 2000.12.05)
  • 2012, 2013, 2014 전자정부 표준프레임워크 에반젤리스트
  • afreeca.com/kenuheo 프로그래밍 방송 운영(since 2013.10.20)
  • Eclipse 협업, 모바일, 클라우드 서버 활용 관련 세미나 발표

주요 프로젝트

  • 월드컵앱 힘내라 대한민국 개발 2010
  • GS홈쇼핑 사이트 개편 프로젝트 2006
  • 삼성생명 고도화 프로젝트 2004

저서

  • 플랫폼을 말하다(2012) 공동집필
  • 나는 프로그래머다(2004) 공동집필
  • 모델2로 다시 배우는 JSP(2003) 공동집필

Java Platform Web Service 개발 (1~2 개월)

교육 대상

  • 신입 개발자
  • 자바 플랫폼 초심자

학습 목표

  • 원하는 기능 구현이 가능하게 한다.
  • 자바 플랫폼을 이해하고, 관련 라이브러리를 활용할 수 있다.
  • 자바 개발 도구의 기능을 잘 이용할 수 있다.
  • 디버깅 기능을 활용해서 문제 해결 능력을 높인다.

전체 과정

과목교육시간비고
Java40Heclipse, git 포함
Servlet / JSP40Htomcat
Spring FrameWork40Hspring 3.x
TDD16HJUnit
HTML540Hhtml5rocks.com
JavaScript24HECMAScript5
jQuery24HjQuery 1.10
node.js40Hnode platform
Google App Engine16HPaaS
총계280H(7주)

Java

  • JVM, 자바 플랫폼 개요
  • 개발환경(jdk7, eclipse)
  • 기본 데이터 타입
  • 명령문, 메소드, 클래스, 패키지
  • JAR 자바 라이브러리
  • 객체지향 프로그래밍
  • 예외 처리
  • Generics, Annotation
  • 배열과 콜렉션 프레임워크
  • 데이터 저장과 관리
  • JDBC
  • 파일 입출력
  • 소켓 통신

Servlet / JSP

  • 서버 클라이언트 환경의 이해
  • HTTP, HTML
  • 자바 웹 개발 환경
  • 동적으로 HTML을 만드는 법
  • 표현식(expressions)
  • 스크립틀릿(scriptlets)
  • 지시자(directives)
  • 선언(declarations)
  • jsp action
  • 태그
  • 세션
  • 빈(beans)
  • JSTL

Spring FrameWork

  • 스프링 프레임워크 개요
  • 스프링 개발환경 STS
  • Inversion of Control / Dependency Injection
  • 스프링 빈, Core
  • Context
  • 스프링 웹MVC
  • Maven, Gradle 빌드 도구의 이해
  • 스프링 JDBC, MyBatis/iBatis
  • Aspect Oriented Programming
  • Advice, Pointcut, Weaving
  • Portable Service Abstractions
  • 스프링 모듈 소개

TDD

  • 이클립스에서 지원하는 테스트케이스
  • JUnit 이해하기
  • 테스트케이스와 리팩토링
  • Findbugs 플러그인을 통한 품질향상
  • JUnit과 Findbugs의 지속적인 리포트
  • Selenium을 이용한 웹 UI 레코딩 테스트

HTML5

  • HTML5 개요
  • HTML5 개발환경
  • 오프라인 기능
  • 스토리지
  • 파일 처리
  • 하드웨어 접근
  • 웹소켓
  • 그래픽
  • 멀티미디어
  • HTML5 새로운 마크업
  • CSS3 Effect
  • HTML5 미니 프로젝트
  • 오픈API 활용
  • 목록과 상세 구현

JavaScript

  • JavaScript 개발 환경 설치
  • 자바스크립트 객체 표기법
  • 객체와 배열
  • 데이터 타입
  • 연산자
  • 제어문
  • 함수 객체지향 프로그래밍
  • 내장 객체와 브라우저 객체 모델
  • DOM과 이벤트
  • 예외처리
  • 자바스크립트 디버깅

jQuery

  • javascript basic and tools
  • jQuery 개요
  • jQuery 셀렉터
  • jQuery 이벤트
  • jQuery ajax
  • jQuery utility
  • jQuery plugin
  • jQuery UI
  • jQueryMobile
  • JS TDD, QUnit

node.js

  • node.js 개요
  • 이벤트 루프
  • 서버사이드 자바스크립트 개발환경 설치
  • 모듈 만들고 참조하기
  • npm 을 통한 확장
  • expressjs 웹 프레임워크
  • socket.io 모듈
  • 데이터베이스 연결
  • node.js PaaS 활용 - heroku

Google App Engine

대상

  • 자바/JSP로 만든 웹앱을 무료로 테스트하기 원하는 분
  • 구글의 자원을 이용해서 쉽게 웹서비스를 만드실 분
  • 클라우드 시스템 기반에서 서비스 개발을 필요로 하는 분
  • PaaS에 대해 관심있으신 분

커리큘럼

  • PaaS와 구글 앱 엔진 개요
    • Platform as a Service 이해
    • 구글 앱 엔진의 특징
    • GAE 개발 환경 설정
  • 개발 라이프사이클
    • 웹앱 생성과 관리
    • 개발,테스트,배포
  • 데이터베이스 이용하기
    • JPA를 이용한 코딩
    • GAE MySQL 활용
  • 구글 자원 활용하기
    • 구글 계정 인증 활용
    • 메일 자원 활용
    • 구글톡 메시지 연결
  • GAE 관리자 모드
    • 웹앱 관리하기
    • 빌링과 과금

Mobile App(Android) 개발 (1~2 개월)

교육 대상

  • 신입 개발자
  • 자바 플랫폼 초심자

학습 목표

  • 원하는 기능 구현이 가능하게 한다.
  • 자바 플랫폼을 이해하고, 관련 라이브러리를 활용할 수 있다.
  • 자바 개발 도구의 기능을 잘 이용할 수 있다.
  • 디버깅 기능을 활용해서 문제 해결 능력을 높인다.

전체 과정

과목교육시간비고
Java40Heclipse, git 포함
Android SDK 기본40H
Android SDK 고급40H
Android 프로젝트40H
Mobile Web40H
총계200H(5주)

Java

상기 내용과 동일

Android SDK

  • 안드로이드 개요
    • 안드로이드 개발환경
    • 안드로이드 에뮬레이터
  • 안드로이드 4.x 디자인
  • 안드로이드 Manifest
    • 안드로이드 액티비티
    • 서비스 살펴보기
    • 브로드캐스트 리시버
    • 콘텐트 프로바이더
    • 인텐트, 인텐트 필터
  • 안드로이드 인터페이스 구성
  • 뷰/뷰 컨테이터
    • 레이아웃
  • 안드로이드 위젯
    • 스타일과 테마
    • 버튼
    • 에디트텍스트
    • 스피너 등
    • 메뉴
    • 환경설정
    • 다이얼로그
    • 토스트
  • 파일 활용
  • 로컬 데이터베이스 활용
  • 원격 JSON 데이터 처리
  • 원격 XML 처리
  • 위치 정보 활용
    • 구글 맵 활용
  • 네트워크 활용
  • 전화 제어
    • SMS 송신 및 수신
  • Notification
  • 구글 클라우드 메시지 GCM
  • 멀티미디어 처리
  • 카메라
  • 게임 엔진 개요, Cocos2D-X

Mobile Web

  • 모바일 웹과 모바일 앱
  • jQueryMobile
  • Sencha Touch
  • 폰갭 빌드

기타 도구(상위 과정 기간에 포함)

Eclipse

  • 배포판 종류
  • 이클립스 아키텍처
  • 프로젝트 기반 개발
  • IDE 특징
  • 코드 네비게이션
  • 이클립스 플러그인
  • 마켓플레이스

Intelli J

  • 이클립스 환경과 비교
  • 단축키
  • IDE 특징
  • 코드 네비게이션
  • 플러그인

Git

  • 버전관리 시스템 개요
  • SVN과 비교
  • git 사용 환경
  • 기본 명령
  • git remote
  • git branch
  • GitHub 의 특징
  • BitBucket의 특징
  • 소스 트리 도구

Gradle

  • Maven 인프라의 이해
  • Maven과의 차이점
  • Gradle 기본 구조
  • Gradle 빌드의 장점
  • Jenkins와 연결

기타

  • 전자정부 표준프레임워크

  • Application Lifecycle Management

  • 구글 오피스 활용한 협업

  • 클라우드 환경에서의 개발 방법

  • Jenkins/Hudson 지속적인 통합 도구

  • 이클립스 기반의 협업 개발 방법

  • 코드 품질 검사 도구

교육문의

  • kenu.heo@gmail.com
  • 강의료는 시간당 10~30만원이며 교육 규모와 대상에 따라 조정 가능합니다.


Posted by 케누 kenu허광남

댓글을 달아 주세요

아직은 JDK8의 정식 버전이 나오지 않아서 이 화면을 보기 쉽지 않습니다.



eclipse 개발중인 다른 버전을 다운로드 받아서 JDK8을 테스트할 수 있습니다.

efxclipse는 e(fx)clipse 즉, JavaFX 개발용 패키지들이 포함된 이클립스입니다. 그래서 용량이 350MB 이상입니다.

http://downloads.efxclipse.org/eclipse-java8/


http://docs.oracle.com/javase/tutorial/java/javaOO/examples/RosterTest.java
http://docs.oracle.com/javase/tutorial/java/javaOO/examples/Person.java
두 소스는 JDK8 샘플입니다.
설명은 http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html 주소의 문서를 참고하세요.



Posted by 케누 kenu허광남

댓글을 달아 주세요