개발자

Java로 연산할지 DB로 넣을지

2024년 03월 22일조회 79

현재 erp 제작 연습을 하고있는 코린이입니다 휴가 신청부분에서 막히는 부분이있는데요 연차 신청 할때 시작일~종료일을 DB에 담기게하고있었습니다 여기서 개인별 연차 사용일수를 고용일과 현재 날짜와 비교하는 계산식을 만들어 연차가 사용 될 수 있는 날짜를 제한 할 수있게 만든다음 (고용일기준사용가능한날짜)-(신청된모든휴가신청서) =값을 VIEW에표현하는게 좋을까요? 아니면 사원마다 고용일 기준 사용가능한 일수를 모두 DB에 담아서 매번 신청될때마다 사용가능한 일수를 감소시키게 DB를 설정하고 감소된 일수를 VIEW로 표현하는게 맞을까요? 제 질문의 의도는 계산되는 값들을 모두 DB에 담아서 view로 꺼내게쉽게 만드는게 좋은걸까요? 아니면 필요한 값만 DB에 넣고 Java코드를 통해 연산되어 View에 표현하는게 좋을까요? 고민입니다..

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 1

박정환님의 프로필 사진

재미있는 로직을 구현하시네요. 데이터의 총량(총 사원이 몇명인지?)을 파악하는것이 우선일것 같습니다. 데이터가 적다면 일일히 쿼리를 날리거나 연산을 해도 될거 같고요, (서버단에서 계산) 데이터가 많다면 view테이블화 시키는것도 방법이겠지요. 백엔드단의 로직이 복잡해질 우려가 있으니 차후를 생각한다면 view테이블화 시키는게 나아보입니다. 구현해보시고 맞는 방법을 선택해보세요.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 03월 22일

이와 같은 문제는 상황과 요구 사항에 따라 다르지만, 일반적으로 계산 로직은 비즈니스 로직으로 간주되어 백엔드(여기서는 Java)에서 처리하는 것이 좋습니다. 1. Java에서 처리하면 코드의 이해도가 높아지고 유지보수가 용이합니다. 즉, 코드를 통해 무슨 일이 벌어지는지 명확히 알 수 있습니다. 반면, DB에 저장된 계산 로직을 찾아서 확인하는 것은 상대적으로 복잡할 수 있습니다. 2. DB에 넣으면 DB의 부하가 증가하므로 성능 저하가 발생할 수 있습니다. 자원 사용을 최소화하기 위해서는 필요한 데이터만 DB에 저장하는 것이 바람직합니다. 3. 애플리케이션 레벨에서 연산을 수행하면 데이터 형식 등을 보다 유연하게 처리할 수 있으며 연산 결과를 다른 방식으로 활용하기도 쉽습니다. 그러나 한 가지 주의해야 할 점은 재사용 가능성입니다. 만약 특정 연산 결과가 애플리케이션 여러 곳에서 필요로 한다면 그때는 중복 계산을 피하기 위해 DB에 저장하여 재사용하는 것도 고려해볼 만한 방법입니다. 하지만 이 경우에도, 처음에는 Java에서 계산 로직을 구현하고 그 결과를 DB에 저장하는 것이 좋습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!