급여 시스템을 개발하다 보면 나이 계산이 필요한 경우가 많다. 퇴직금 산정, 연금 수령 시기 계산, 정년 체크 등에서 생년월일 기반 정확한 나이 계산이 필수다. 나이 계산기를 만들면서 알게 된 나이 계산의 복잡한 점들을 정리해본다.
만 나이 vs 세는 나이
한국에서는 2023년부터 법적으로 만 나이를 사용하지만, 여전히 시스템에 따라 다른 나이 기준을 쓰는 경우가 있다. 만 나이는 태어난 날부터 0세로 시작해서 생일마다 1씩 증가한다. 세는 나이는 태어나면 1세, 매년 1월 1일에 1씩 증가한다.
function getKoreanAge(birthDate) { const today = new Date(); return today.getFullYear() - birthDate.getFullYear() + 1; }
function getInternationalAge(birthDate) { const today = new Date(); let age = today.getFullYear() - birthDate.getFullYear(); const m = today.getMonth() - birthDate.getMonth(); if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) age--; return age; }
bluec.kr/age-calc에서 두 가지 나이를 모두 계산해볼 수 있다.
국민연금 수령 나이 계산
국민연금 수령 나이는 출생연도에 따라 다르다. 1969년 이후 출생자는 만 65세부터 수령 가능하다. 그 이전 출생자는 61~64세 사이에서 시작한다. 급여 시스템에서 이걸 계산하려면 출생연도별 매핑 테이블이 필요하다.
const pensionAge = { 1952: 60, 1956: 61, 1960: 62, 1964: 63, 1968: 64, 1969: 65 };
정년 계산과 퇴직금
한국의 법정 정년은 만 60세다. 정년 도래일을 정확히 계산하려면 생년월일에서 60년을 더한 날짜가 아니라, 60세 생일이 포함된 달의 말일까지가 정년이다. 회사 규정에 따라 달라지기도 한다.
퇴직금 계산에서도 정확한 근속 기간이 필요한데, 이때 만 나이처럼 날짜 단위로 계산한다. 나이 계산 도구의 로직을 응용하면 근속 기간도 정확히 계산할 수 있다.
연나이의 활용
연나이는 현재 연도에서 출생연도를 뺀 값이다. 빠른 년생 같은 개념에서 사용된다. 예를 들어 1990년 1월생과 1990년 12월생은 만 나이가 다르지만 연나이는 같다. 동기 입사, 학번 계산 등에서 연나이를 쓴다.
시스템 설계 시 고려사항
나이 관련 데이터를 다룰 때는 생년월일을 기본으로 저장하고, 필요에 따라 나이를 계산하는 게 좋다. 나이를 저장해버리면 매년 업데이트해야 하는 문제가 생긴다. 생년월일만 있으면 어떤 시점의 나이든 계산할 수 있다.
요약
나이 계산은 단순해 보이지만 법적 기준, 연금 제도, 회사 규정에 따라 다양한 방식이 있다. 정확한 계산이 필요하다면 온라인 나이 계산기를 참고해볼 수 있다.