대외활동/2023년 상반기 인턴

2023년 상반기 인턴 기록 내용

void_melody 2023. 8. 18. 16:49

2023.03

주차 주요 내용
1주차
(03/02~03/08)
  1. 환경세팅 - intelliJ SpringBoot, h2, jdk 버전 
  2. API 정리
  3. Spring Security 실습
03/06
  1.  Authentication Authorization의 차이 및 Spring Security에서 해당 기능 구현 방식 학습
  2. 학습한 방식을 토대로 기능 구현중
03 /07
  1. 구현 도중 AccessToken RefreshToken의 저장 위치에 대한 고민.
    팀장님께 질문 및 답변을 통해 RefreshToken DB에 따로 저장하고 AccessToken은 접근 당시 key와 유저 정보를 토대로 만들고 후에 검증 과정에서 이를 복호화해 확인하는 과정 필요 학습.
03 /08
  1. RefreshToken의 정보를 Member 객체 안에 넣을 것인지 따로 테이블을 분리해서 매핑할 것인지 고민
    고민해본 결과, Member의 변경 시점과 RefreshToken의 변경 시점은 다르고 처리하는 기능도 다르기에 분리하기로 결정.
  2. 테이블의 경우 11 매핑을 하기로 결정. Member는 하나의 RefreshToken만 가질 수 있기 때문.
  3. 권한을 Table로 따로 분리할 것인지 ENUM 형식으로 Member가 가질 것인지 고민.
    당장은 ENUM형식으로 구현했지만, 만약 Member가 여러가지 권한을 가질 수 있으므로(예를 들어 User이면서 동시에 Admin) 추후 변경 가능성 고려.
2주차
(03/09 ~ 03/15)
  1. 환경 세팅 - postgreSQL, Spring Batch
  2. Spring Batch + Quartz 실습
  3. nice api를 활용한 실습
  03/13
  1. 프로젝트 초기 세팅
  03/15
  1. Spring Batch Quartz에 대한 구분 및 이해 없이 접근한 결과, 기능 충돌 및 테이블 설계, 데이터베이스 연결 등의 어려움을 겪음.
    Quartz
    를 사용하는 이유는 이중화
    관련 고민사항을 팀장님께 말씀드리고 Spring Batch Quartz의 내용 및 차이점에 대한 학습 결정.
    이후 PostgreSQL에 데이터베이스를 연결 후 코드 작성 및 테이블 설정 계획.
3주차
(03/16 ~ 03/22)
  1. Spring Batch & Quartz 관련 환경설정 및 실습
  2. nice API를 활용한 실습
  03/20 
  1. NICE API를 이용해 가져온 정보들을 처리해 DB에 담는 기능을 구현함
  03/21
  1. Spring Batch Quartz의 역할 및 기능 학습
  03/22
  1. Spring Batch Quartz 기능 코드 작성
4주차
(03/23~03/29)
  1. 지금까지 진행했던 실습들에 대한 발표 및 코드 리뷰
  2. 설명 부족했던 부분(jwt)에 대한 코드 보충 수정
  03/27
  1. 지금까지 진행한 실습들에 대한 발표 및 코드 리뷰
  03/29
  1. Jwt 인증 / 인가 코드 수정

 

2023.04

주차 주요 내용
1주차
(03/30~04/05)
  1. nice in RPA 기능 재구축에 대한 회의
  2. ERD 설계
  3. 기존 수행한 과제들 적용을 위한 코드 수정
03/ 30
  1.  기존의 nice-in 구조 및 메커니즘에 대한 설명을 들은 후 앞으로 구축해야할 기능들에 대한 목록 정리
03 /31
  1. ERD 초안 작성 
  2. ERD 기반으로 테이블 생성
04 /05
  1. 생성 & 수정시간 Column 추가.
  2. Spring Batch를 실행 시 schema 테이블이 필요하며 해당 테이블은 당시 PostgreSQL public 스키마에 존재했음.
2주차
(04/06~04/12)
  1. batch 기능과 nicein 기능 프로젝트 분리
  2. api 경로 수정 및 적용
  3. batch의 조직도 테이블과 nicein의 사용자 테이블 연결
  4. vue.js 작업한 로그인 페이지에 작성한 로그인 api 적용
  04/10
  1. api 경로 수정하기
  04/11
  1. 회원 정보 조회 기능 확장
  04/12
  1. Vue.js의 로그인 페이지와 기존에 제작한 백엔드 서버의 API 연결 과정 진행
