대외활동/2023년 상반기 인턴
2023년 상반기 인턴 기록 내용
void_melody
2023. 8. 18. 16:49
2023.03
주차 |
주요 내용 |
1주차 (03/02~03/08) |
- 환경세팅 - intelliJ 및 SpringBoot, h2, jdk 버전
- API 정리
- Spring Security 실습
|
03/06
- Authentication과 Authorization의 차이 및 Spring Security에서 해당 기능 구현 방식 학습
- 학습한 방식을 토대로 기능 구현중
|
03 /07
- 구현 도중 AccessToken과 RefreshToken의 저장 위치에 대한 고민.
팀장님께 질문 및 답변을 통해 RefreshToken은 DB에 따로 저장하고 AccessToken은 접근 당시 key와 유저 정보를 토대로 만들고 후에 검증 과정에서 이를 복호화해 확인하는 과정 필요 학습.
|
03 /08
- RefreshToken의 정보를 Member 객체 안에 넣을 것인지 따로 테이블을 분리해서 매핑할 것인지 고민.
고민해본 결과, Member의 변경 시점과 RefreshToken의 변경 시점은 다르고 처리하는 기능도 다르기에 분리하기로 결정.
- 테이블의 경우 1대1 매핑을 하기로 결정. Member는 하나의 RefreshToken만 가질 수 있기 때문.
- 권한을 Table로 따로 분리할 것인지 ENUM 형식으로 Member가 가질 것인지 고민.
당장은 ENUM형식으로 구현했지만, 만약 Member가 여러가지 권한을 가질 수 있으므로(예를 들어 User이면서 동시에 Admin) 추후 변경 가능성 고려.
|
2주차 (03/09 ~ 03/15) |
- 환경 세팅 - postgreSQL, Spring Batch
- Spring Batch + Quartz 실습
- nice api를 활용한 실습
|
|
03/13
- 프로젝트 초기 세팅
|
|
03/15
- Spring Batch와 Quartz에 대한 구분 및 이해 없이 접근한 결과, 기능 충돌 및 테이블 설계, 데이터베이스 연결 등의 어려움을 겪음.
Quartz를 사용하는 이유는 이중화. 관련 고민사항을 팀장님께 말씀드리고 Spring Batch와 Quartz의 내용 및 차이점에 대한 학습 결정. 이후 PostgreSQL에 데이터베이스를 연결 후 코드 작성 및 테이블 설정 계획.
|
3주차 (03/16 ~ 03/22) |
- Spring Batch & Quartz 관련 환경설정 및 실습
- nice API를 활용한 실습
|
|
03/20
- NICE API를 이용해 가져온 정보들을 처리해 DB에 담는 기능을 구현함
|
|
03/21
- Spring Batch 와 Quartz의 역할 및 기능 학습
|
|
03/22
- Spring Batch 및 Quartz 기능 코드 작성
|
4주차 (03/23~03/29) |
- 지금까지 진행했던 실습들에 대한 발표 및 코드 리뷰
- 설명 부족했던 부분(jwt)에 대한 코드 보충 수정
|
|
03/27
- 지금까지 진행한 실습들에 대한 발표 및 코드 리뷰
|
|
03/29
- Jwt 인증 / 인가 코드 수정
|
2023.04
주차 |
주요 내용 |
1주차 (03/30~04/05) |
- nice in RPA 기능 재구축에 대한 회의
- ERD 설계
- 기존 수행한 과제들 적용을 위한 코드 수정
|
03/ 30
- 기존의 nice-in 구조 및 메커니즘에 대한 설명을 들은 후 앞으로 구축해야할 기능들에 대한 목록 정리
|
03 /31
- ERD 초안 작성
- ERD 기반으로 테이블 생성
|
04 /05
- 생성 & 수정시간 Column 추가.
- Spring Batch를 실행 시 schema 테이블이 필요하며 해당 테이블은 당시 PostgreSQL의 public 스키마에 존재했음.
|
2주차 (04/06~04/12) |
- batch 기능과 nicein 기능 프로젝트 분리
- api 경로 수정 및 적용
- batch의 조직도 테이블과 nicein의 사용자 테이블 연결
- vue.js 작업한 로그인 페이지에 작성한 로그인 api 적용
|
|
04/10
- api 경로 수정하기
|
|
04/11
- 회원 정보 조회 기능 확장
|
|
04/12
- Vue.js의 로그인 페이지와 기존에 제작한 백엔드 서버의 API 연결 과정 진행
|
3주차 (04/13~04/19) |
04/13
- vue.js 토큰 보안 설정 진행
|
|
04/17
- 메인 페이지의 유저 정보 및 이름 확인 기능 구현
|
|
04/18
- 중복 로그인 및 다른 경로에서 동일 로그인 방지 구현
- RPA 메일 그룹 리스트를 서버에서 가져와 화면에 출력 구현
|
|
04/19
- 조직도 정보 가져오는 Batch 시스템 테이블 수정
- RPA 업무 추가 화면 및 기능 구현
- RPA 업무 수정 삭제 기능 구현
|
4주차 (04/20~04/26) |
- RPA 메일 그룹 수정/삭제/추가 기능 구현
- 검색 기능 추가 및 검색 url 수정
- 페이지 숫자 수정 기능 추가
|
|
04/ 21
- 그룹 메일 삭제를 실제 DB에서 삭제 구현하는 것이 아닌, active_Yn 열을 'N'으로 수정함과 동시에 화면에 보여지는 항목들은 active_Yn이 'Y'인 것들로만 구성
- 로그인 시의 회원 이름을 기존에는 localStorage에서 가져오는 방식에서 서버에서 이름을 보내주고 이를 받아서 표시하는 방식으로 수정
|
|
04/ 24
- 기존 검색 url을 '/search'로 구현했지만, 이를 요청 받는 인자의 유무에 따라 회원 리스트 반환 / 검색 기능으로 분기 처리.
- 검색 기능 보충 (그룹 내 인원, 그룹 외 인원 분기 처리)
- 화면에서 보여지는 항목의 갯수를 조절하는 기능 구현
- 홈버튼 추가
- 로그인 화면에서 비밀번호 입력 타입을 text → password로 수정
|
|
04/ 26
- 검색 기능에서 각 RPA Task가 가지고 있는 그룹 메일 유저들의 유형(취합, 요청 ..)의 수를 가져오는 것이 기존에 구현한 JPA로는 어렵다 판단
- QueryDSL로 검색 기능 및 유형 갯수 가져오는 기능 구현
- Controller에서 try-catch 부분 구현
|
5주차 (04/27~05/03) |
- axios url 부분 함수로 수정
- RPA 부분 전체 테스트
- 인력 기능 API 개선안 작성 및 ERD 초안 작성
|
2023.05
주차 |
주요 내용 |
1주차 (05/04~05/10) |
- NICE-IN 인력 페이지 기능 일부분 구현(조직도 및 조직도 인원 현황 불러오기)
- RPA 검색 기능 수정 (기존: BE에서 DB에 접근해 검색 결과 FE에 반환, 수정: FE에서 검색)
- FE 새로고침 시 데이터 유실 문제 해결
- 지금까지 구현한 기능들 점검 및 회의
|
05/04
- 조직도 조회 및 하위 조직도 인원 조회 기능 구현
|
05/08
- 단순히 value말고 key-value 쌍으로 응답결과 반환 강조
- DB의 PK를 dto에 추가해서 반환하고, PK로 DB 조회 강조
- Controller try-catch 부분 수정
|
05/09
- 소속 인원 조회 당시 Employee 테이블을 DeptId를 통해 조회하다 보니 겸업여부(addJobType)이 고려되지 않고 전부 반환되는 문제 발생.
- FE 화면 새로고침시 router로 넘겨받은 데이터가 유실되는 문제 발생.
- 구현한 RPA 기능들에 대한 테스트 및 피드백 회의 진행
|
05/10
- 테이블 설계 및 기능 수정 회의 진행
|
2주차 (05/11~05/17) |
- 회사 CustomSelect 부분 수정 (회사 이름 → 회사 아이디 & 회사 이름) Map 활용.
- Rpa 업무들 중 회사 연관관계가 없는(회사 테이블에 데이터가 존재하지 않는 경우) 경우 처리
- 검색 기능 수정(company_name이 아닌 company_id를 적용해 검색)
|
|
05/11
- 회사 선택 바를 선택 시 회사 이름이 아닌 회사 아이디를 검색 기능으로 전송 구현.
|
|
05/15
- Rpa 업무들 중 회사 연관관계가 없는 경우 처리
|
|
05/17
- Rpa 업무의 구분 항목 수정
- 인력 테이블에 IT 인력여부 열 추가 및 데이터 추가
- 회사 이름 리스트 서버에서 조회 시 orderNumber 열 추가해서 해당 열 기준으로 정렬 반환
|
3주차 (05/18~05/24) |
- RPA 그룹메일 유형 코드테이블 연결(ENUM → String)
- 인력 데이터에 대한 DB 및 코드 설계 기준 정의
- 개인 정보 조회 기능 구현
- 그룹 인력 통계 조회 기능 구현
- 인사 정보 페이징 처리(백엔드)
- 인력 검색 기능
|
|
05/19
- 인력 데이터 설계 기준 논의
- RPA 그룹 메일 유형 코드테이블 연결
|
|
05/23
- 개인 정보 조회 기능 구현
- 인력 통계 가져오기
|
|
05/24
- 페이징 기능 구현
- 인력 검색 기능 구현
|
4주차 (05/25~05/31) |
- 코드 테이블을 활용해 재직상태, 직무 연결
- IT인력만 보는 기능 구현
- Employee의 PK를 user_key → user_id로 수정
- 인력 통계 기능 구현
|
|
05/26
- employee 테이블의 user_key가 PK에 적합하지 않음을 발견
|
|
05/29
- 근무 형태에 따른 통계 기능 구현
- IT 통계 기능 구현
|
2023.06
주차 |
주요 내용 |
1주차 (06/01~06/07) |
- 엑셀 다운로드 방식 논의 및 구현
- 직무 선택시 수정 처리에 대한 기능 논의
- Employee - ItEmployee 테이블 수정
- 관리자 권한이 필요한 데이터 접근에 대한 기능 논의
|
06/01
- 직무 수정 버튼 클릭 시 DB에 해당 인원의 직무 내용들을 다 삭제하고 추가한 내용 덮어쓰기
- 단순 IT인력반영 버튼으로 IT인력으로 저장된 인원에 경우 IT인력의 '미분류' 탭으로 분류.
|
06/02
- 테이블 변경
|
06/07
- IT 엑셀 다운로드 기능 구현
|
2주차 (06/08~06/14) |
- DB 열 이름 정비
- DB의 view를 활용해서 excel 다운로드 기능 구현
- 인력 수정 및 저장 기능 구현
- 인원 조회 로직 수정
|
06/09
- view 를 활용한 excel 다운로드 기능 구현
|
06/12
- 한 page에 보여질 사람 인원 항목 수 필터링 기능 구현
- 인원 조회 로직 수정
|
3주차 (06/15~06/21) |
- 인원 개인정보 관리의 직무, 기술 기능 구현
- IT 인력 직무/기술 검색 필터 추가
- 직무 변경 시의 이력 관리 기능 구현
- 퇴사일자/퇴사사유 기능 구현
- 해당 퇴사일이 되었을 시 해당 인원 퇴사 처리 기능 구현
|
06/16
- 직무 및 기술 버튼 디자인
- 기술 / 직무 선택 시 저장 기능 & 기존 기술/ 직무에 대한 selected 표시
|
06/19
- IT 인력 검색 시 직무/기술에 대한 filter 기능 추가
- 직무 변경 시 History 테이블을 활용해 이력 관리
|
06/21
- 퇴사일자에 대해 V-calendar를 활용해 달력 화면으로 날짜 선택 기능 구현
- 퇴사 사유 입력 기능 구현
- Batch를 활용해 퇴사일이 되었을 시, 해당 인원 퇴사 처리 기능 구현
|
4주차 (06/22~06/28) |
- 퇴사/직무변경자 관리 기능 구현
- Grafana 외부 교육 수강
- 목록 이동 시 직전 페이지로 이동 기능 구현
- 권한 및 역할에 대한 구현 및 설계 논의
|
06/22
- 퇴사/직무 변경자 관리 기능 구현 마무리.
|
06/27
- Grafana 외부 교육 수강
|
06/28
- 목록 버튼 클릭 시 직전 페이지 이동 기능 구현
- 권한 및 역할에 따른 메뉴 및 기능 접근 권한 설계 및 기능 구현 논의
|
2023.07
주차 |
주요 내용 |
1주차 (06/29~07/05) |
- 개인 정보 복사 기능 구현
- 인력 수동 등록 기능 구현
- 권한에 따른 메뉴 및 경로 제한 기능 구현(테이블 생성)
- 권한에 따른 엑셀 정보 변경
- 비밀번호 변경 기능 구현
- 계정 관리 기능 구현
|
06/29
- 직무, 기술 항목들 펼치기 기능 구현
- 개인 정보 관리에서 각 회사에 따른 부서 항목만 보이게 기능 구현
|
07/03
- 인력 수동 추가 기능 구현
- 권한에 따른 접근 경로 제한
- 권한에 따른 보이는 항목 제한 기능 구현
|
07/04
- member의 targetCompany와 member의 인력 company의 우선 순위 선정 및 덮어쓰기 기능 구현
- 권한에 따른 보여지는 엑셀 내용 변경 기능 구현
- 비밀 번호 변경 기능 구현
|
07/05
- 계정 관리 기능 구현
|
2주차 (07/06~07/12) |
- 권한변경 이력 조회
- 로그인 이력 조회
- 인력 정보 변경 이력 조회
- HRIS 테이블 설계 및 매핑 코드 작성
|
|
07/06
- 권한 변경 이력 조회 및 검색 기능 구현
- 로그인 이력 조회 및 검색 기능 구현
|
|
07/12
- HRIS 테이블 설계 및 매핑 코드 작성
|
3주차 (07/13~07/19) |
- DB 데이터 검증 로직 구현
- 다음 배치 실행 시 업데이트 된 데이터에 대한 처리 논의 및 구현
- 그룹웨어 API를 활용해 인원의 dept_full_name과 job_desc 저장 기능 구현
- email 값을 기반으로 유저 구분
- 변경 사항에 대한 History 테이블 관리 - employee
|
07/14
- DB 데이터 검증 로직 구현
|
07/17
- 다음 배치 실행 시 업데이트되는 데이터들에 대한 처리
|
4주차 (07/20~07/26) |
- 배치 로직 수정
- 배치 및 쿼츠 메타 테이블 DB 계정 분리
- nicein 토큰 기능 수정
|
07/21
- Entity 변수명 수정 : YN → Yn
- 전체 변수에 대한 trim() 처리
|
07/24
- 모든 employee를 비교해서 history 테이블에 이력 저장하는 로직 변경
|
07/25
- nicein 토큰 기능 수정
|
07/26
- 배치 및 쿼츠 메타 테이블 DB 계정 분리
- 화이트DB 파싱 로직 추가 및 검증
|
5주차 (07/27~08/02) |
- 개발계 매일 아침 배치 돌리기 설정
- 기존 NiceIn 데이터 migration 계획
- Google Otp 기능 추가
- TCP 관련 포스팅 작성
|
08/01
- 구글 OTP 기능 추가
- TCP 관련 포스팅 작성
|
08/02
- 기존 NiceIn 레거시 데이터 마이그레이션 계획 작성
|
2023.08
주차 |
주요 내용 |
1주차 (08/03~08/09) |
- 기존 NICE-IN 데이터 테스트 이관
- Security 토큰 재발급 기능 오류 수정
- 개발한 신규 NICE-IN 기능 검토 및 기능 오류 수정
|
08/07
- 기존 NICE-IN 데이터 테스트 이관 실행
|
08/08
- Security 토큰 재발급 기능 오류 수정
|
08/09
- 개발한 신규 NICE-In 기능에 대한 검토 및 기능 오류 수정
|
2주차 (08/10~08/16) |
- NICE-IN batch 기능 추가 (HRIS 입퇴사정보)
- HRIS batch 기능 추가(NICE-IN 직무 정보)
- 상반기 인턴십 주요활동 발표 자료 제작 진행
|
08/10
- NICE-IN batch 기능 추가
|
08/16
- HRIS batch 기능 추가
- 상반기 인턴십 주요활동 발표 자료 초안 작성
|