Layered Architecture란 말 그대로 계층이 나뉘어져 있는 아키텍쳐를 뜻한다. Layered Architecture의 주된 목표는 어플리케이션을 여러 개의 굵직한 횡단 관심사(cross-cutting concern)로 분리해, 각각의 Layer는 하나의 관심사에만 집중할 수 있도록 하는 것이다. Layered Architecture의 궁극적인 목표는 Application Layer와 Domain Layer가 기술에 대해 가지는 의존성을 최소화하여, 오직 순수한 비즈니스 로직을 작성하는 데에 집중할 수 있게 하는 것이다.
어느날, Java를 프로그래밍 주 언어로 사용하지만 Java에 대한 지식이 부족하다는 생각이 들었습니다. 개발에 필요한 지식만 익히지 말고 이번에는 제대로 기본기를 잡아보자! 하는 결심이 들어서 본격적으로 Java 공부를 다시 시작하게 되었습니다. 프로그래밍을 할 수록 기초가 부족하여 막히는 부분이 생기고, 자신감이 떨여졌습니다. 그때 느꼈던 프로그래밍 학습에 대한 어려움과 극복 방법, 어떻게 연습하면 좋은지에 대한 내용을 정리해 보았습니다.