꽤 예전 일이다.
내가 이제 어느 정도 개발을 할줄 안다고 생각하는 시점에서 큰 기업을 경험할 수 있는 기회가 있었다.
그곳에서도 스프링을 사용했는데 정말 엄청 방대한 서버 코드가 있었다.
나름대로
프로젝트 파일 구성을 보면서 과연 관습적으로 쓰는 serviceImpl 클래스가 필요할까?
Validation이 기능마다 따로 있는 것을 보고 General Validation으로 한 파일로 관리 할 순 없나?
등등의 고민도 할 줄 알게 되었다며 와 이런 생각 하는 사람 있을까?ㅋ(전세계에 있었다) 하면서 자만하고 있을 때
@Pointcut 이라는 걸 보았다.
이게.. 뭐지? 새로운 어노테이션을 보았다. 포인트컷?
검색해보니 AOP 관점 지향 프로그래밍이란다. 스프링부트 기술 중에서도 고급에 속하는 기술이었다.
난 아직도 삐약이였구나..더 깊은 세계가 있구나.. 생각하면서 그 심연을 들어가보려다가
잠깐 봤는데 어려워서 일단 존재를 알아만 두었다.
그간 쓸 일이 없다가 최근 생각이 나서 다시 검색해보는데 Reddit에서 외국인들이 토론하는 것을 보았다.
해당 글은 질문자가 스프링부트를 사용하다보니 성장 욕구가 생겨서 고급 스프링부트의 지식을 원하는 글이었는데
답변자들의 이야기가 생각할 거리를 던져주었다.
고급 스프링은 어려워도 쓸 줄 알면 정말 편해지지만 코드 이해에 어려우니 협업할 때에 있어서는 그닥 좋은 선택지가 아니라는 것이다.
고급 기능을 쓴다고 해서 프레임워크를 잘 사용한다고 할 수 있다고 말할 수 있는 것도 아니라는 것이다.
오... 너무나 좋은 관점이다. 어려운 기술을 쓴다고 해서 다 좋은 것이 아니라는 것.. 간단하고 직관적인 것이 좋다는 점(간단하고 직관적이라는 것에는 개인차가 있지만)
사실 관점 지향 프로그래밍을 했건.. 어떤 특별한 기술을 적용을 했건 결국 개발자들만의 세상이다.
과연 같은 기능을 고급 기술로 만드는 것과 간단하고 직관적인 기술로 만드는 것 중 무엇이 좋은걸까..
'JAVA > Spring' 카테고리의 다른 글
| Spring Data JPA 이렇게 편리하다니... (0) | 2023.08.31 |
|---|---|
| Spring Security authorizeRequests() 폐기에 따른 대안.. (0) | 2023.05.19 |
| WebClient를 이용한 API 호출과 그 리턴 값 다루기(JSON) (2) | 2022.08.03 |
| Map에서 정수를 꺼낼 때 java.math.BigInteger cannot be cast to java.lang.Integer 오류 (0) | 2022.07.18 |
| [MyBatis] 방금 insert한 테이블의 Auto Increasement 값 가져오기 (0) | 2022.06.29 |
Comment