개발자

스프링부트에서 클린코드 사용 관련 질문

2024년 05월 13일조회 127

안녕하세요 선생님들 현업에서는 정말 아무 생각없이 사용하고 있는 개발 방식이었는데 클린 코드라는 책을 접하면서 고민이 되는 부분이 하나 있습니다. SpringBoot ServiceImpl 구현 부분에서 만약 로그인 API를 개발한다는 가정하에, 로그인 API 에는 수많은 기능들이 포함될 수 있습니다.(유효성 검증, 비밀번호 5회 연속 시 잠금, 권한에 따른 페이지 이동 기능 등등) 하지만 클린 코드의 원칙 상 '되도록 하나의 메소드는 하나의 기능만을 포함한다.' 라는 원칙에 위배되기 때문에 각각의 기능을 분리하여 작성하는 것이 맞을듯 합니다. 그러나 각각의 수많은 부가기능(이 될수도 있는)들을 만들면 인터페이스와 클래스의 개수도 그만큼 늘어나게 되고 개발에 소요되는 시간도 늘어납니다. 실제로 제가 있었던 SI회사에서는 하나의 큰 기능(로그인 API) 자체를 기준으로 메소드를 만들고 부가 기능들을 모두 하나로 구현하였습니다. SI 특성 상 마감시간 내에 빨리 완성시켜주고 빠지면 땡이기 때문에 이런 것이라 생각되는데 만약 시간적인 압박이 있는 SI개발에서 두 부분중 어떤 원칙을 지키는 것이 효율적인지에 대한 고민이 되는데 길을 좀 알려주시면 감사드리겠습니다.

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

답변 1

cozy님의 프로필 사진

안녕하세요 ! 뛰어난 분들이 많은 커리어리에서 제가 감히 말하기 조심스럽지만, 제 개인적인 생각을 말해볼게요 ! 답을 A 또는 B라고 말하기는 애매한 주제인 것 같아, 단일 책임 원칙에 가깝게 구현하기 위해 최대한 노력하자 가 베스트인 것 같습니다. '시간적인 압박이 있는' 이 부분 때문입니다. 결국 저희는 공부를 하기 위해 회사를 온 게 아니라 일을 수행하기 위해 회사를 왔기 때문이죠 저도 이펙티브 자바라는 책을 읽고 있고, 개발을 할 때 최대한 이펙티브 자바가 말하는 지향점을 따르고 지양점은 멀리하려고 합니다. 근데 사실 그게 일하면서 쉽지 않더라고요. 왜냐하면 우리는 모두 시간이 부족하잖아요. 🥲 그래도 저는 실제 구현하지 않더라도 고민을 하고 또는 GPT를 통해 최소한의 시간으로 스스로 고민한 것에 대한 예제 코드라도 뽑아보면서 최대한 이상점에 가까워지기 위해 노력하는 거 같아요

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

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

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

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