Bluu 인턴십에서 나온 작은 프로젝트들

2025-08-29

인턴십 기간동안 무엇을 했는지 글을 작성하려고 했었는데, 오늘까지 할 기회가 없었습니다. 2025년 여름방학 기간 중 만든, 공유를 수락받은 두 프로젝트를 나열해보겠습니다:

보고서 도구

많은 회사들은 직원들이 하루에 무슨 일을 했는지 시간 추적 및 관리하는 시스템을 갖추고 있습니다. 제 경우에는 개인 리포트를 작성한 후, 다른 팀원들과 합치고 병합된 리포트를 팀 전체 리포트로 전송해야 됐죠. 문제는, 한 테이블로 병합하는 과정이 꽤 까다로웠고, 만약 누군가가 이미 만들어진 테이블을 수정해야 했다면 테이블 레이아웃이 바뀌어 문제가 많이 생겨버렸습니다.

따라서 사용자들이 하루 일과 아이템을 바로 입력하고 개인 리포트로 출력, 그리고 한꺼번에 한 테이블로 병합해주는 웹앱을 만들어봤습니다. 이름과 프로젝트명의 계급/중요도 순서를 사용하여 자동으로 테이블을 정렬해주는 편의 기능들도 넣었습니다. (숨겨진 이스터 에그도 있죠!)

여기에서 웹앱을 확인하실 수 있습니다. 그리고 소스 코드는 여기에서 확인하실 수 있습니다.

소스 코드를 보시기 전에 한 가지 설명할 부분이 있습니다. README.md 파일에서도 언급했지만, 페이지는 그냥 한 HTML 파일 안에 인라인 (inline) Babel과 <script> 태그들을 넣어 만들었습니다. 이 웹앱을 작성할 때 직장 컴퓨터에는 개발 도구가 설치되어 있지 않았고, 개인 컴퓨터에서 작성해서 넘기는 것도 골치아픈 부분이 많았을 것이기에 이렇게 진행하게 되었습니다. 그래서 한 파일 안에 모든 게 작성되어 있지만, 우려했던 것만큼 편집하기 어렵지 않았습니다. VS Code 같은 최신 텍스트 편집기/IDE로 수정했는데, 얘는 공교롭게도 Microsoft Store 어플에서 바로 다운받을 수 있었습니다.

자동 출퇴근 스크립트

ADP는 급여/인사 플랫폼으로, 회사들이 직원들의 출퇴근 기록을 추적하는데 많이 사용합니다. ADP의 한 가지 문제점은 (아니면 브라우저의 문제랄까요?) Microsoft Edge에서 비밀번호 자동완성 기능이 동작하지 않는다는 점입니다. 그래서 매일 출근할 때마다, 자리까지 뛰어가서 윈도우가 절전모드에서 나오길 기다린 다음, ADP 페이지가 완전히 로딩될 때까지 기다리고, (짐승처럼) 비밀번호를 일일히 입력하고, 메인 페이지가 로딩될때까지 기다린 다음, 마침내 “출근” 버튼을 클릭해야 했습니다.

그래서 일반적인 일반인이 할만한, 다른 크로미움-기반의 브라우저로 변경하기보다, ADP 출근을 자동으로 진행해줄 Python 스크립트를 작성했습니다. 이제 출근하면 바로가기 하나만 클릭한 다음 가서 커피를 내려오면, 다시 자리에 올때쯤 출근 처리가 완료되어 있었죠.

경고 1: ADP가 만약 웹사이트 디자인을 변경할 경우 이 스크립트가 부러질 수 있습니다. (아니, 거의 당연히 부러질 수 밖에 없겠죠.)

경고 2: 타이밍에 의존하는 스크립트이다 보니 가끔씩 불안정하게 작동하는 경우가 있는데, 커피를 타온 다음에 제대로 출근 처리가 되었는지 확인이 필수입니다!

경고 3: 출근한 다음에 수동으로 스크립트를 돌리는 것은 괜찮지만, 만약 어떤 스케줄러에다가 연결해둔 다음에 출근하지도 않고 자동으로 출근처리를 돌려버리면 불법일 수 있습니다. 전 변호사가 아니니, 법률 상담은 직접 구하세요.

스크립트 전체를 올려둔 Gist 링크입니다. 로그인 정보를 제공해야 되고, 사용하고 있는 브라우저에 맞는 WebDriver 경로를 수정해야 할 수 있습니다.

그걸로 이 글을 마치겠습니다! 이번 여름에 만든, 공유를 허락받은 조그만 잡동사니로 생각해주시면 됩니다.