3주차
(04/13~04/19)
04/13
  1. vue.js 토큰 보안 설정 진행
  04/17
  1. 메인 페이지의 유저 정보 및 이름 확인 기능 구현
  04/18
  1. 중복 로그인 및 다른 경로에서 동일 로그인 방지 구현
  2. RPA 메일 그룹 리스트를 서버에서 가져와 화면에 출력 구현
  04/19
  1. 조직도 정보 가져오는 Batch 시스템 테이블 수정
  2. RPA 업무 추가 화면 및 기능 구현
  3. RPA 업무 수정 삭제 기능 구현
4주차
(04/20~04/26)
  1. RPA 메일 그룹 수정/삭제/추가 기능 구현
  2. 검색 기능 추가 및 검색 url 수정
  3. 페이지 숫자 수정 기능 추가
  04/ 21
  1. 그룹 메일 삭제를 실제 DB에서 삭제 구현하는 것이 아닌, active_Yn 열을 'N'으로 수정함과 동시에 화면에 보여지는 항목들은 active_Yn 'Y'인 것들로만 구성
  2. 로그인 시의 회원 이름을 기존에는 localStorage에서 가져오는 방식에서 서버에서 이름을 보내주고 이를 받아서 표시하는 방식으로 수정
  04/ 24
  1. 기존 검색 url '/search'로 구현했지만, 이를 요청 받는 인자의 유무에 따라 회원 리스트 반환 / 검색 기능으로 분기 처리.
  2. 검색 기능 보충 (그룹 내 인원, 그룹 외 인원 분기 처리)
  3. 화면에서 보여지는 항목의 갯수를 조절하는 기능 구현
  4. 홈버튼 추가
  5. 로그인 화면에서 비밀번호 입력 타입을 text → password로 수정
  04/ 26
  1. 검색 기능에서 각 RPA Task가 가지고 있는 그룹 메일 유저들의 유형(취합, 요청 ..)의 수를 가져오는 것이 기존에 구현한 JPA로는 어렵다 판단
  2. QueryDSL로 검색 기능 및 유형 갯수 가져오는 기능 구현
  3. Controller에서 try-catch 부분 구현 
5주차
(04/27~05/03)
  1. axios url 부분 함수로 수정
  2. RPA 부분 전체 테스트
  3. 인력 기능 API 개선안 작성 및 ERD 초안 작성

 

2023.05

주차 주요 내용
1주차
(05/04~05/10)
 
  1. NICE-IN 인력 페이지 기능 일부분 구현(조직도 및 조직도 인원 현황 불러오기)
  2. RPA 검색 기능 수정 (기존: BE에서 DB에 접근해 검색 결과 FE에 반환수정: FE에서 검색)
  3. FE 새로고침 시 데이터 유실 문제 해결
  4. 지금까지 구현한 기능들 점검 및 회의
05/04
  1. 조직도 조회 및 하위 조직도 인원 조회 기능 구현
05/08
  1. 단순히 value말고 key-value 쌍으로 응답결과 반환 강조
  2. DB PK dto에 추가해서 반환하고, PK DB 조회 강조
  3. Controller try-catch 부분 수정
05/09
  1. 소속 인원 조회 당시 Employee 테이블을 DeptId를 통해 조회하다 보니 겸업여부(addJobType)이 고려되지 않고 전부 반환되는 문제 발생.
  2. FE 화면 새로고침시 router로 넘겨받은 데이터가 유실되는 문제 발생.
  3. 구현한 RPA 기능들에 대한 테스트 및 피드백 회의 진행
05/10
  1. 테이블 설계 및 기능 수정 회의 진행
2주차
(05/11~05/17)
  1. 회사 CustomSelect 부분 수정 (회사 이름회사 아이디 & 회사 이름) Map 활용.
  2. Rpa 업무들 중 회사 연관관계가 없는(회사 테이블에 데이터가 존재하지 않는 경우) 경우 처리
  3. 검색 기능 수정(company_name이 아닌 company_id를 적용해 검색)
  05/11
  1. 회사 선택 바를 선택 시 회사 이름이 아닌 회사 아이디를 검색 기능으로 전송 구현.
  05/15
  1. Rpa 업무들 중 회사 연관관계가 없는 경우 처리
  05/17
  1. Rpa 업무의 구분 항목 수정
  2. 인력 테이블에 IT 인력여부 열 추가 및 데이터 추가
  3. 회사 이름 리스트 서버에서 조회 시 orderNumber 열 추가해서 해당 열 기준으로 정렬 반환
