본문 바로가기

☕Java101

SOLID 원칙 객체 지향 언어로 프로그래밍을 하는 사람이라면 SOLID 원칙을 들어본 적이 있을 것이다. SRP, OCP, LSP, ISP, DIP 다섯 가지 원칙의 앞글자를 따서 부르는 것인데, 설명들은 많이 있지만 실제 프로그래밍을 사용할 때 기억하고 그 원칙을 지키려면 잘 기억하고 있어야 할 것 같아서 짧게 정리해보려고 한다. 각 원칙을 한 문장 내외로 축약할 것이다. SRP(Single Resposibilitiy Principle, 단일 책임 원칙): 하나의 클래스와 그것을 구성하는 각각의 메서드들은 각각 하나의 책임을 가져야 한다. OCP(Open-Close principle, 열림 닫힘 원칙): 확장은 가능하지만 수정은 지양한다.(확장에 열려 있고 수정에 닫혀 있다. LSP(Liskov Substitutio.. 2022. 6. 26.
web.xml이란? 앞서 자바 웹 애플리케이션 구조를 살펴보았다.(https://lifewithcoding.tistory.com/207) 웹 애플리케이션 구조에서 보았던 web.xml 파일에 대해 자세히 알아보자. 자바 웹 애플리케이션을 빌드하여 패키징한 war 파일 내부를 보면 web.xml 파일이 존재한다. 이 web.xml 파일은 배포 기술서(Deployment Descriptor)라고도 하는데, 웹 애플리케이션을 실행할 때 필요한 설정들을 담고 있다. web.xml에 서블릿, 필터, 리스너를 등록할 수 있다. 웹 애플리케이션은 요청이 들어오면 그 요청을 수행할 컨트롤러를 찾아 작업을 수행하도록 하고 그 결과를 응답으로 전송한다. 그 과정에서 어떤 URI로 요청이 들어왔을 때 어느 서블릿에게 요청을 전달할 것인지 매핑.. 2022. 6. 19.
자바 웹 애플리케이션 구조 웹 개발을 한다는 것은 WAS(Web Application Server)에서 실행할 수 있는 웹 애플리케이션을 만드는 것이다. 웹 애플리케이션도 역시 프로그램이고 사람이 작성한 소스 코드대로 컴퓨터가 명령어를 실행한다. 간단한 프로그램을 만든다고 했을 때는 개발자가 모든 로직을 스스로 구현하는 것이 가능하다. 하지만 그 규모가 커지고 반복적인 작업이 많아짐에 따라 다른 사람이 작성한 코드를 가져다가 쓰게 된다. 결국 하나의 애플리케이션은 자신이 작성한 코드와 다른 사람들이 작성해 놓은 라이브러리가 결합되어 있는 구조이다. 자바 웹 애플리케이션 구조도 그와 같다. Web Application │ └─WEB-INF │ ├─ classes │ ├─ lib │ └─ web.xml 자바 웹 애플리케이션 코드를 작.. 2022. 6. 13.
생성자 주입을 권장하는 이유 스프링의 의존성 주입 방식에는 수정자(setter) 주입, 필드(field) 주입, 생성자(constructor) 주입이 있다. 그중에서 생성자 주입이 다른 방식보다 권장된다. 그 이유들을 간단히 살펴보자. 객체를 불변(immutable)으로 만들 수 있다. setter를 사용하는 주입은 실행 중 언제든지 객체를 변경할 수 있지만, 생성자 주입은 객체를 final로 선언할 수 있어 처음 주입된 이후 변경이 불가능하다. 애플리케이션 실행 시 의존성을 반드시 주입하여 NullPointerException을 방지한다. 컴파일 시에 어떤 이유에서든 의존성이 주입되지 않는 경우를 막아서 실행 중에 NPE를 막을 수 있다. 순환 참조를 막아준다. 한 객체가 다른 객체를 서로 참조할 경우 stack overflow의.. 2022. 5. 30.
728x90