JSP 21

카카오 결제 API를 활용한 프로젝트의 전체 흐름 정리해보기

프로젝트 전체 (Controller, Action, Page, Kakao 서버, 브라우저, 스마트폰 UI ...)전부의 흐름을 한 번 정리해보도록 하겠습니다 사용자 브라우저 ➡ FrontController ➡ Action ➡ Kakao서버 ➡ redirect ➡ ApproveAction ➡ DB ➡ JSP 사용자가 상품 구매 버튼 클릭 (브라우저 ➡ 내서버)▪ 브라우저가 내 서버(Tomcat)에 요청▪ /KakaoPayReady.do 실행▪ FrontController가 요청을 분석▪ ActionFactory에서 KakaoPayReadyAction 선택( = 카카오페이 결제 준비처리) KakaoPayReadyAction 실행 (내 서버 내부 처리)사용자가 "구매하기" 버튼을 눌렀을..

JSP 2025.12.05

결제 API : ngrok 실행시키기

✅ 카카오페이가 나의 local 서버(로컬호스트)에 직접 접근할 수 없기 때문카카오페이의 결제 흐름사용자가 결제하기 클릭카카오페이 페이지로 이동결제 성공/실패 후 카카오페이가 나의 서버로 다시 요청을 보냄approval_urlcancel_urlfail_url즉, 카카오페이가 나의 서버로 들어와서 승인 처리를 해야 함 그런데 문제는 내 backend 서버는 로컬에서 돌아가는 Tomcat 서버 http://localhost:8080/payMent/... 카카오페이 서버는 인터넷에 있고로컬컴퓨터는 외부에서 접근 불가능즉, 카카오페이가 localhost:8080으로 접근할 방법이 없음. 그래서 필요한 게 ngrok!ngrok는 나의 로컬 서버를 인터넷에서 접근 가능하도록 공개 URL로 만들어주는 도구.예..

JSP 2025.12.04

카카오톡 결제 API를 사용하여 작은 결제 프로젝트 만들어보기 - 1

patMent 프로젝트를 만들었다 패키지 구조▪ controller.commonAction.java : 공통 Action 인터페이스 또는 추상 클래스ActionFactory.java : 요청 URL과 Action 매핑 처리ActionForward.java : 페이지 이동 정보를 담는 DTOFrontController : 모든 요청을 처리하는 중앙 서블릿 ▪ controller.pageKakaoPayReadyAction.java : 카카오페이 결제 준비 처리KakaoPayApproveAction.java : 카카오페이 경제 승인 처리OrderHistoryAction.java : 주문 내역 조회 처리KakaoPayService.java : 카카오페이 API 호출 서비스 ▪ model.commonJDBCU..

JSP 2025.12.03

a태그와 JSP 내장객체 pageContext

결제 내역 보기위의 코드 한 줄 해석 :a태그를 클릭하면 OrderHistory.do로 이동하는 링크이다 1) ${pageContext.request.contextPath}더보기${pageContext.request.contextPath}JSP 내장객체 pageContext ➡ request ➡ contextPath 값을 가져옴 contextPath란?웹 애플리케이션이 서버에 배포될 때 가지는 프로젝트 루트 경로ex) 프로젝트명 : payMent Tomcat 주소 : http://localhost:8088 그럼 contextPath = /payMent 2) 최종 href 완성더보기${pageContext.request.contextPath}/OrderHistory.do → /pay..

JSP 2025.12.02

Servlet vs Action의 역할

1️⃣ Servlet vs Action의 역할구분역할Servlet웹 서버에서 요청(Request)을 받아서 처리하는 실제 엔트리 포인트. URL과 직접 매핑되어 있음. 예: /KakaoPayApproveServlet.do를 직접 호출하면 서블릿이 실행됨Action (FrontController 패턴)비즈니스 로직 처리만 담당. Servlet에서 바로 처리하는 대신, FrontController가 요청을 받아서 알맞은 Action에게 넘김. → 이렇게 하면 요청별 처리 코드를 여러 Servlet에 흩어놓지 않고 한 곳(FrontController)에서 관리 가능즉:Servlet = 요청을 받는 “문”Action = 요청을 실제로 처리하는 “작업장”2️⃣ 왜 파일이 자꾸 생기는지원래는 KakaoPayAppr..

JSP 2025.12.02

XML 설정과 어노테이션

XML 설정을 어노테이션으로 변경web xml에서 한쌍으로 작성하던걸 어노테이션 하나로 간결하게 사용할 수 있다 xml은( 프로젝트 전반에 대한 설정!!)분석어려움 가독성 낮아⬇세부적인 컨트롤 가능@ 어노테이션(JAVA 관련!!)JAVA 코드와 함께 있기 때문에 분석 용이가독성 높음프로젝트 전반에 대한 설정 안 됨(에러별 설정, 404, 500 ,,,)xml과 어노테이션 각각의 장단점이 있어 때에 맞게 사용하는 것을 추천한다 버전 4.0은 xml이 자동으로 생성되지 않기 때문에 NewFile로 xml을 직접 생성해줘야 한다 ---커스텀태그로 페이지 구조 가독성 향상.xml >> @외부 js 불러오기

JSP 2025.12.01

커스텀 태그로 페이지 구조 가독성 향상시키기

추가적인 라이브러리 설치 없이 진행을 위해 4.0 버전 사용web.xml은 존재하지 않음. 내부적으로 있음 Java Build Path 에 gson 등 설정 커스텀 태그 GNB, LNB 처럼 안바뀌는 부분페이지의 어떠한 부분이 한 덩어리로 존재하면 좋을 것 같을 때다른 페이지에서도 재사용 될 때하나의 태그 처럼 다루면 어떨까?태그화, 모듈화, 컴포넌트 화, (과거에는 위젯)이라고 한다 NewFile.jsp 전체코드 안녕하세요! :D 예제 표 apple 사과 banana 바나나 설정 폴더 WEB-INT에 tags 폴더를 추가했다 파일명은 hello hello.tag 전체코드안녕하세요! :D NewFile.jsp ..

JSP 2025.12.01

프론트 컨트롤러 FrontController

FrontController Spring의 구조 중에 하나 웹 애플리케이션에서 모든 요청을 한 곳(하나의 진입점)에서 먼저 받는 구조보통 JSP/Servlet 환경에서는 FrontControllerServlet 같은 서블릿이 그 역할을 한다 핵심 개념 모든 요청을 단일 진입점에서 처리 공통 작업을 한 곳에서 처리할 수 있음 → 예: 인코딩, 인증 체크, 로깅, 에러 처리 등 이후 해당 요청을 적절한 Controller(또는 Handler)에 분배(dispatch) ex) 카페를 갔다. 점원이 3명손님이 아아 주문 하면 만들고 제공1:1 매핑 -> 비효율적임1명은 계산&서빙1명은 커피 만들고1명은 뒷정이V : 사용자 C : 직원M : 키오스크Spring은 효율적으로 해야겠다 함.계산하고 서빙하는 ..

JSP 2025.11.27