걍 개인적 경험에 의한 지랄임
1단계
Java Servlet이라도 제대로 한다

2단계
스프링을 쓸 줄 안다

3단계
스프링 기반의 프로젝트를 pom.xml을 고쳐가며 배포할 줄 안다

4단계
스프링 기반의 환경을 WAS에 올려서 실제 운영처럼 이중화 구성을 할 줄 안다

5단계
WAS를 mod jk든 nginx reverse proxy든 써서 최대한 실제 운영 환경에 가까운 구성을 올릴 수 있다

6단계
애플리케이션을 컨테이너에 올려 유연하게 배포할 줄 안다

7단계
1~6단계의 과정을 형상관리도구 CI CD툴 연동을 사용해 자동화 할 줄 안다

8단계
1~7단계에 맞는 아키텍처로 애플리케이션을 개발할 줄 안다

9단계
GC나 JVM HEAP을 까보고 내 어플리케이션이 왜 좆같은지를 이해하고 이걸 모니터링하기 위해 BCI를 쓴다거나 RMI등을 이용해 원격에서 런타임에 모니터링 할 수 있다

번외
스프링을 쓴다면 스프링 루트컨텍스트부터 어플리케이션이 올라가는 구조와 빈이 초기화되는 과정과 의존성 주입을 통해 인스턴스로 쓰는 과정과 내가 주로 가져다 쓰는 어노테이션이 내부적으로 뭘 가져다 쓰는지와 스프링의 중요 추상화 클래스들이 뭔지 안다