달력

12

« 2019/12 »



 

AOP(Aspect Oriented Programming)

·         AOP OOP 더욱 OOP 답게 만들어 있습니다. , OOP 지원해주는 개념입니다.

·         AOP OOP뿐만 아니라 기존의 절차적 프로그래밍에도 적용될 있습니다.

·         AOP 애플리케이션에서의 관심사(관점) 분리(기능의 분리) , 핵심적인 기능에서 부가적인 기능을 분리합니다. 분리한 부가기능을 애스펙트 (Aspect)라는 독특한 모듈형태로 만들어서 설계하고 개발하는 방법입니다.

·         OOP 적용하여도 핵심기능에서 부가기능을 분리된 모듈로 작성하기 어려웠던 문제점을 AOP 해결해 준다고 있습니다.

·         AOP 부가기능을 애스펙트(Aspect) 정의하여, 핵심기능에서 부가기능을 분리함으로써 핵심기능을 설계하고 구현할 객체지향적인 가치를 지킬 있도록 도와주는 개념입니다.

 

 

 

 

기존 방식

하나의 Application안에 핵심기능(Primary Concern) 부가기능(Cross-Cutting Concern) 함께 썩여있습니다.


 

 

 

 

AOP 적용 방식

·         비즈니스 로직을 구현한 부분인 핵심기능(Primary Concern) 보안, 인증등 부가기능(Cross-Cutting Concern) 분리할 있습니다.

·         부가기능을 Advice 정의해서 분리하고 핵심기능에 적용하기 위해 Point-Cut 정의합니다. Advice Point-Cut 묶어서 Aspect라고 합니다.

·         Advice Point-Cut 정규표현식에 의거해서 핵심기능에 적용하는 과정을 Weaving이라고 합니다.

 


 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

Module Counts

프로그램 모듈을 실시간으로 체크해서 그래프로 나타내주는 사이트 입니다.

http://www.modulecounts.com/


 

 

 

 

Node.js의 패키지/모듈 개수 확인

Node.js 50만 개 이상으로, 패키지/모듈을 지원하는 공동체에서 가장 급속도로 모듈이 증가하고 있는 것을 확인할 수 있습니다.


 

 

 

'Development > JavaScript, jQuery, ...' 카테고리의 다른 글

자바스크립트 strict 모드 문법  (0) 2020.02.03
this, this 키워드  (0) 2020.01.23
Module Counts, Node.js의 패키지/모듈 개수 확인  (0) 2019.12.31
JSON - 객체  (0) 2019.12.21
클라이언트 객체의 종류  (0) 2019.12.10
d3js  (0) 2019.12.05
Posted by codedragon codedragon

댓글을 달아 주세요



 

Step4.형상관리 도구의 설치를 수행한다.

 

 

Git 다운받아 해당 파일을 확인한다.

https://codedragon.tistory.com/3079

https://codedragon.tistory.com/8549

 


 

 

 

 

Git 설치를 진행한다.

다운받은 파일을 실행하고 안내에 따라 설치한다.

https://codedragon.tistory.com/3080

 


 

 

 

 

 

 

 

Git콘솔 실행 하기

https://codedragon.tistory.com/7124


 

 

 

 

 

 

 

Git 설치 관련 환경을 설정한다.

Git 설치를 완료한 이후에는 사용자 정보를 설정한다.

사용자 정보는 사용자의 이름과 e-mail 최우선으로 설정한다.

 

구분

설정방법

사용자 이름 설정

git config --global user.name "사용자 이름"

사용자 e-mail 설정

git config --global user.email "이메일 주소"

 

git config --global user.email "codedragon@tistory.com"

git config --global user.name "codedragon"

hbh1@hbh1-PC MINGW64 /c/CodeLab/gitLab/hellogit (master)

$ git config --global user.email "codedragon@tistory.com"

 

hbh1@hbh1-PC MINGW64 /c/CodeLab/gitLab/hellogit (master)

$ git config --global user.name "codedragon"

 

hbh1@hbh1-PC MINGW64 /c/CodeLab/gitLab/hellogit (master)

 

 

 

 

구분

설정방법

설정 확인

git config --list

 

git config --list

codedragon@CODEMASTER MINGW64 ~

$ git config --list

core.symlinks=false

core.autocrlf=true

core.fscache=true

color.diff=auto

color.status=auto

color.branch=auto

color.interactive=true

help.format=html

http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

diff.astextplain.textconv=astextplain

rebase.autosquash=true

user.name=CODEDRAGON

user.email=codedragon@tistory.com

core.autocrlf=true

