유틸리티

생년월일 기반 나이 계산 알고리즘과 연금 수령 나이 산정

급여 시스템을 개발하다 보면 나이 계산이 필요한 경우가 많다. 퇴직금 산정, 연금 수령 시기 계산, 정년 체크 등에서 생년월일 기반 정확한 나이 계산이 필수다. 나이 계산기를 만들면서 알게 된 나이 계산의 복잡한 점들을 정리해본다.

만 나이 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월생은 만 나이가 다르지만 연나이는 같다. 동기 입사, 학번 계산 등에서 연나이를 쓴다.

시스템 설계 시 고려사항

나이 관련 데이터를 다룰 때는 생년월일을 기본으로 저장하고, 필요에 따라 나이를 계산하는 게 좋다. 나이를 저장해버리면 매년 업데이트해야 하는 문제가 생긴다. 생년월일만 있으면 어떤 시점의 나이든 계산할 수 있다.

요약

나이 계산은 단순해 보이지만 법적 기준, 연금 제도, 회사 규정에 따라 다양한 방식이 있다. 정확한 계산이 필요하다면 온라인 나이 계산기를 참고해볼 수 있다.