확장성(2)
-
???: 확장&유연한 설계가 중요해요? 그럼 이걸 안 볼수 없는데?
1. 배경과 한계저는 회사의 기존 인증/인가 시스템을 개선하기 위한 작업을 진행했습니다. 회사는 Spring Security를 사용해 인증/인가 시스템을 구축하려 했으나, 도입 과정에서 여러 문제에 직면했습니다. Spring Security는 강력한 기능을 제공하지만, 설정이 복잡하고 유지보수가 어려운 단점이 있었습니다.또한, 기존 전역 필터와 새롭게 도입하려는 Spring Security Filter Chain 간의 충돌 문제가 발생했습니다. 기존 시스템은 전역 필터를 통해 인증과 인가를 처리하고 있었고, 이 필터들이 Spring Security의 Security Context를 사용하고 있었습니다. 이로 인해 새로운 Spring Security Filter Chain과 충돌이 발생했고, 이를 해결하기..
2024.10.13 -
Java 이해도 미쳤ㄴ,,,? 면접관님 이거 한번 보세요 (Java 계산기)
프로젝트의 시작 어느 날 익명의 기업으로부터 흥미로운 과제를 받았습니다. 과제의 내용은 다음과 같았습니다. 💡 회사는 스프린트 단위로 프로젝트를 진행합니다. 이번 스프린트에서는 사칙연산, 다음 스프린트에서는 삼각함수를 구현할 예정입니다. 추후에는 로그, 미적분이 예정되어 있습니다. 확장에 유리한 설계를 해주세요. v1. 설계의 시작과 문제점 인식 초기에 저는 사칙연산을 처리할 수 있는 간단하고 직관적인 설계를 구상했습니다. 이를 위해, 사용자의 입력을 분석하고 연산을 수행하는 Calculator 클래스와 연산을 추상화하는 Operation 인터페이스를 도입했습니다. 또한, 연산 종류에 따라 적절한 연산 객체를 생성하는 OperationFactory 클래스도 만들었습니다. 하지만 이 설계는 곧 두 가지 큰..
2024.03.01