http.postbuffer=1048576000

 

codedragon@CODEMASTER MINGW64 ~

$

 

 

 



'Development > Git, PM' 카테고리의 다른 글

PI 추진방법론  (0) 2020.01.13
Redmine과 GIT 연동시 고려사항  (0) 2020.01.06
Step4.형상관리 도구의 설치를 수행한다.  (0) 2019.12.31
데이터 아키텍처 프레임워크  (0) 2019.12.23
OSS 배포형태  (0) 2019.12.19
JIRA  (0) 2019.12.13
Posted by codedragon codedragon

댓글을 달아 주세요

 

getParameter() vs getAttribute()

구분

차이

getParameter()

·         return 값이 String 타입만이 가능 합니다.

·         스트링값을 다루기때문에 주로 쿼리스트링값등을 받들 때 사용합니다.

HTTP 요청 안에 폼태그로 입력한 내용들이 HTTP 요청의 파라미터(parameter)로 전달되어 집니다. HTTP 요청의 파라미터 값을 얻기 위해 request.getParameter() 메소드를 사용합니다.

getAttribute()

·         return 값으로 Object 타입 가능 즉 모든 객체를 담을 수 있습니다.

·         오브젝트 타입을 다루기때문에 자바빈객체나 뭐 다른클레스객체등을 받을때 사용합니다

 

 

getParameter()

Servlet -> JSP

Servlet

request.setParameter("name", "codedragon");

JSP

<% String name = request.getParameter("name"); %>

 

HTML -> Servlet (HTTP 요청)

HTML

<input type="text" name="id" size="10" maxlength="10">

Servlet

String id = request.getParameter("id")

 

 

getAttribute()

Servlet -> JSP

Servlet

request.setAttribute("name", strHobby);

JSP

<% String name = (String)request.getAttribute("name"); %>

 

 

 

Posted by codedragon codedragon

댓글을 달아 주세요



 

 

 

테스팅의 일반적인 원리

원리

설명

테스팅은 결함이 존재함을 밝히는 활동입니다.

·         결험이 발견되지 않는다해도 결함이 없다는 것은 증명할 없습니다.

완벽한 테스팅 불가능합니다.

·         리스크 분석과 결정된 우선순위에 테스팅을 집중해야 합니다.

·         모든 가능성을 테스트하는 것은 불가능합니다. (자원 한계, 무한한 조건/조합이 존재)

테스팅은 개발 초기 시작합니다.

·         개발 시작과 동시에 테스트를 계획, 전략적으로 접근해야 합니다.

결함 집중(Defect Clustering)

·         대다수의 결함들은 적은 수의 모듈에서 대다수의 결함이 발견됩니다.

살충제 패러독스(Pesticide Paradox)

·         동일한 테스트를 반복적으로 수행하면 버그를 찾기 힘듭니다.

·         동일한 테스트케이스로 반복 수행할 경우 새오운 결합을 찾을 없으므로 정기적인 테스트케이스 리뷰와 개선 필요합니다.

테스팅은 정황(Context) 의존적입니다.

·         정황과, 분야에 따라 다르게 테스트를 진행합니다.

·         효율적, 효과적 테스트 조직과 독립적 테스트 환경이 필요합니다.

오류-부재의 궤변(Absence of Errors Fallacy)

·         사용자 요구사항에 맞지 않는다면 결함을 찾고 수정하는 것은 무의미합니다. , 요구사항을 충족하지 못하면 결함을 모두 발견했다고(오류가 없더라도) 해도 품질이 높다고 없습니다.

 

https://codedragon.tistory.com/6531

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

\menu 폴더에 Menu resource file 파일(XML) 생성하기

·       \res\meu 폴더 생성

·       Menu resource file (Layout XML)추가 하기

 

 

 

 

\res\meu 폴더 생성

[res] 폴더 선택 마우스 우클릭 >> [New] >> [Directory]


 

 

"directory name" "menu" 입력 >> [OK]


 

 

menu 폴더생성 확인


 

 

 

 

 

 

 

 

 

 

Menu resource file (Layout XML)추가 하기

[menu] 폴더 선택 >> 마우스 우클릭 >> [New] >> [Menu resource file] 선택


 

 

파일명 입력 (main)>> [OK]


 

 

파일 생성 완료


 

 

main.xml

<?xmlversion="1.0"encoding="utf-8"?>

<menuxmlns:android="http://schemas.android.com/apk/res/android">

 

</menu>

 

 



Posted by codedragon codedragon

댓글을 달아 주세요



 

 

State Variable 접근 유형

