Spring boot/Bank App 만들기(deployment) (31) 썸네일형 리스트형 Bank App 만들기 ( deployment ) - 존재하지 않는 경로에 대한 요청 처리( 404페이지 연결 ) GlobalControllerAdvice - @ExceptionHandler(Exception.class) 주석 처리 @ControllerAdvice // IoC 대상 (싱글톤 패턴) --> HTML 렌더링 예외에 많이 사용public class GlobalControllerAdvice { /** * (개발시에 많이 활용) * 모든 예외 클래스를 알 수 없기 때문에 로깅으로 확인할 수 있도록 설정 * 로깅처리 - 동기적 방식(System.out.println), @slf4j (비동기 처리 됨) */// @ExceptionHandler(Exception.class)// public void exception(Exception e) {// System.out.println("-------.. Bank App 만들기 ( deployment ) - 2단계 ( ResourceHandler, 초기 파라미터 사용 ) WebMvcConfigurer 인터페이스는 Spring MVC 설정을 맞춤화할 수 있는 메서드를 제공한다. 개발자는 이 인터페이스를 구현하여 기본 제공되는 스프링 부트의 자동 구성을 수정하거나 추가적인 설정을 할 수 있다. ViewResolver : 뷰 리졸버는 컨트롤러에서 반환된 뷰 이름을 바탕으로 실제 뷰의 위치를 찾아내고 렌더링하는 역할을 한다. 예를 들어, JSP 파일이나 Thymeleaf 템플릿 등의 실제 경로를 결정한다.addResourceHandlers : 정적 리소스(예: CSS, JavaScript, 이미지 파일 등)핸들링을 위한 경로를 추가하는 데 사용됩니다. 이를 통해 정적 리소스에 대한 매핑을 정의하고 리소스 캐싱 정책을 설정할 수 있다.setApplicationContext : .. Bank App 만들기 ( deployment ) - 파일 업로드 - 1 단계 ( 멀티파트 ) 1. 멀티파트 ( Multipart )의 이해멀티파트(Multipart)는 HTTP 프로토콜을 사용하여 웹 서버로 파일이나 데이터를 업로드할 때 사용되는 데이터 전송 방식 중 하나이다. "멀티파트"라는 용어는 말 그대로 메시지가 여러 부분으로 구성되어 있음을 의미하며, 이러한 각각의 부분은 다른 유형의 데이터를 담을 수 있다. HTTP 메시지에는 클라이언트가 전송하는 HTTP 요청, 그리고 서버가 반환하는 HTTP 응답이 있다. 텍스트 기반 HTTP 메세지POST /example HTTP/1.1Host: example.comContent-Type: text/plainContent-Length: 13---- CLRF 빈줄 공백 --------Hello, World! 바이너리 기반 16진수 HTT.. Bank App 만들기 ( deployment ) - 사용자 비밀번호 암호화 처리 마이그레이션이란?데이터베이스 스키마의 변경 내역을 버전 관리하여, 변경에 대한 이력을 남기고, 데이터베이스를 이전 버전에서 최신 버전으로 옮기는 일련에 과정들을 의미한다. 즉, 일반적으로 마이그레이션은 스키마를 변경하거나 새로운 테이블이나 컬럼을 추가하는 등에 작업을 포함하고 따라서 우리가 할 작업 H2 데이터베이스에서 MySQL 로 변경할 때도 마이그레이션을 수행 한다고 할 수 있다. 이러한 이경우에 테이터 스키마를 변경하거나 데이터를 이전하는 작업등이 포함 될 수 있다. SpringSecurityCrypto 의존성 추가 및 BCryptPasswordEncoder 빈 클래스로 등록 주의 : spring-security 에서 제공하는 crypto라는 라이브러리를 활용한다. 이번 프로젝트에서는 Spri.. Bank App 만들기 ( deployment ) - intercepter 활용 ( 인증검사 공통 처리 ) intercepter란 뭘까?인터셉터는 Spring MVC의 핵심 기능 중 하나로, 웹 애플리케이션에서 공통적인 처리를 재사용할 수 있게 해주는 강력한 도구이다. 인터셉터(Interceptor)는 들어오는 요청과 나가는 응답을 가로채어 특정 로직을 수행할 수 있게 해주는 매커니즘을 제공한다. 이는 AOP(Aspect-Oriented Programming)의 일종으로 볼 수 있으며, 컨트롤러(Controller)로 요청이 도달하기 전, 후 또는 완료된 후에 추가적인 처리를 하기 위해 사용된다. 대표적인 활용 사례인증 및 권한 부여 : 사용자의 인증 정보를 검사하여 요청이 유효한 사용자로부터 온 것인지 확인하고, 특정 자원에 대한 접근 권한을 확인한다.로깅 및 감사 : 요청의 처리 과정에 대한 로깅을 .. Bank App 만들기 ( deployment ) - 계좌 상세보기 페이징 처리 사전 기반 지식 부트스트랩의 그리드 시스템 개념 : 부트스트랩은 화면을 12개의 컬럼으로 나누어 레이아웃을 구성할 수 있도록 돕는 그리드 시스템을 제공한다. col-sm-8은 작은 화면에서 8개의 컬럼을 차지하는 레이아웃을 의미한다.사용방법 : col-sm-8, col-md-6 등의 클래스를 사용해 반응형 레이아웃을 쉽게 구성할 수 있다.예제 : col-sm-8은 12개의 그리드 중 8개를 차지하며, 이는 전체 화면의 약 66.67% 이다.플렉스박스 (Flexbox)와 중앙정렬개념 : 플렉스박스는 CSS의 레이아웃 모델로, 요소를 쉽게 정렬하고 배치하는데 사용된다. 부트스트랩의 d-flex와 justify-content-center 는 플렉스박스를 활용해 자식 요소를 수평 중앙에 정렬하는데 사용된다.사.. Bank App 만들기 ( deployment ) - 간단한 유틸 클래스 만들어 보기 시간, 금액에 대한 포멧 적용하기 Bank App 만들기 ( deployment ) - 2단계 ( 기능, 동적쿼리 구현 ) 사용자 요청 list.jsp 에서 해당 계좌 번호 선택 - (list.jsp 링크 수정 해야 함)1. detail.jsp 만들기2. account/list.jsp 파일에 링크 추가 하기3. 계좌 상세 보기 기능 구현2. AccountController 주소 설계 및 코드 추가3. 거래 내역 쿼리 확인 후 DTO 설계 - HistoryDTO4. AccountService 상세 보기 기능 구현 단일 계좌 검색 기능 추가 거래 내역 확인 기능 추가 (동적 쿼리 생성)5. utils/TimestampUtil 클래스 추가 - 시간 포맷 기능6. #,### 금액 단위 포맷 기능 추가 - HistoryDto 클래스에 기능 추가 코드상에서 사용할 쿼리 다시 확인 -- 코드상에서 사용할 쿼리 생성 -- 출금에 대한.. 이전 1 2 3 4 다음