목록고민과 의사결정 (4)
정글에서 온 개발자
Golang으로 작성된 레거시 프로젝트를 이어받아서 feature를 개발하던 중 테스트 코드를 작성하고 싶어졌다.이유는 내가 짠 api에서 성능 개선을 해보겠다고, 혹은 response 데이터를 변경하면서 이전에 잡았던 버그를 다시 내는 일이 몇 번 있었기 때문이다.이 때마다 hot fix로 PR을 다시 날리는 것도 귀찮고, 내가 짠 코드라고 방심하고 함부로 코드를 정리하다가 큰일 날 수도 있겠구나 하는 생각이 들었다.종합적으로 테스트 목적 중 ‘회귀 방지’를 위해서 도입하고자 했다.고민테스트 코드를 짜려고 하다 보니 걸리는 게 있었다.api 하나를 통째로 여러 케이스로 검사하는 게 unit 테스트가 맞나?테스트가 어떻게 실제 DB에 영향을 안 줄 수 있을까?1. API 전체 테스트?단위 테스트에서 말하..
공부 동기쿼리를 통해 나온 결과를 엑셀 파일로 제공하는 기능을 개발하던 중, 일반화 프로그래밍을 위해 쿼리로 가져온 값을 배열로 일반화해야 했다. GPT는 go 리플렉션을 추천했는데 이전부터 공부하고 싶던 주제라 찾아봤다.리플렉션이란?프로그램 실행 중(런타임)에 자기 자신의 구조와 동작(클래스, 메서드, 속성)을 검사하거나 수정할 수 있는 능력동적으로 코드를 조작할 수 있음요약하면 객체의 메타적인 정보를 다루게 해준다사용되는 주요 사례프레임워크와 라이브러리JSON, XML 등 데이터 직렬화테스트 코드단점성능 저하 - 런타임에 메소드, 필드에 접근하기 위한 추가적 처리가 필요하기 때문코드 가독성 떨어짐예상치 못한 동작 - private 메서드 등에도 접근 가능하기 때문지원 언어자바, C#, 파이썬, 자바..
기존 방법기존에는 휴가 신청서라는 개념 없이, 휴가를 개별 등록하고 개별 승인 받도록 하였다.요구 사항과 문제상황하지만, 프로젝트를 진행하면서 ‘휴가 신청서’를 받고, 결재(1차, 2차)를 하고, 필요할 때 한번에 출력 (관공서 제출용) 하고 싶다는 요청이 있었다.기존에 휴가를 단일하게 관리하면, 승인,반려 취소시 엔티티 하나만 신경 쓰면 됐다. 하지만 ‘휴가 신청서’라는 더 큰 객체에 휴가가 포함이 돼버리면 휴가 신청서 전체의 승인과, 개별 휴가의 승인을 개별로 관리해야 한다.또 다른 문제는 휴가의 ‘변경과 취소’ 다. 이럴 때 종이 서류로 처리할 경우, 어떤 휴가를 어떻게 바꾸고 싶고, 어떤 휴가를 취소하고 싶은지 ‘변경 신청서’ 를 새로 쓰면, 그 신청서에 따라서 기존 휴가를 조정하거나 삭제한다.이..
연차 촉진의 개요휴가가 남으면 휴가를 쓰도록 촉진. 촉진시 미사용 휴가 수당이 면제됨1차 촉진, 2차 촉진, 노무 거부로 이루어짐모든 과정은 근로자가 인지할 수 있어야 함.필요한 이유연차 촉진구성원의 자유로운 휴가 사용 장려.회사의 미사용 연차 수당 지급 부담 경감번거로운 절차 해소회사 : 구성원 별 연차 계산, 1차 촉진, 2차 촉진, 노무 수령 거부 등의 프로세스구성원 : 연차 일수 관리, 변경 시 재결재, 팀원과 일정 조율 등연차 촉진을 하긴 하고 싶은데, 과정이 너무 복잡해서 필요하다.해결해야 할 문제들법령대로라면 사람마다 연차가 발생하는 시기가 다르고, 촉진해야하는 시기가 다르다.개별 관리가 어려워 회계일 기준 관리를 허용해줬다.이 과정에서 휴가가 발생하는 기준이 회사마다 다르다. (휴가 선지급..