자바 기반의 경량 웹 프레임워크로, 효율적인 웹 애플리케이션 개발을 돕는 도구POJO 기반으로 구성되어 있고, DI와 AOP, MVC 구조 등을 지원해서 유연하고 확장성 높은 개발이 가능객체 간의 의존 관계를 외부에서 주입하는 방식개발자가 직접 객체를 생성하지 않고,
구성: JSP + JavaBeans (가끔 서블릿)흐름: 클라이언트 → JSP → 직접 처리 + 출력특징:JSP가 모든 로직을 처리 (비즈니스 로직 + 프레젠테이션 로직)컨트롤러가 없음구조가 단순하고 빠르게 개발 가능 (소규모 프로젝트에 적합)유지보수가 어렵고, 재사용
pom.xml은 Maven 프로젝트에서 프로젝트의 설정과 의존성을 관리하는 XML 파일주요 역할📦 의존성 관리: 사용할 외부 라이브러리를 정의 (예: Spring, MySQL 등)🔧 빌드 설정: 컴파일, 테스트, 패키징 방식 지정🏷️ 프로젝트 정보: 이름, 버전,

HelloController 클래스는 /hello 요청을 처리하고, 해당 요청에 대한 응답으로 "Hello Spring"이라는 메시지를 JSP 페이지에 전달하여 화면에 출력합니다. JSP 페이지는 이 메시지를 ${message}로 출력합니다.
root-context.xmlChef.javaRestaurant.javaSampleTests.java

TimeMapper의 namespace와 같은 경로여야됨!!!!!즉 Mapper java 인터페이스를 등록하고 이름을 통해 Mapper xml 호출 가능!!
servlet-context.xml주로 웹 계층, 즉 컨트롤러 관련 설정을 담당그래서 @Controller나 @RestController와 같은 웹 요청을 처리하는 컴포넌트들을 스캔이 파일은 DispatcherServlet이 초기화될 때 로드되며, 예를 들어 com.e

디버깅 시 유용
Spring MVC 기본 흐름 + DTO 개념DTO는 데이터를 담는 객체컨트롤러 <-> 뷰요청 파라미터 <-> 자바 객체@Getter, @Setter, @ToString 등을 자동 생성해주는 @Data 어노테이션으로 코드 간결하게 작성 가능.클라이언트가 ?n
\*서버에서 클라이언트에게 "다른 주소로 다시 요청해라"\*\*고 지시하는 것.클라이언트의 URL이 실제로 바뀐다.주로 데이터 처리 후 새로고침 방지 / PRG(Post-Redirect-Get) 패턴에서 사용됨.redirect:라는 접두어를 붙이면 Spring이 자동으
Spring MVC에서 컨트롤러 메서드는 일반적으로 뷰 이름을 반환하거나 데이터를 모델에 담아서 뷰에 전달합니다.하지만 @ResponseBody를 사용하면 뷰를 사용하지 않고, 반환되는 객체를 그대로 HTTP 응답으로 보낼 수 있게 됩니다.
HTTP 응답에 헤더와 상태 코드 포함 → 부가 정보 전달 가능클라이언트에게 보낼 JSON 형식의 문자열 데이터응답 헤더에 Content-Type을 명시클라이언트에게 "JSON 형식 데이터임"을 알려줌본문(message), 헤더(header), HTTP 상태 코드(20
역할: 사용자 인터페이스(UI) 및 사용자와의 상호작용구성 요소: HTML, CSS, JavaScript, ..기능: 사용자가 데이터를 입력하고 결과를 확인역할: 비즈니스 로직을 처리하며, 프리젠테이션 계층과 데이터 계층을 연결합구성 요소: 서버 측 코드, 애플리케이션
역할: 컨트롤러와 데이터 계층(DAO/Repository) 사이에서 핵심 로직을 담당기능: 여러 데이터 처리 과정을 조합하거나, 조건에 따라 다른 처리를 수행장점: 로직을 재사용 가능하게 하고, 유지보수를 쉽게 해줌설계도 역할서비스(Service)에서 마이바티스(MyB
👉 ROWNUM은 정렬 전에 붙고, 바로 필터링 어려워서 서브쿼리 + 별칭이 필수!정렬 전에 ROWNUM이 부여됨ROWNUM은 쿼리 실행 초기에 붙기 때문에→ ORDER BY 이후 원하는 순번을 가져오기 어렵다.ROWNUM > n은 바로 안 됨ROWNUM은 1부터 부
목록 조회: getList()에 Criteria cri 객체 전달하여 페이징/검색된 목록 반환페이지 정보 유지: 수정/삭제 후 기존 검색 조건과 페이지 정보 유지@ModelAttribute("cri"): Criteria 객체 자동 바인딩RedirectAttributes

웹의 자원을 URI로 구분, HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용→ 자원에 대한 행위를 명확하게 표현하는 아키텍처 스타일자원(Resource): 서버가 관리하는 모든 데이터는 고유한 URI로 식별행위(Verb): HTTP 메서드로 자원에
댓글 한개 객체글번호를 참조하고 있음TBL_BOARD와 TBL_REPLY는 일대다 관계이다!

⇒ 핵심 관심사항만 실행했는데도 공통 관심사항이 실행되도록 한다(aspect를 통해 주입받는다)Advice: 실행될 부가 기능 (ex. @Before, @After)Pointcut: Advice가 적용될 지점을 정의 (ex. 특정 메서드 실행 전)Aspect: Advi

트랜잭션(Transaction): 하나의 작업 단위. 여러 작업(쿼리)이 모두 성공하거나, 모두 실패해야 함.은행 계좌 이체 예시 (A → B 계좌로 10만원 이체)데이터베이스와 같은 외부 리소스에서 트랜잭션을 관리하는 역할(먼저 namespace에서 tx 체크)@Tr
경로 및 정보 설정필요한 객체 생성제출폼 만들기\*\*uploadFormAction(MultipartFile uploadFile)POST 요청(/uploadFormAction\*\*) 처리업로드된 파일을 MultipartFile로 받아옴파일을 서버에 저장파일 이름과 파

security 관련 설정 모두 담당!
Spring Security에서 인가(authorization) 실패 시 처리되는 인터페이스.즉, 로그인은 했지만 권한이 없어서 접근이 거부될 때(403 Forbidden) 호출됨.AccessDeniedHandler 인터페이스를 구현한 커스텀 핸들러.구성 요소:hand

DB에 사용자 정보 저장tbl_member: 유저의 기본 정보 (아이디, 비번, 이름 등)tbl_member_auth: 유저의 권한(ROLE\_\*) 정보회원정보 + 권한을 담는 VO 설계MemberVO: 회원 기본 정보 + List<AuthVO>로 권한을 포함A
로그아웃 버튼 클릭시 컨트롤러에서 customLogout.jsp로 이동시킴 (GET)customLogout.jsp에서 POST방식으로 form action!AuthenticationSuccessHandler 인터페이스 구현로그인 성공 시 사용자 권한에 따라 리다이렉트