3주차
(05/18~05/24)
  1. RPA 그룹메일 유형 코드테이블 연결(ENUM → String)
  2. 인력 데이터에 대한 DB 및 코드 설계 기준 정의
  3. 개인 정보 조회 기능 구현
  4. 그룹 인력 통계 조회 기능 구현
  5. 인사 정보 페이징 처리(백엔드)
  6. 인력 검색 기능
  05/19
  1. 인력 데이터 설계 기준 논의
  2. RPA 그룹 메일 유형 코드테이블 연결
  05/23
  1. 개인 정보 조회 기능 구현
  2. 인력 통계 가져오기
  05/24
  1. 페이징 기능 구현
  2. 인력 검색 기능 구현
4주차
(05/25~05/31)
  1. 코드 테이블을 활용해 재직상태, 직무 연결
  2. IT인력만 보는 기능 구현
  3. Employee PK user_key → user_id로 수정
  4. 인력 통계 기능 구현
  05/26
  1. employee 테이블의 user_key PK에 적합하지 않음을 발견
  05/29
  1. 근무 형태에 따른 통계 기능 구현
  2. IT 통계 기능 구현

 

2023.06

주차 주요 내용
1주차
(06/01~06/07)
 
 
  1. 엑셀 다운로드 방식 논의 및 구현
  2. 직무 선택시 수정 처리에 대한 기능 논의
  3. Employee - ItEmployee 테이블 수정
  4. 관리자 권한이 필요한 데이터 접근에 대한 기능 논의
06/01
  1. 직무 수정 버튼 클릭 시 DB에 해당 인원의 직무 내용들을 다 삭제하고 추가한 내용 덮어쓰기
  2. 단순 IT인력반영 버튼으로 IT인력으로 저장된 인원에 경우 IT인력의 '미분류' 탭으로 분류.
06/02
  1. 테이블 변경
06/07
  1. IT 엑셀 다운로드 기능 구현
2주차
(06/08~06/14)
 
  1. DB 열 이름 정비
  2. DB view를 활용해서 excel 다운로드 기능 구현
  3. 인력 수정 및 저장 기능 구현
  4. 인원 조회 로직 수정
06/09
  1. view 를 활용한 excel 다운로드 기능 구현
06/12
  1. page에 보여질 사람 인원 항목 수 필터링 기능 구현
  2. 인원 조회 로직 수정
3주차
(06/15~06/21)
 
 
  1. 인원 개인정보 관리의 직무, 기술 기능 구현
  2. IT 인력 직무/기술 검색 필터 추가
  3. 직무 변경 시의 이력 관리 기능 구현
  4. 퇴사일자/퇴사사유 기능 구현
  5. 해당 퇴사일이 되었을 시 해당 인원 퇴사 처리 기능 구현
06/16
  1. 직무 및 기술 버튼 디자인 
  2. 기술 / 직무 선택 시 저장 기능 & 기존 기술/ 직무에 대한 selected 표시
06/19
  1. IT 인력 검색 시 직무/기술에 대한 filter 기능 추가
  2. 직무 변경 시 History 테이블을 활용해 이력 관리
06/21
  1. 퇴사일자에 대해 V-calendar를 활용해 달력 화면으로 날짜 선택 기능 구현
  2. 퇴사 사유 입력 기능 구현
  3. Batch를 활용해 퇴사일이 되었을 시, 해당 인원 퇴사 처리 기능 구현
4주차
(06/22~06/28)
 
 
  1. 퇴사/직무변경자 관리 기능 구현
  2. Grafana 외부 교육 수강
  3. 목록 이동 시 직전 페이지로 이동 기능 구현
  4. 권한 및 역할에 대한 구현 및 설계 논의
06/22 
  1. 퇴사/직무 변경자 관리 기능 구현 마무리.
06/27
  1. Grafana 외부 교육 수강 
