[SpringBoot]IT학원 그룹웨어 기능 구현 - 인사관리

EUNJI LEE·2023년 9월 6일
0

프로젝트

목록 보기
4/4
post-thumbnail
post-custom-banner

프로젝트 소개

IT 학원에서 사용하는 그룹웨어를 제공한다.

일반적인 그룹웨어와 동일하게 사원 생성, 로그인, 인사 관리, 근태 관리, 전자결재, 채팅 기능을 제공하고 별도로 강의 등록, 회의실 및 학생 상담실 예약 등의 기능을 제공한다.

자세한 소스 코드는 GitHub에서 확인 가능합니다!

https://github.com/leebib1/FilnalProject_workit

담당 기능 - 인사관리

사원 생성 기능은 이전 포스팅에서 설명하고 넘어갔으므로 넘기고 나머지 기능들에 대해서 작성해보도록 한다!

🔍사원 조회

인사팀 혹은 부대표 이상의 직급을 가진 상태면 확인할 수 있는 사원 조회 페이지를 구현했다. 위 화면에서 사원 중 하나를 클릭하면 해당 사원의 정보를 확인 및 수정 가능한 상세 정보 화면으로 이동한다.

개인 정보 수정 화면이랑 다른 점은 인사 이동을 시킬 수 있도록 부서 및 직책에 대한 부분도 수정 가능하다는 점이다.

재직 상태를 구분해서 조회할 수 있고, 원하는 키워드를 선택해서 조회할 수도 있도록 해놨다.

검색 결과 조회 후 페이지 이동 시 정보를 유지 시키기

페이지바를 쓰는 페이지가 많다 보니 공용으로 페이지 바를 만들어서 넘겨주는 클래스를 하나 생성해서 사용하고 있었는데 이걸 사용하니 검색 결과를 유지 시키면서 페이지를 이동시킬 수 없었다.

그래서 기본적으로 페이지바는 공용 클래스를 사용해서 넘겨주되 Pagenation 클래스에서 만들어서 넘겨 보냈던 스크립트를 JSP 파일에서 덮어쓰기 해서 이용했다.

//페이징 함수 덮어쓰기
function fn_paging(no){
	console.log("paging");
	location.assign('${path}/employee/list?cPage='+no+'&entFl='+'${entFl==null?"":entFl }'
			+"&category="+'${category==null?"":category }'
			+"&keyword="+'${keyword==null?"":keyword}');
}

👔부서 관리

인사팀 팀장 이상 혹은 부대표 이상의 직급만 접근 가능한 부서 관리 기능을 구현했다. 새로운 부서를 추가, 부서 삭제, 부서 이름 수정 등을 가능하도록 했다.

부서가 없는 사원을 둘 수 없어서 해당 부서 별 총 인원을 구해서 사용자가 확인할 수 있도록 하고 해당 부서에 인원이 있다면 삭제할 수 없도록 했다.

한 화면에서 부서 관리를 관리하고 있기 때문에 AJAX를 이용해서 요청을 보내고 응답받는 형식으로 구현했다. 다만… 성공적으로 응답이 요청되면 새로고침이 한 번 되도록 했다. 리스트를 5개까지 밖에 안 만들어 주는데다가 부서명을 기준으로 오름차순으로 가져오고 있어서 그걸 생각해서 화면에 추가를 해줘야하나 고민하다가 location.reload()를 실행시키는 걸로 합의보았다…

👔직책 관리

부대표 이상의 직급만 접근 가능한 직책관리 기능을 구현했다. 부서관리와 전체적인 기능은 비슷하지만 각 직책 이름에 맞는 권한을 추가적으로 지정해주어야 한다.

스프링 시큐리티를 이용하고 있었기 때문에 직책명을 가지고 권한을 부여하면 새로 추가된 직급들은 개발자가 코드를 추가하지 않는 이상 권한이 없는 상태가 된다는 게 문제점이었다. 그래서 직급 테이블에 권한에 대한 컬럼을 추가하고 해당 컬럼을 기준으로 권한을 부여해두었다.

그래서 강사, 사원, 매니저 등의 다른 이름의 직책이 모두 일반 사원이라는 권한을 가지고 있을 수 있도록 추가, 변경하려는 직책에 따라 그에 맞는 권한을 설정해주면 이름이 바뀌고 새로 생성되더라도 코드의 변경 없이 동일한 권한을 부여할 수 있게 된다.

👌정보 수정 요청 승인

마이페이지에서 개인 정보 수정 요청을 보내면 인사팀 혹은 부대표 이상의 권한을 가진 사용자가 확인하고 승인, 삭제할 수 있는 수정 신청 목록 페이지를 구현했다.

수정 신청 목록을 클릭하면 AJAX로 처리해서 새로고침 없이 바로 신청 내역에 해당하는 정보가 표시된다.

캡쳐에서는 이미 수정 완료된 상태에서 불러왔기 때문에 수정 신청 내역과 현재 사원 정보가 동일하게 뜬다. (+신청일은 날짜가 출력되는데 출력 형식을 바꿔주려다가 아직 수정을 못했다…)

후기!

프로젝트 진행 중에는 학원에서 살짝 맛만 봤던 Security를 직접 프로젝트에 입맛대로 적용하려고 하니까 힘들기도 하고... 그래도 지난 번 프로젝트에 비해서 많이 성장했다는 게 느껴져서 뿌듯하기도 했다!
2주 정도 지나서 보니까 부족했던 부분이 눈에 확 들어오기도 해서 슬슬 업그레이드를 준비해야할 거 같다...ㅎㅎ

profile
천천히 기록해보는 비비로그
post-custom-banner

0개의 댓글