본문 바로가기

스프링3

[스프링과 객체지향 2편] 객체지향 설계의 5가지 원칙(SOLID) 좋은 객체지향 설계를 위해 따르는 5원칙을 SOLID라고 한다. SRP, OCP, LSP, ISP, DIP의 앞 글자를 따서 얻어진 이름이다. 이 다섯 가지의 원칙을 지키면, 확장과 변경에 유연하고 유지보수가 쉬운 소프트웨어를 개발할 수 있다. SOLID와 Spring이 무슨 상관이냐고 물을 수 있다. 결론부터 말하면, SOLID를 지켜서 코드를 작성하면 유지보수가 쉬운 것은 사실이지만, 작성해야 할 코드량이 굉장히 많아져서 때로는 배보다 배꼽이 큰 상황이 생길 수 있다. Spring Framework는 이런 상황을 해결해주기 위한 다양한 기능을 제공해준다. 하나의 예시로, 스프링 프레임워크의 의존관계 자동 주입 기능은 OCP와 DIP를 지키기 위해 사용하는 Config Class의 코드량을 엄청나게 줄.. 2022. 7. 3.
[스프링과 객체지향 1편] 객체지향과 다형성 스프링은 객체지향의 특성을 살려 웹 애플리케이션을 개발할 수 있도록 도와주는 프레임워크이다. 그렇기 때문에 우리가 스프링을 사용하는 이유를 알기 위해서, 스프링을 더 잘 사용하기 위해서 먼저 객체지향에 대한 이해가 필요하다. 객체지향 프로그래밍 (OOP) : 프로그램을 단순히 코드를 위에서 아래로 순차적인 실행으로 개발하는 것이 아니라, '역할'과 '책임'이 부여된 객체들의 '협력' 관점에서 프로그램을 설계하고 개발하는 것을 말한다. 객체지향의 특징 네 가지 본 내용은 추후에 책 내용을 정리할 때 더 자세히 쓸 예정이다. 이 글에서는 다형성이 가장 중요하다는 것만 알고 넘어가자. - 추상화 - 캡슐화 - 상속 - 다형성 왜 객체지향적으로 프로그램을 설계하고 개발해야 하는가? : 프로그램을 객체지향적으로 .. 2022. 6. 25.
[스프링과 객체지향 0편] Spring을 공부하는 이유 요즘 취업 준비를 하다보니 면접을 자주 보고 있는데, 다음과 같은 질문을 받은 적이 있다. "왜 하필 Spring을 공부하고 있는가?" "Spring 프레임워크가 무엇인가?" "Spring boot는 무엇인가?" "객체지향적 설계가 무엇인가?" "객체지향 5원칙을 지키면서 개발한 적이 있는가?" 내가 Spring을 공부하기 시작한 이유는 단순히 백엔드 개발자가 되고 싶고, 우리나라에서 가장 많이 쓰이는 백엔드 프레임워크가 Spring Framework이기 때문이었다. 그래서 막상 이런 질문이 들어오면, 당황과 함께 '많이 쓰이기도 하고, Spring이 객체지향 언어인 Java로 웹 개발을 하는 데 있어서 도움을 주는 것 같다' 라고 대충 얼버무리며 답변해왔다. 스스로도 답변의 양과 질이 매우 부족하다고.. 2022. 6. 25.