일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Executors
- 인턴
- 스트림
- ssh
- 스프링
- 프로그래머스
- 정렬 기준
- 스프링 회원가입 인증
- OpenAI
- 위키 꾸미기
- DNS동작원리
- 숭실대
- 스터디 관리
- 문자 인증
- aws ec2
- excalidraw
- Spring
- nurigo
- 현장실습
- 잘하고싶다..
- Java
- 셀레니움
- 위키 탭
- 자바
- 개발자 디자인
- NAVER D2
- 사이드 프로젝트
- 현장실습 IT
- REST
- 값 객체
- Today
- Total
뭐요
업무 정리 및 회고 (5) 본문
드디어 사수 분이 입사하셨다. SI 쪽에서 근무하다가 이후엔 쭉 프리랜서로 일하셨다고 한다. 기존에 계시던 사수 분이 퇴사하고 기술적으로 어려움이 생겼을 때 열심히 삽질 하느라 답답했는데, 벌써 이것 저것 물어보면서 궁금증을 해결했다. 귀찮아 하시진 않을까 염려되긴 한다…ㅋㅋ
요즘따라 느끼는 거지만 근래에는 잔업무가 아니라 주요한 업무를 맡겨주신다. 정산 쪽 파트 맡아서 CS 맡을 때는 지루하고 반복적인 업무에 스트레스를 받았는데, 신규 기능을 개발하거나 기존에 존재하는 코드에서 요구사항을 반영하여 로직을 수정하는 업무를 할 때는 정말 재밌다. 시간 가는 줄 몰라서 금새 퇴근할 시간이 되어버린다.
어려움을 겪을 때 제대로 질문하기
질문을 하면 겪고 있는 어려움을 쉽게 해결할 수 있을 뿐더러, 어떻게 하면 나의 궁금증을 잘 전달할 수 있을지 고민하여 말씀을 드리니 내 생각을 전달하는 능력도 좋아지는 것 같다. 내가 정확히 알고 있는 부분과 모르는 부분을 파악하고, 모르는 부분에 대해서 나의 생각을 먼저 말씀드린 뒤에 질문을 할 때 더 의미있는 답변을 받을 수 있었다.
- 무작정 질문하지 말기
질문을 하기 전에 먼저 질문을 하는 것이 맞는가 고민해보아야 한다. 우리는 팀으로써 일하고 각자가 맡은 할당량이 존재하기 때문에 내 쓸 데없는 질문으로 인해 방해가 될 수 있다.
- 무엇을 모르는 지 정확히 파악하기
질문을 할 땐 정확히 무엇을 물어보는 지 구체적으로 말하자. 두루뭉실하게 질문을 한다면 답변을 해줄 수 없을 뿐더러 본인이 하고 있는 일이 무엇인지, 정확히 무엇을 모르는지 조차 모른다고 방증하는 것이다. 내가 현재 진행중인 작업이 무엇인지, 모르는 것이 정확히 무엇이며 나의 생각은 어떠한지를 포함해서 질문을 한다면 돌아오는 답변 또한 훨씬 구체적일 것이다.
- 눈치껏..
질문을 받는 상대가 바빠 보이면 알아서 해보자 ^^…77
포인트 일괄 회수 기능 개발
기존에 존재하지 않던, 완전히 새로운 기능 개발 건을 맡게 되었다. 단독으로 맡아서 하는 작업이기도 하고 아예 새로운 기능이었기 때문에 잘 만들고 싶었다. 하지만 시간이 넉넉하지 않아서 가장 어렵다는 빨리, 그리고 잘 만들어야 했다!
포인트 일괄 회수란?
특정 기업체는 직원들에게 달마다 식대로 N원의 포인트 만큼을 지급한다. 이 때 직원이 p일 동안 외근을 나가게 된다면 (p * (N / 한달)) 만큼의 포인트를 회수해야했다. 하나하나 일일이 작업하기엔 꽤나 반복적이고 귀찮은 작업이었기 때문에 여러 기업체가 해당 기능을 요구했다고 한다.
동작 FLOW
어떠한 방식으로 만들면 간단하고 빠르게 여러 명의 직원 포인트를 회수할 수 있을 지 고민하여 엑셀 업로드를 통해 회수를 하기로 결정했고 내가 생각한 FLOW는 다음과 같다.
[FLOW (pseudo code)]
1. 엑셀 템플릿(사번, 회수할 포인트)에 항목 기입 후 업로드
2. 엑셀 파일을 파싱하여 PointInfo 객체에 List 형식으로 저장
3. For Loop (PointInfo : List):
1. if(존재하지 않는 직원인 경우) continue;
2. if (퇴사 직원인 경우) continue;
3. 사번 조회를 통해 보유 포인트 총합 조회
4. if (회수할 포인트 > 보유 포인트)
1. 해당 직원 에러 알림 팝업에 추가
2. continue;
5. 오래된 포인트 순으로 회수 포인트 차감 (메소드 분리)
4. 회수 실패한 직원 목록 출력
이러한 방식의 FLOW를 제안하였고 컨펌을 받았다. 이러한 방식을 채택했을 때 추가적으로 기획해야 하는 부분이 있었는데, 만약 보유 포인트가 부족해서 회수에 실패한 경우 포인트 회수를 아예 하지 않기로 했다.
포인트 회수 실패하는 경우
- 직원이 존재하지 않는 경우
- “존재하지 않는 직원” 출력
- 회수할 포인트가 부족한 경우
- “보유 포인트 부족” 출력
- 직원 포인트 아예 회수하지 않음
- 같은 엑셀 파일 내에 사번이 중복 입력된 경우
- “이미 처리된 직원" 출력
- 중복된 차례는 회수되지 않음 ⇒ 처음 입력된 경우만 회수
- 사번, 회수할 포인트 외 다른 곳에 값이 입력된 경우
- “ERROR” 출력
- 포인트 회수하지 않음
오늘의 메뉴 API 연동
업무 정리 및 회고(3) 에서 결제 로직 순서도 작성한 그 건이다.
키오스크에 바코드를 갖다 대면 결제가 일어나게 되는데 이 때 분기처리를 해야 했고 다음은 약식으로 정리한 수도 코드이다.
if(현재 기업체 == 이마트 본사){
예약여부 = (오늘의 메뉴 API 호출 -> 예약 여부 판단)
if(예약)
break;
}
기존 결제 로직
if(현재 기업체 == 이마트 본사){
(오늘의 메뉴 API 호출 -> 메뉴 수령 처리)
}
기존에 있던 결제 로직에서 분기 처리만 하면 됐기 때문에 기능 자체는 빠르게 개발할 수 있었는데 한가지 어려움을 겪었다. 오늘의메뉴 API 연동규격서를 참고하여 포스트맨을 통해 API 호출을 시도했다. 그러나 계속해서 connection time out이 떴다. 내가 헤더에 토큰을 잘못 입력했거나 인자를 잘못 입력 했겠거니 해서 계속 요리조리 해보다가 시간을 낭비했고 결국 담당자와 직접 통화하게 됐다.. (오늘의메뉴 API 연동 담당하는 개발 담당 최규현 입니다.
~
)
알고보니 회사 운영 서버의 아이피만 방화벽을 허용해놔서 내 로컬에선 작업이 불가능했다. 그래서 아이피 방화벽 허용을 요청했고 이후에 정상적으로 잘 작동했다.
DB 덤프 작업
사수 분과 협의를 해서 운영 디비에서 덤프를 떠서 데이터를 개발 디비로 옮기기로 했다. 그렇게 작업을 시작했는데 곧바로 클라이언트들의 전화가 빗발쳤다.
항상 어떠한 작업을 할 때에는 잘 알고 해야한다. 특히 현업에서는 더욱 그렇다. DB 덤프를 뜨는 과정에서 DB 데이터에 LOCK이 걸리는 걸 생각하지 못했다….. 반성하기
'Activity > Smart Olive' 카테고리의 다른 글
현장실습 마지막 회고, 후기 (2) | 2023.07.18 |
---|---|
업무정리, 그리고 서버 장애 회고 (1) | 2023.05.27 |
업무 정리 및 회고 (4) (0) | 2023.04.02 |
업무 정리 및 회고 (3) (0) | 2023.03.17 |
업무 정리 및 회고 (2) (0) | 2023.03.11 |