병갈이 블록

JAVA, Node.js - 배치관리 사이트 만들어보자(0) 본문

개발공부 이야기(New)/이것 저것 만들어보자

JAVA, Node.js - 배치관리 사이트 만들어보자(0)

woojang 2021. 2. 23. 00:27

배치 이력, 로그 조회 사이트를 만들려고 한다.(추후에는 배치 스케줄도 관리하는 버전으로 업그레이드 할 계획)

사이트 서버는 NAS 안에 Dokcer에 설치된 Ubuntu에 올려야 하고, 실제 배치 프로그램 및 로그, crontab파일은 NAS에 설치된 Linux에 존재한다. 아.....그러니까 NAS에 설치된 Docker 안에 설치된 Ubuntu에서 위에위에 존재하는 NAS파일에 접근을 해야 하는 것이다.

음.....이걸 어떻게 처리해야하나 고민을 좀 했는데, 이왕 이런 환경인거 NAS에 있는 배치관련 파일에 접근해서 해당 정보를 전송하는 간단한 API를 Node.js로 NAS에 만들어 두고 Ubuntu안에 톰캣에서 API통신으로 필요한 정보를 받아오는걸로 하기로 했다. 차라리 파일접근 API와 서비스로직을 분리하게 되는 모양이 되어서 API개발 연습도 해볼 겸 괜찮을 것 같다는 생각이 들었다.

 

우선, 외부IP로 접근할 이유는 없어보였기에 내부IP로 NAS에 실행중인 Node.js서버에 접속이 되는지 확인을 했는데 잘 된다. Ubuntu에서도 잘 되는지는 차후에 다시 테스트 해보기로 한다.

 

사이트 구성

사이트 구성은 아주 간단하게 로그인 페이지와 현황페이지, 에러페이지 이렇게 딱 3개 페이지 정도로만 구성할 예정이다.(이마저도 매우 투박하고 촌스러울것 같다. UI에 시간빼앗기기 싫어...;;;)

기능은 관리자 로그인 시 현황조회 및 로그파일 관리(삭제)기능을 부여할 것이고 (스케줄 편집과 같은 기능은 추후에 업데이트 할 예정) 게스트로 들어왔을 경우 배치 현황, 로그확인 정도만 가능하도록 할 것이다.

 

API 구성

NAS쪽 API는 파일목록 조회(파일명 리스트 조회), 특정 로그파일 내용 조회(파일 내용을 읽어 문자열 전송이 될 것 같다.), 특정 로그파일 삭제 기능을 우선 구현할 예정이다. 파일을 삭제하는 부분에 있어서 사용자 권한 인증을 해야할 것 같은데...요건 추후에 생각을 해보기로 한다.

 

UI쪽은 재능도 없고 손대면 시간대비 결과물이 너무 초라하기에 UI쪽 기술들은 우선 아주 기본적인것들만 가지고 가기로 한다.

아마 ajax는 사용할 것 같고, 리스트 처리를 위해서 예전에 사용해봤던 Handlebars를 사용할 예정.

 

Node는 대략 알고만 있지 잘 알지는 못해서 필요한 부분에 대한 공부를 병행하며 만들어야 할 것 같다. 그래도 기본 javascript로 작성하는거라 개발 자체가 어려울 것 같지는 않다. Node.js의 프로젝트 구조나 express프레임워크를 쓰면서 사용하게 될 라이브러리 호출방법, 효과적인 프로젝트 구성 등을 좀 봐야할 것 같다. 구현할 기능 자체가 단순하니 많은 시간이 들어갈 것 같지는 않다는 판단이 Node.js를 선택한 이유이기도 하다.

 

자, 대략적인 구상은 끝난 듯 하니...그림은 대충 그리고 시작을 해봐야지. 몇일이 걸릴까....글쎄.ㅎㅎㅎ

 

ps.

지금 톰캣 서버는 NAS 안에 Dokcer에 설치된 Ubuntu에 위치하고 있다.

왜 저곳에 넣었는지 정확히 기억은 안나는데, 일단 NAS에 설치된 Linux 버전이 일반적으로 돌아다니는 버전이 아닌걸로 알고있다. 뭐 패키지 관리 명령어 도구도 (거의)없어서 패키지 하나 설치하는것도 어렵고, 하더라고 복잡한 과정을 거쳐야 하는 것 같았다.(괜히 잘못 설치해서 NAS 설정이 꼬이거나 데이터에 영향이 가면 윽!!!!) Node.js 같은 경우는 시놀로지 관리 프로그램에서 설치할 수 있도록 기능제공을 해주고 있어서 설치할 수 있었다. 그때 같이 설치된 npm으로 이것저것 필요한걸 설치중이긴 하다.(;;;) 무튼, 이런한 이유들로 Ubuntu안에 설치했던것 같은데 정확히 기억은 안난다. 최대한 개발관련된 환경과 NAS환경의 분리 라고나 할까...?ㅎㅎㅎ

Comments