spring mvc project를 선택하고 next를 눌러준다 변별력을 위해 패키지 이름을 3단계로 짓는다첫번째 com 상업용두번째 프로젝트이름세번째 세부 모듈 또는 목적 webapp 바로 밑의 resources에는 css,js,이미지 등을 넣는다root-context는 DB 접근 객체 생성 정보를 담는 위치로 데이터베이스 연결 정보를 넣는다servlet-context는 스프링 MVC 프로젝트에서 웹과 관련된 설정을 정의하는 곳으로, 주로 DispatcherServlet과 관련된 설정을 포함. 이를 통해 컨트롤러, 뷰 리졸버, 리소스 매핑 등을 설정할 수 있다 왼쪽 하단의 servers에서 마우스 오른쪽 클릭-> server 로 톰캣 서버를 추가해준다 처음 실행하면 웹페이지에서 열리지 않고 s..
전체 글
package aopEx02;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.springframework.stereotype.Component;@Aspect@Componentpublic ..
afterpackage aopEx01;public class Aop { //핵심 로직 실행 전에 호출될 공통 모듈 public void beforeAdvice() { System.out.println("핵심 로직 실행 전에 호출되는 공통 모듈"); } public void afterAdvice() { System.out.println("핵심 로직 실행 후에 호출되는 공통 모듈"); }} package aopEx01_target1;public class B { public void method1() { System.out.println("클래스 B의 method1 핵심 로직 실행중"); } public void method2() { System.out.println("클래스 B의 method2 ..
AOP 용어 정리aspect : 관심사라는 의미로 같은 관심사별 공통 모듈을 담고 있는 그룹 또는 클래스를 의미 target : aspect를 적용할 클래스 또는 메소드를 의미함 advice : 실질적으로 어떤 일을 해야할 지에 대한 것으로 부가 기능을 담을 구현체joinpoint : 공통기능이 적용되어야 하는 핵심 기능의 시점pointcut : joinpoint의 상세한 스펙을 의미 현재 클래스는 여러가지 공통 모듈(메소드)을 관리하는 클래스 aop 사용시 공통 관심사 별로 클래스를 분류 기능들을 메소드로 관리하게 된다 aop 프로그래밍을 하기 위해서는 aspect과 target 전부 ioc 컨테이너가 생성한 객체들끼리만 적용이 가능하다 pom.xml 에 밑의 코드 추가 org.aspectj aspec..
어노테이션(@)@Configuration 어노테이션이 있는 클래스를 ioc 컨테이너가 읽어들이게 되면 해당 클래스 객체를 생성한 후 @Bean 어노테이션이 존재하는 각각의 메소드를 호출하여 bean을 생성 및 관리한다메소드 이름이 xml bean의 id이다 @Configuration, @Beanpackage diEx03;public class A { private String name; private String age; public String getName() { return name; } public String getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(Stri..
스프링 프레임워크경량 컨테이너로 애플리케이션 객체의 생명주기와 설정을 포함하고 직접 관리(new 로 객체를 생성하지 않아도 됨. 알아서 생성해줌)POJO(순수객체-다른객체와 결합이 없음.빨리 컴파일됨) 방식으로 크기와 부하의 측면에서 경량제어 역행(IoC)을 지원(스프링에서 사용자의 코드 호출)의존성 주입을 지원관점지향 프로그래밍(AOP)을 지원(공통 기능들을 한곳에 모아놓고 필요한 곳에 끼어놓고 실행)영속성과 관련된 다양한 AIP를 지원확장성이 높다 DI의 종류DI는 의존관계주입 즉, 오브젝트 사이의 의존 관계를 만드는것오브젝트 간의 의존관계를 자동화 해주는것을 의미하며 Ioc 컨테이너에서 자동화 역할을 담당Setter Injection(세터 주입)Construction Injection(생성자 주입)..
스크립트 indexpage = 1;은 현재 페이지를 나타내는 변수입니다. 초기값은 1로 설정되었습니다. isLoading = false;는 추가 데이터를 로드 중인지 확인하는 변수입니다. 로딩 중일 때는 true, 아닐 때는 false로 설정됩니다. 스크롤 이벤트 : window.addEventListener('scroll', () => {...}) 부분은 사용자가 스크롤을 내렸을 때 실행됩니다. scrollTop, scrollHeight, clientHeight는 각각 스크롤 위치, 전체 페이지 높이, 현재 화면 높이를 의미합니다. 스크롤이 거의 바닥에 도달했을 때(scrollTop + clientHeight >= scrollHeight - 5) 데이터를 추가로 로드하기 위해 loadMore() 함수를..
html 알림 메시지 스크립트 css.userHeader_login { display: flex; gap: 5px; /* 버튼 간의 간격 */ /* margin-right: 1.5%; */ align-items: center; /* 수직 중앙 정렬 */ } .userHeader_login .icon { width: 3.5vw; /* 화면 너비의 3.5%에 해당하는 크기 */ height: 3.5vw; /* 화면 너비의 3.5%에 해당하는 크기 */ display: flex; justify-content: center; /* 수평 가운데 정렬 */ align-items: center; /* 수직 가운데 정렬 */ } .userHeader_login .icon.round { border-radius: 50%..
스크립트 html 회원가입 | 로그인 css/* 회원가입,로그인 모달 스타일 */ #user_modal { display: none; /* 기본적으로 숨김 */ position: fixed; z-index: 1; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.4); /* 배경 어두운 색상 */ overflow: auto; padding-top: 60px; } .user_modal-content { background-color: #fff; margin: 5% auto; padding: 20px; border: none; box-shadow: 0 0 15px rgba(0, 0, 0, 0.5); width: 40%;..
html 홈이동 글쓰기 다크모드 cssnav { width: 5%; height: 90%; background-color: white; float: left; /* border: 1px solid black; */ } nav ul{ margin: 0; padding: 0; width: 100%; list-style: none; display: flex; flex-direction: column; justify-content: center; align-items: center; } nav li{ width: 200px; text-align: center; margin-top: 20px; /* 이미지들 간의 간격 조절 */ } nav li div { border: 2px solid #BFBFBF; borde..