달력

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

댓글을 달아 주세요