06/28
  1. 목록 버튼 클릭 시 직전 페이지 이동 기능 구현
  2. 권한 및 역할에 따른 메뉴 및 기능 접근 권한 설계 및 기능 구현 논의

 

2023.07

주차 주요 내용
1주차
(06/29~07/05)
 
 
 
  1. 개인 정보 복사 기능 구현
  2. 인력 수동 등록 기능 구현
  3. 권한에 따른 메뉴 및 경로 제한 기능 구현(테이블 생성)
  4. 권한에 따른 엑셀 정보 변경
  5. 비밀번호 변경 기능 구현
  6. 계정 관리 기능 구현
06/29
  1. 직무, 기술 항목들 펼치기 기능 구현
  2. 개인 정보 관리에서 각 회사에 따른 부서 항목만 보이게 기능 구현
07/03
  1. 인력 수동 추가 기능 구현
  2. 권한에 따른 접근 경로 제한
  3. 권한에 따른 보이는 항목 제한 기능 구현
07/04
  1. member targetCompany member의 인력 company의 우선 순위 선정 및 덮어쓰기 기능 구현
  2. 권한에 따른 보여지는 엑셀 내용 변경 기능 구현
  3. 비밀 번호 변경 기능 구현
07/05
  1. 계정 관리 기능 구현
2주차
(07/06~07/12)
  1. 권한변경 이력 조회
  2. 로그인 이력 조회
  3. 인력 정보 변경 이력 조회
  4. HRIS 테이블 설계 및 매핑 코드 작성
  07/06
  1. 권한 변경 이력 조회 및 검색 기능 구현
  2. 로그인 이력 조회 및 검색 기능 구현
  07/12
  1. HRIS 테이블 설계 및 매핑 코드 작성
3주차
(07/13~07/19)
 
 
 
  1. DB 데이터 검증 로직 구현
  2. 다음 배치 실행 시 업데이트 된 데이터에 대한 처리 논의 및 구현
  3. 그룹웨어 API를 활용해 인원의 dept_full_name job_desc 저장 기능 구현
  4. email 값을 기반으로 유저 구분
  5. 변경 사항에 대한 History 테이블 관리 - employee
07/14
  1. DB 데이터 검증 로직 구현
07/17
  1. 다음 배치 실행 시 업데이트되는 데이터들에 대한 처리
4주차
(07/20~07/26)
 
 
 
  1. 배치 로직 수정
  2. 배치 및 쿼츠 메타 테이블 DB 계정 분리
  3. nicein 토큰 기능 수정
07/21
  1. Entity 변수명 수정 : YN → Yn
  2. 전체 변수에 대한 trim() 처리
07/24
  1. 모든 employee를 비교해서 history 테이블에 이력 저장하는 로직 변경
07/25
  1. nicein 토큰 기능 수정
07/26
  1. 배치 및 쿼츠 메타 테이블 DB 계정 분리
  2. 화이트DB 파싱 로직 추가 및 검증 
5주차
(07/27~08/02)
 
  1. 개발계 매일 아침 배치 돌리기 설정
  2. 기존 NiceIn 데이터 migration 계획
  3. Google Otp 기능 추가
  4. TCP 관련 포스팅 작성
08/01
  1. 구글 OTP 기능 추가
  2. TCP 관련 포스팅 작성
08/02
  1. 기존 NiceIn 레거시 데이터 마이그레이션 계획 작성

 

2023.08

주차 주요 내용
1주차
(08/03~08/09)
 
 
 
  1. 기존 NICE-IN 데이터 테스트 이관 
  2. Security 토큰 재발급 기능 오류 수정 
  3. 개발한 신규 NICE-IN 기능 검토 및 기능 오류 수정
08/07
  1. 기존 NICE-IN 데이터 테스트 이관 실행 
08/08
  1. Security 토큰 재발급 기능 오류 수정
08/09
  1. 개발한 신규 NICE-In 기능에 대한 검토 및 기능 오류 수정
2주차
(08/10~08/16)
 
  1.  NICE-IN batch 기능 추가 (HRIS 입퇴사정보)
  2.  HRIS batch 기능 추가(NICE-IN 직무 정보)
  3. 상반기 인턴십 주요활동 발표 자료 제작 진행
08/10
  1. NICE-IN batch 기능 추가
08/16
  1. HRIS batch 기능 추가
  2. 상반기 인턴십 주요활동 발표 자료 초안 작성