AOP 관심 지향 프로그래밍, Aspect Oriented Programming의 축약어이다. 애플리케이션에 필요한 기능 중 공통적으로 적용되는 공통 기능에 대한 관심과 관련 있다. 공통 관심 사항 애플리케이션 전반에 걸쳐 공통적으로 사용되는 기능에 대한 관심사이다. 횡단 관심사라고도 한다. 보안, 트랜잭션, 로깅 등이 이에 속한다. 핵심 관심 사항 애플리케이션의 주목적을 달성하기 위한 핵심 로직에 대한 관심사이다. 커피 키오스크를 예로 들자면, 커피 종류를 등록하는 것과 커피를 주문하는 기능 등이 이에 속한다. ☞ AOP는 핵심 업무 로직에서 공통 기능 로직을 분리하는 것을 의미한다. 왜 분리하는 것일까? AOP가 필요한 이유 부가 기능은 여러 클래스에 걸쳐서 사용된다. 핵심 기능이 포함된 클래스에도 ..
글을 게시하기에 앞서 제대로 된 이해가 되지 않은 상태에서 글을 작성하고 있다는 점, 그렇기에 두서없이 글이 작성될 수도 있고 틀린 부분이 많을 수도 있다는 점 양해 바랍니다. (스스로 개념을 되짚으면서 이해하려고 쓰는 글입니다.) Java 기반 Container 설정 중요 애너테이션 @Configuration 설정 파일(사용하는 빈의 정보와 의존성 정보가 담김)을 만들기 위한, 또는 Bean 등록하기 위한 애너테이션이다. 가시적으로 "얘는 설정 파일이야~", "내가 Bean을 갖고 있어~"라는 것을 알 수 있다. 궁극적으로 해주는 역할은 빈을 등록할 때 싱글톤이 되도록 보장해주며, 스프링 컨테이너에서 빈을 관리할 수 있게 된다. 클래스 레벨에서만 사용한다. (우리가 생성할 객체 클래스 위에 작성) @B..
글을 게시하기에 앞서 제대로 된 이해가 되지 않은 상태에서 글을 작성하고 있다는 점, 그렇기에 두서없이 글이 작성될 수도 있고 틀린 부분이 많을 수도 있다는 점 양해 바랍니다. (스스로 개념을 되짚으면서 이해하려고 쓰는 글입니다.) DI를 학습하기 전에 두 가지의 개념을 짚고 가야 한다고 생각한다. 바로 객체 간의 의존성에 대한 내용과 IOC다. 우리는 실습 등을 통해 임의의 샘플 프로그램을 작성하면서 직접 코드를 작성하고, 코드들 간의 관계를 부여한다. 여기서 말하는 관계는 예로 들자면 'A라는 클래스가 B의 클래스의 기능을 사용하는 것'을 들 수 있고, 이는 다르게 말해서 'A라는 클래스는 B라는 클래스에 의존하고 있다'라고 말할 수 있다. (A라는 클래스는 B라는 클래스가 없으면 결국 작동하지 못하..
Spring의 가장 기본이 되는 실습환경 구성부터 진행하였다. Spring boot기반의 샘플 프로젝트를 생성해서 실행이 잘 되는지 확인했다. Lombok = 애노테이션을 통해 자주 사용하는 Java코드를 자동으로 구성해주는 라이브러리. Spring Web = Spring기반의 웹 애플리케이션을 개발하는데 필요한 의존 라이브러리들을 자동으로 설정해주는 모듈 포함. 프로젝트를 새로 생성하여 IntelliJ에서 실행시켜 봤는데 오류가 발생했다. 1 2 3 4 5 6 7 Execution failed for task ':Section2Week3Application.main()'. > Process 'command 'C:/Program Files/Zulu/zulu-11/bin/java.exe'' finished..