OOP(2)
-
[OOP] 헥사고날 아키텍처 맛보기
들어가며 개발을 공부하기 시작한 후로 OOP와 SOLID 등 객체지향에 대한 여러 개념에 대해 배웠다. 그러나 실제로 프로젝트를 개발할 때는 이러한 것들을 어떻게 활용해야 하는지 모른 채 찜찜한 채로 개발을 해왔었다. 그리고 TDD까지는 아니지만 테스트를 도입하여 프로젝트를 진행하고 있었다. 그런데 기능이 많아지고 테스트가 많아지면서 테스트 시간이 길어졌을 뿐만 아니라 테스트 코드를 작성하는데 점점 Mocking과 Stub에 대한 의존도가 높아졌다. 이렇게 테스트하는 게 맞나 고민하던 중 인프런에서 Mocking 및 외부 의존성 없이 순수 코드로만 테스트를 작성하는 강의를 보게 되었다. 이 강의에서는 의존성 주입 & 의존성 역전을 활용하여 레이어드 아키텍처에서 헥사고날 아키텍처로 전환하였다. 이를 통해 ..
2023.07.24 -
1. 객체지향 설계와 스프링
1. 스프링의 탄생 배경 초기의 자바 웹 개발은 EJB를 통해 개발했다. 당시에 분산 시스템, 트랜잭션 등과 같은 기능을 지원하고 ORM, 객체지향적 설계 등이 적용된 통합적인 프로그램이었다. 하지만 개발자가 사용하기가 상당히 어렵고 느리다는 단점이 있었다. 그래서 로드 존슨이라는 개발자가 EJB를 비판하며 책을 내는데 이것이 스프링의 시작이 된다. 스프링이라는 이름도 EJB라는 겨울에서 봄(Spring)이 왔다는 뜻으로 붙여진 이름이다. 2. 스프링의 핵심 개념 기술을 배울 때 가장 중요한 것은 그 기술이 어떤 문제를 해결하기 위해 탄생했는지, 핵심 원리가 무엇인지 파악하는 것이다. 그 외의 것들은 부가적인 부분인 것이다. 이를 깨우치면 아무리 기능이 많아지더라도 빠르게 기술을 습득할 수 있다. 스프링..
2021.11.22