펌웨어 프로그램은 보통 여러명이서 개발하는게 아니라서 개인적으로 관리하는 용도로 사용하기로 했다.

 

git hub가 아닌 git으로 push 없이 커밋만으로 형상관리 할수 있다.

단점은 hub에 올리는게 아니라서 협업은 할수 없지만 만드는게 간단하다.

 

추가로 커밋할때 버전도 자동으로 업데이트 할수 있는 방법 없을까 해서 작업해봤다.

 

sourceTree를 열고 Create에서 관리하기 원하는 폴더를 지장하면된다.

예 누르면 된다.

.gitignore 에 필터링 하고 싶은거 넣으면 된다. 주로 컴파일 빌드 파일을 필터링

GNU ARM*/
*.si4project/
.cproject
.project
.settings/

 

그러고 커밋하면 코드가 관리된다.

 

여기까지는 다 아는 내용일거고 

깃을 생성하면 아래 폴더가 같이 생성되는데 안에 경로로 가면 sample 코드 들이 있다.

 .git\hooks

이중에 pre-commit , prepare-commit-msg 이 두 파일만 수정한다.

pre-commit 파일에 아래 코드 전체 복붙

#!/bin/bash

VERSION_FILE="version.h"
COMMITTER=$(git config user.name)
EMAIL=$(git config user.email)
DATE=$(date +"%Y. %m. %d. %p %I:%M:%S")

# 파일이 없으면 기본 내용으로 생성
if [ ! -f "$VERSION_FILE" ]; then
    cat <<EOF > "$VERSION_FILE"
#ifndef VERSION_H
#define VERSION_H

#define FIRM_VER "Ver. 0"

#endif // VERSION_H
EOF
    echo "Created $VERSION_FILE with initial content."
fi

# 현재 버전 가져오기
CURRENT_VERSION=$(grep '#define FIRM_VER' "$VERSION_FILE" | grep -oE '[0-9]+')

# 새 버전 계산
NEW_VERSION=$((CURRENT_VERSION + 1))

# 버전 업데이트
sed -i "s/#define FIRM_VER \"Ver. $CURRENT_VERSION\"/#define FIRM_VER \"Ver. $NEW_VERSION\"/" "$VERSION_FILE"

# 새 주석 작성
NEW_COMMENT=$(cat <<EOF

/*
Ver. $NEW_VERSION
날짜: $DATE
작성자: $COMMITTER <$EMAIL>
*/
EOF
)

# `#endif` 아래에 멀티라인 주석 추가
awk -v comment="$NEW_COMMENT" '
/^#endif/ {
    print $0
    print comment
    next
}
{ print $0 }
' "$VERSION_FILE" > "$VERSION_FILE.tmp" && mv "$VERSION_FILE.tmp" "$VERSION_FILE"

# 변경 사항 스테이징
git add "$VERSION_FILE"

 

prepare-commit-msg 파일에 아래 코드 전체 복붙

#!/bin/bash

VERSION_FILE="version.h"
MSG_FILE="$1"

# 현재 버전 가져오기
CURRENT_VERSION=$(grep '#define FIRM_VER' "$VERSION_FILE" | grep -oE '[0-9]+')

# 작성자 정보
COMMITTER=$(git config user.name)
EMAIL=$(git config user.email)
DATE=$(date +"%Y년 %m월 %d일 %A %p %I:%M:%S")

# 기존 커밋 메시지 가져오기
COMMIT_MESSAGE=$(cat "$MSG_FILE")

# 새로운 메시지 형식 작성
NEW_MESSAGE=$(cat <<EOF
Ver. $CURRENT_VERSION
$COMMIT_MESSAGE
EOF
)

# 커밋 메시지 파일 업데이트
echo "$NEW_MESSAGE" > "$MSG_FILE"

뒤에 .sample 확장자를 지워야 동작이 됨

 

그 후 한번 아무렇게나 커밋을 한번 하면  폴더에 version.h 이라는 파일이 생성된것을 확인 할 수 있다.

#ifndef VERSION_H
#define VERSION_H

#define FIRM_VER "Ver. 3"

#endif // VERSION_H

/*
Ver. 3
날짜: 2024. 12. 13. AM 10:34:41
작성자: sonseoungmin <raimbow10@naver.com>
*/

/*
Ver. 2
날짜: 2024. 12. 12. PM 05:26:35
작성자: sonseoungmin <raimbow10@naver.com>
*/

/*
Ver. 1
날짜: 2024. 12. 12. PM 03:23:21
작성자: sonseoungmin <raimbow10@naver.com>
*/

3번 커밋한 상태의 version.h 파일

소스트리에 커밋된 커밋메시지 상태

version.h 도 같이 업데이트 되서 커밋된 것을 확인. version.h 파일은 건드릴 필요 없다.

 

한번 커밋을 해보면 알겠지만 설명하자면

커밋 전에 파일을 생성해서 version.h 를 찾고 없으면 새로 만들고

기존거 있으면 버전을 숫자를 1씩 올리고 하단에 주석으로 간단한 정보를 넣는다.

( 주석에 커밋 메시지도 함께 추가하려고 하였지만 구조적으로 안되겠더라. 할줄 아는분 알려주삼 )

sourceTree에 커밋 메시지도 version.h를 추적해서 Ver. x 를 상위에 넣어서 설명 앞에 버전이 먼저 보이도록 하였다.

 

 

이제 메인에다가 원하는 위치에 콘솔로 출력할수 있게 코드를 만들면 끝.

#include "version.h"

void main(void)
{
	printf("Rail Sample TRX Standard %s\n", FIRM_VER);
}

 

 

 

 

 

 

 

 

SourceInsight4를 열어서 Base 파일을 열기

 

