AOP란 Aspect Object Programming의 약자로 관점 지향 프로그래밍이라고 한다. 객체 지향 프로그래밍의 보완성으로 나온 프로그래밍방식이라합니다. 어떻게 보면 객체 지향의 상위 호완이라 생각할 수 있겠지만, 그거는 설명하기 귀찮기때문에 넘어가자. 여기에 서로 다른 클래스가 존재한다. 3개의 클래스안에는 공통적인 기능이 존재한다. 공통적인 기능이 존재해도 3개의 클래스 모두 같은 기능을 추가해야한다. 물론, 리펙토링을 통해 이것을 처리할 수 있겠지만, 애초에 리펙토링 자체도 코드 한줄을 입력해야 되는 것이기 때문에 어떻게 보면 3개의 기능을 추가한다는 건 다르지 않는다. 그러면 관점을 조금만 바꿔서 생각해보자. 만약에 클래스가 시작할때, 클래스가 종료될때 로그를 찍히게 만들 수 있게 한다면..
스프링에서는 다양한 방법으로 DI와 IOC(Injection Of Controller) 를 지원한다. 근데 이들이 어떤것이 존재하는지 알 필요가 있을까? 내 생각에는 종류를 아는 것도 중요하지만, 용어의 뜻부터 아는 것도 중요하다고 생각이 든다. 먼저 DI는 dependency Injection의 약자로 의존성 역전이 되었다는 의미라 할 수 있다. 여기서 의존성이란 존재함을 의미한다. 일반적으로 의존하고 있다는의미는 마치 부모가 자식을 낳는 듯한 느낌처럼 자식이 탄생하기 위해서는 부모가 반드시 있어야 된다는 뜻이다. 이것을 코드화 시켜보자. public class Parents { public void birth() { Child child = new Child(); } } 부모가 birth라는 메서드를..
최근에 스터디에서 쿠버네티스를 하게 되었다. 그 과정에서 15단계로 배우는 도커와 쿠버네티스를 공부하게 되었다. 그래서 이를 바탕으로 작성하려 한다. 이 책에 나와 있는 최대한의 정보를 내 나름대로 가공해서 전달할 예정이다. 그런 과정에서 이해하기 힘든 표현이 존재할 수 도 있겠지만, 나에게 그딴건 중요하지 않는다. 왜냐하면 남들이 어떻게 이해했냐가 중요한것이 아니라 내가 쿠버네티스를 이해하는 것이 중요하다고 생각하기 때문이다. 그래서 모든 내용들을 내가 궁금한 것 으로 채울 예정이다. 쿠버네티스란? 쿠버네티스는 컨테이너화된 애플리케이션을 효율적으로 배포하고 운영하기 위해 설계된 오픈 소스 플랫폼이다. 이라고 하는데 솔직히 컨테이너가 뭔지 모르겠다. 이에 대한 내용은 나중에 2장에서 설명할 것이지만 내 ..