스프링 AOP란?AOP의 개념AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 애플리케이션의 횡단 관심사(Cross-Cutting Concerns)를 모듈화하기 위한 프로그래밍 패러다임임. 횡단 관심사란 애플리케이션의 여러 부분에서 공통적으로 나타나는 기능으로, 로깅, 보안, 트랜잭션 관리 등이 포함됨. AOP의 장점코드 중복 감소: 공통 기능을 분리하여 코드 중복을 줄일 수 있음.유지보수성 향상: 공통 기능이 변경될 때 해당 기능만 수정하면 되므로 유지보수가 용이함.모듈화: 공통 기능을 별도의 모듈로 분리하여 코드의 모듈화를 향상시킴. 스프링 AOP의 구성 요소AspectAspect는 횡단 관심사를 모듈화한 것임. @Aspect 어노테이션을 사용하여 정의할 수 있음.@..
분류 전체보기
1. 스프링 MVC란?스프링 mvc는 스프링 프레임워크의 일부로, 웹 애플리케이션을 개발하기 위한 강력한 웹 프레임워크이다.MVC 아키텍쳐를 따르며, 애플리케이션의 비즈니스 로직과 프레젠테이션 계층을 분리하여 개발의 유연성과 유지보수성을 높인다. MVC 아키텍처란?더보기MVC 아키텍처는 애플리케이션을 세 가지 주요 컴포넌트로 분리하는 디자인 패턴이다.- Model : 애플리케이션의 데이터와 비즈니스 로직을 담당- View : 사용자에게 데이터를 시작적으로 표시하는 부분- Controller : 사용자 입력을 처리하고, 모델과 뷰 사이의 인터랙션을 관리 2. 스프링 MVC의 주요 구성 요소DispatcherServletDispatcherServlet은 스프링 MVC의 프론트 컨트롤러 역할을 하며, 모든 ..
🤔스프링 컴포넌트 스캔이란? 설정정보 클래스에 @ComponentScan 어노테이션을 붙이면 @Bean 어노테이션이 붙은 메서드를 정의해주지 않아도 자동으로 스프링이 @Component 어노테이션이 붙은 클래스의 객체들을 빈으로 등록해줌 수동 등록에선 메서드명을 빈의 이름으로 사용함 컴포넌트 스캔 방식은 클래스 이름의 앞글자를 소문자로 바꿔서 사용함 빈 이름 빈 객체 createOrderServiceImpl CreateOrderServiceImpl@x01 memberRepositoryImpl MemberRepositoryImpl@x02 @Bean("customName") 처럼 기본값 대신 사용할 빈의 이름을 지정할 수 있는 것처럼 @Component("customName") 으로 빈의 이름을 직접 지정해..
🤔스프링 컨테이너이란? 컨테이너는 보통 객체(Bean)들의 생명 주기(Life Cycle)를 관리하며, 생생된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것입니다. ApplicationContext를 스프링 컨테이너라고 불리기도 합니다. IoC원칙을 기반으로 동작합니다. 이는 애플리케이션의 제어 흐름이 개발자가 아닌 컨테이너에 의해 결정되는 것을 의미합니다. 더보기 🤔IoC ( Inversion Of Control)란? 제어의 역전이라고 하며 프로그램의 흐름을 개발자가 아닌 프레임워크가 관리하는 것을 의미합니다. 일반적으로 자바에서는 개발자가 각 객체를 생성하고 제어해야 하지만 스프링에서는 컨테이너에 Bean을 등록하기만 하면, 스프링 컨테이너에서 객체의 생명주기를 컨트롤합니다. 즉, 객체에 대한 제..
🤔DB Connection Pool이란? 미리 일정 갯수의 Connection을 만들어 Pool에 저장 사용자 요청이 발생하면 Connection을 제공, 연결이 종료되면 Pool에 반환하여 저장 생성된 Connection이 모두 사용중일때는 클라이언트는 대기 상태로 전환 ◻️Connection 객체를 생성하는 과정 애플리케이션에서 DB 드라이버를 통해 커넥션을 조회한다. DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. (3 way handshake와 같은 네트워크 연결 동작 발생 ) DB 드라이버는 TCP/IP 커넥션이 연결되면 아이디와 패스워드, 기타 부가 정보를 DB에 전달한다. DB는 아이디, 패스워드를 통해 내부 인증을 거친 후 내부에 DB를 생성한다. DB는 커넥션 생성이 완료되었다는 ..
🤔JOIN이란? 여러 테이블 간의 연결을 통해 데이터를 검색하고 결합하는 것을 의미 다른 테이블에 있는 정보를 함께 가져와서 필요한 정보를 하나의 결과 집합으로 합치는 것을 목적 🤔JOIN을 사용하는 이유? 관계형 데이터베이스의 구조적 특징으로 정규화를 수행하면 의미 있는 데이터의 집합으로 테이블이 구성되고, 각 테이블끼리 관계(Relationship)를 갖게 된다. 위의 특징으로 관계형 데이터베이스는 저장 공간의 효율성과 확장성이 향상된다. 서로 관계 있는 데이터가 여러 테이블로 나뉘어 저장되므로, 각 테이블에 저장된 데이터를 효과적으로 검색하기 위해서 조인이 필요하다. 🟩JOIN 종류 ◻️내부 조인(Inner Join) 두 테이블에서 공통된 값을 가지고 있는 행들만을 반환 그냥 조인이라고 부르면 내부..
💻 프로젝트 개요 프로젝트명 더모아(TheMore) : 실시간 가계부 채팅방 목표 실시간 피드백을 받아 가계부를 잘 작성할 수 있게 도움을 줌 구상배경 혼자서 아끼는 것이 어렵고 잘하고 있는지 알 수 있는 방법을 찾다 채팅방과 가계부를 합쳐 만들어 개발 🗓️ 프로젝트 기간 : 2024.03.15(금) ~ 2024.03.25(월) 👨👩👧👦 구성원 역할 🛠️ 사용스택 🗂️ 클래스 다이어 그램 & 구조 📹 시연영상 github.com/iiiiii-dle/TheMore GitHub - iiiiii-dle/TheMore Contribute to iiiiii-dle/TheMore development by creating an account on GitHub. github.com 깃허브에 자세히 기록되어 있다..
B-Tree란? 데이터가 정렬된 상태로 유지되어 있는 트리로 일반적인 이진 트리와 비슷하지만 한 노드 당 자식 노드가 2개 이상 가능한 트리. 어떤 값에 대해서도 같은 시간에 결과를 얻을 수 있는 것이 장점. 트리란? 그래프의 일종으로, 한 노드에서 시작해서 다른 정점들을 순회하여 자기 자신에게 돌아오는 순환이 없는 연결 그래프 B tree 사각형으로 표시된 한 개의 데이터를 노드(node) 가장 상단의 노드를 루트 노드(root node) 중간 노드들을 브랜치 노드 (branch node) 가장 아래 노드 리프 노드(leaf node) 특징 균일성 : 어떤 값에 대해서도 같은 시간에 결과를 얻을 수 있다. (트리 높이가 다를 경우, 약간의 차이는 있지만 O(logN)) 균형트리 : 루트로 부터 리프까지..