utils.em 을 열면 메크로 코드들이 보인다

 

macro AddBlockCommentWithExactPlacement()
{
    hbuf = GetCurrentBuf();
    hwnd = GetCurrentWnd();

    // Get the current selection
    sel = GetWndSel(hwnd);

    // Insert "/*" at the start of the selected block
    InsBufLine(hbuf, sel.lnFirst, "/*");
    
    // Adjust selection to account for the new "/*" line
    sel.lnFirst = sel.lnFirst + 1;

    // Add "*/" on a new line after the last line
    InsBufLine(hbuf, sel.lnLast + 2, "*/");

    // Update the selection to reflect the changes
    sel.lnLast = sel.lnLast + 1;
    SetWndSel(hwnd, sel);
}

macro hangulcmt()
{
	sCmt = ask("한글 주석을 입력 하세요");
	sCmt = cat("//" sCmt);

	hWnd = GetCurrentWnd()
	inFirst = GetWndSelLnFirst(hWnd)
	hBuf = GetCurrentBuf()
	sCurrent = GetBufLine(hBuf, inFirst)
	
	DelBufLine(hBuf, inFirst);  
	InsBufLine(hBuf, inFirst, "@sCurrent@ @sCmt@");	
}

위 코드를 맨 아래에 복사 붙여넣기

저장 후에 나간다.

 

 

원하는 키를 배정함

 

hangulcmt 실행시 위 창 뜸

 

선택 코드 블럭 /* */ 처리

'업무관련 > 그외' 카테고리의 다른 글

NIFI 이용 sftp서버 -> 로컬로 파일 가져오기  (0) 2023.11.22
NIFI 임시 실행법  (1) 2023.11.22

 

git에서 소스를 받으면 sts를 열고 아래와 같이 import 시킨다

 

 

import가 완료되면 라이브러리가 다운로드 된다

 

라이브러리가 전부 다운받아지고 준비가 되면 위 스프링부트 실행한다

https://localhost/443

 

 

레코드를 전부 가져와서 jsp에서 분류 사용하는 방법

DB 쿼리를 만들어서

 

EgovMap egovMap = new EgovMap();
List<EgovMap> selectMenuInfo = (List<EgovMap>) myPageLogService.selectMenuInfo(egovMap);
model.addAttribute("selectMenuInfo", new ObjectMapper().writer().writeValueAsString(selectMenuInfo));

 

모델로 jsp로 보내면

var selectMenuInfo;
$(function () {
    try {
        selectMenuInfo = ${selectMenuInfo};
    } catch (e) {
        selectMenuInfo = null;
    }
});

위처럼 선언을 해서 넣어주고

$.each(selectMenuInfo, function(idx, NMWNdata){
    //console.log(NMWNdata);
    if(NMWNdata.webMenuId == "${selectDrBrdDetail.webMenuId1}"){
        vUrl=NMWNdata.url;
    } 
 });

위처럼 찾아갈수 있다 (로그 주석을 제거하고 확인해보면 대충 알거임)

컨트롤러에 콘솔도 안뜬다면

숫자에다 문자를 넣고 있거나 숫자에 날짜를 넣는건지 확인해야함

 

 

 

 

Next 버튼을 눌러서

DB연결 

원하는 테이블 선택

완료하면 

 다이어그램이 뜬다

 

 

 

폴더 지정해서 export하면

 

 

엑셀이 생성됨

읽기전용이니까 쓰기전용으로 저장해서 사용 가능

 

 

 

 

 

 

위처럼 서버를 끄고 

파일질라 클라이언트를 실행해서 war파일을 넣고

MobaXterm 에서 sh 파일을 실행 

 

위는 개인적인 내용 기록용이니 참고

 

 

메이븐을 다운받아 C에 설치

 

위 설치가 끝나면 아래(참고 예시) mvn 설치 커맨드를 입력

mvn install:install-file -Dfile=C:\git\ofbd\libs\cubrid-jdbc-10.1.3.7765.jar -DgroupId=cubrid -DartifactId=cubrid-jdbc -Dversion=10.1.3.7765 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=C:\git\ofbd\libs\gt-xsd-core-22.2.jar -DgroupId=org.geotools -DartifactId=gt-xsd-core -Dversion=22.2 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=C:\git\ofbd\libs\gt-xsd-filter-22.2.jar -DgroupId=org.geotools -DartifactId=gt-xsd-filter -Dversion=22.2 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=C:\git\ofbd\libs\gt-xsd-gml2-22.2.jar -DgroupId=org.geotools -DartifactId=gt-xsd-gml2 -Dversion=22.2 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=C:\git\ofbd\libs\gt-xsd-gml3-22.2.jar -DgroupId=org.geotools -DartifactId=gt-xsd-gml3 -Dversion=22.2 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=C:\git\ofbd\libs\gt-xsd-sld-22.2.jar -DgroupId=org.geotools -DartifactId=gt-xsd-sld -Dversion=22.2 -Dpackaging=jar -DgeneratePom=true

-Dfile 경로를 해당 jar 파일이 있는곳으로 수정

그후 복사해서 CMD창에 붙여넣고 실행하면 설치 진행

만약 fail이 뜨면 이클립스를 종료하고 C:\Users\USER\.m2 폴더 안에 해당 폴더를 삭제하고 설치

 

 

 

 

이클립스에서 maven install 진행하면 콘솔에 BUILD SUCCESS 뜨면 target 폴더가 생성되면서 war파일도 생성됨

이때 error가 뜨면 콘솔을 보고 .m2 폴더 안에 관련되는 폴더 삭제하고 eclipse를 시작하면 다시 설치하게되며 maven install 하면 된다