접근 유형에는 다음과 같이 4가지 유형이 존재합니다.

 

 

private < internal < external < public

 

 

 

public

·         public으로 선언된 함수나 state 변수는 내부 호출 또는 message call 통해서 호출 또는 접근이 가능합니다.

·         public state 변수는 자동적으로 getter 함수가 생성됩니다.

 

 

 

 

 

external

·         external  스마트 계약  거래를 통해서 호출이 가능합니다.

·         external Internal 통해서 호출하는 대신 this 객체를 이용해서 외부 호출방식으로 내부호출도 가능합니다.

 

 

 

 

internal

·         Internal 선언된 함수  변수는 해당 contract 내부적으로만 접근이 가능합니다.

·          Contract  transaction, message call 통해서 호출  접근이 불가능합니다.

 

 

 

 

 

private

·         private 선언된 함수와 변수는 해당 스마트 계약에만 종속됩니다.

·         스마트 계약도 객체지향 언어의 일종으로 함수와 변수에 대한 정의를 상속(inheritance)  있습니다이때 private 선언된 함수와 변수는 상속이 되지 않습니다.

 



Posted by codedragon codedragon

댓글을 달아 주세요



 

 

 

CSV -> arff 파일 변환하기

Weka Explorer, Weka Workbench 에서 CSV 파일 불러온

[Save] 하여 arff 파일로 저장하면 쉽게 arff 파일로 변환할 있습니다.

 

 

 

Step by Step

·         데이터 불러오기 (CSV)

·         데이터 확인

·         arff 파일로 저장하기

·         arff 파일 확인하기

 

 

 

 

데이터 불러오기 (CSV)

 


 

[Preprocess] >>

[Open file] 클릭

UniversalBank.csv


 


 

 

 

 

데이터 확인

[Edit…]


 

 

 

arff 파일로 저장하기

우측 상단의 [Save] 버튼 클릭


 

 

 

원하는 저장 경로로 이동 >>

동일한 파일명에 확장자만 arff 해서 저장합니다. >>

[Save]

UniversalBank.arff


 

 

 

 

arff 파일 확인하기

 


 


 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

shutil 모듈 (Shell Utils)

파일이나 디렉토리를 복사, 이동, 삭제, 이름변경을 수행할 있게 해주는 파이썬 내장 모듈입니다.

 

 

import shutil

 

 

 

메소드

설명

shutil.rmtree()

·       하위 디렉토리까지 모두 한번에 삭제

·       파일은 물론 하위 디렉토리까지 모두 한번에 삭제 가능합니다.

·       주의해서 사용해야 합니다.

shutil.copy(source, destination)

·       파일과 디렉토리 복사

shutil.copytree(source, destination)

·       디렉토리 복사

·       하위 디렉토리와 파일등을 지니고 있는 디렉토리를 복사합니다.

shutil.move(source, destination)

·       타겟 디렉토리에 이동하고자 하는 파일이 있으면 이동이 되지 않고 Error 발생합니다.

 

 

https://docs.python.org/3/library/shutil.html

 


'Development > Python' 카테고리의 다른 글

imageio 패키지 - install  (0) 2020.01.02
Infinity  (0) 2020.01.02
shutil 모듈 (Shell Utils)  (0) 2019.12.30
zip()  (0) 2019.12.29
with ~ as 구문  (0) 2019.12.28
파일 입출력 관련 함수들  (0) 2019.12.27
Posted by codedragon codedragon

댓글을 달아 주세요



 

 

 

다중공선성 종류

구분

설명

완전 공선성

·         perfect multicollinearity

·         모든 λ 0 경우, 모든 독립변수 x 선형독립이다. 반면 하나라도 0 아닌 λ 있다면 선형종속이라고 한다. 선형종속인 경우를 완전 다중공선성이라고 합니다.

·         다중회귀모형에서 이상의 독립변수 사이에 정확한 선형관계 있는 경우를 말합니다. 경우 다중회귀모형의 회귀계수를 추정할 없습니다.

 

 


 

 

다중공선성

·         multicollinearity

·         vi라는 오차항(stochastic term) 포함되어 있는 경우를 일반적인 의미에서 다중공선성이라고 합니다.

·         설명변수 사이에 정확한 선형관계는 아니나 상관관계가 매우 높은 경우 말합니다.

·         다중공선성이 있지만 완전하지 않은 경우에는 계수의 추정이 가능합니다. 하지만 추정량의 표준오차(standard error) 크게 만들기 때문에 추정의 정확성은 떨어집니다.

 

 

 


 

 

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요