레거시 프로젝트 소스를 분류하는 방법

anonymous·2022년 1월 30일
0

분류 카테고리 목록

=========================================

카테고리 분류

  1. ACTION : 화면 UI 액션
  2. PAGE : 액션을 호출하는 페이지/HTML
    • PROPERTY ROW/AREA
    • DATA ROW/ROWS/AREA
    • INPUT ROW/AREA
  3. CLI : JS/클라이언트측에서 API 호출을 위해 사용하는 메소드
  4. API : 액션시 호출되는 API - URL (REQUEST, RESPONSE 객체)
    • PARAMETER AND RESPONSE STATUS
  5. PATH : API 호출시 처리해주는 컨트롤러, 서비스, 모델
  6. DATA : DAO가 조회하는 DB 테이블/OPENAPI 및 조회 조건
  7. CLI : DATA를 가져와서 JS/클라이언트측에서 처리하는 액션/담아온 객체, 객체 파싱 후 화면에 뿌리는 메소드
    • PROPERTY : DATA MAPPED OBJECT
    • MAP OBJECT TO PAGE SELECTOR

=========================================

분류 예제

=========================================

ACTION : 최초 로그인 후 메인 페이지 이동
http://URL
메인메뉴탭 > 서브메뉴탭

PAGE : /templates/page/index.html (/fragments/config.html header.html, footer.html)
CLI : js/page/functionService.js > function.init();

this.eventBinding
this.callAjax()

API :

url: '/getData.do',
data:{
	userId: userId,
	type: "T"
},
type: "GET",
dataType: "json"

PATH : controller/common/CommonController.java > getData()

DATA :
sqlmapper/sql.xml
DATATABLE where type={type}

CLI :

self.dataObject = result.data;
self.dataBinding();
dataBinding{
 get row.column1, row.column2 -> set in rowList, columnNm
 this.drawDataChart(); // 차트 그리기  
	 this.drawTitle(this.dataCount); // 타이틀 및 갯수 표시  
	 this.drawDataList(); // 데이터 렌더링
}
drawDataList{
  set data.name, data.type, ... foreach data from dataList
}

=========================================

분석 팁
- SEARCH FOR HIGH FREQUENCY USAGE LINKS
(자주 사용하는 (각 언어의) 코드 패턴 찾기)

예)

// JS
hasClass("active")
toggleMerge
isPut
new Map().set
itemType.split(',')
itemList.sort(function(a, b)  {return a.freq - b.freq;})
filter(list=>list.section===name)[0].itemList
itemList.find(i=>i.itemId === itemId?i.isPut = checked:"");
// JAVA
(type.equals("T")||type.equals("M")||type.equals("M2")
if(!bean.getitemList().containsKey(item.getItemId())) {
<!-- MYSQL - xml -->
<when test='type == "A" or type == "B"'>
	INNER JOIN
	(
		SELECT id
		FROM info
		WHERE cd = #{cd} 
	) B ON A.id = B.id
	WHERE A.section = #{section}
</when>
<otherwise>
	WHERE A.section = #{section}
	AND A.id = #{id}
</otherwise>
LIKE CONCAT('%',#{searchTerm},'%') 
REPLACE(item, '%', 'NON%')
IF(D.item IS NULL, 'N', 'Y')
CAST(ROUND(freq, '2')
LIMIT 10	
<foreach item="item" index="index" collection="listArray" open="(" close=")" separator=",">
	#{item}
</foreach>
profile
기술블로거입니다

0개의 댓글