전체 글(20)
-
수동 빈 등록, 수동 빈 주입
1. 수동 빈 등록, 수동 빈 주입1) 수동 빈 등록@Configurationpublic class AppConfig{@Beanpublic B KKK (){return new B();}}@Configuration 애노테이션을 붙이면, 서버 실행시 객체로 생성해서 내부 코드를 모두 수행해줍니다. 설정용 클래스임을 나타내주는 애노테이션이라고 생각하면 됩니다.@Bean 애노테이션을 붙여서 스프링컨테이너에 수동으로 빈으로 등록해줍니다.빈 이름은 메서드의 이름(KKK)이 됩니다. 빈 객체는 메서드의 리턴값(new B()) 이 됩니다.참고) 빈 이름이 중복되는 경우 발생하는 예외는 “ConflictingBeanDefinitionException” 라는 예외입니다.2) 수동 빈 주입getBean(빈 이름, 클래스 또..
2024.07.31 -
카카오로 로그인 - 스프링, jsp, 오라클, mybatis
https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api 카카오에서 안내해준 이 document 를 보고 구현해보았다. javascript 로 하는 방법과 REST API 를 혼합해서 사용했다. 왜냐하면, REST API 를 사용해서 하려 했는데, 인가코드를 달라고 GET요청했더니, html 파일을 내려주었기 때문이다. 받은 html 파일을 어떻게 잘 해서 사용자에게 렌더링해줄수도 있었겠지만, "이렇게 하는게 맞나..?" 라는 생각이 들었기 때문이다. 어쨋든, 끔찍한 혼종일지 아니면 괜찮은 방법일지에 대해서는 댓글로 남겨주세요 ^_^ 또한 아래 글은, Oauth 에 대한 공부를 하지 않은 채로 카카오 로그인 연동을 구현한 시도이기 때문에, 정확한 ..
2024.04.07 -
결제 기능 구현 5 : 웹훅 - jsp, 오라클, mybatis
@RequestMapping("/webhook") public ResponseEntity method1(@RequestBody WebhookDTO webhookDTO) { // 웹훅이란? // 내가 파악하기로는 가상계좌발급이 되거나 발급된 가상계좌로 구매자가 돈을 입금하는 경우, 포트원이 자동으로 이곳으로 HTTP 메세지를 보내주는 것을 말한다. // 이외에도 결제가 승인되거나, 예약결제가 시도되었을 때, 관리자 콘솔에서 결제취소가 되었을 때 웹훅을 보내준다고 한다. // 원래는 폴링(polling) 이라고 해서, 주기적으로 내가 포트원한테 물어봤었어야 됬는데, // 웹훅을 사용함으로써 네트워크가 불안정해서 내가 보낸 HTTP요청이 포트원에게 전달되지 못하는 것도 예방할 수 있고, // 주기적으로 포트원..
2024.04.03 -
결제 기능 구현 4 : 사후검증 - jsp, 오라클, mybatis
이전 포스팅에서, 사전검증을 끝내고 나서, 결제창을 띄우는 것까지 해보았다. 결제창이 띄워지면, 어떻게 되는지, 일단 전체적인 흐름을 정리해두는 게 좋을 거라고 생각했다. 1. 첫번째 결제흐름 결제창이 띄워지면, 사용자는 아래와 같이 선택하고, 아래와 같이 정보를 입력하고, 아래와 같이 이메일 정보까지 입력한 다음에, 결제버튼을 딱 클릭하면 아래와 같이 alert 창으로 결제가 성공했다고 알려준 후 아래 처음 결제를 시작했던, 이 부분으로 오게 된다. 그럼 위에서 보듯이, 20:50:33 초에 결제된 이니시스-정기 1원이 출금된 걸 확인할 수 있다. 결제된 금액은 이니시스의 경우 아래에서 보듯, 23:00 ~ 23:50 사이에 취소되기 때문에, 걱정하지 않아도 된다. 2. 두번째 결제흐름 만약, 이니시스..
2024.04.03 -
결제 기능 구현 3 : 사전검증 - jsp, 오라클, mybatis
사전검증이란 무엇일까? merchant_uid 기억나? 내 애플리케이션 단에서 랜덤한 값으로 만든, 다른 주문과 구분하기 위해서 각 주문에 부여한 고유한 값이라고 했었잖아. 단순하게 말하면, 주문번호 를 의미한다. 사전검증이란 건, 포트원 서버에게 주문번호와 결제될 금액을 주면서 "이 주문번호는 이만큼 결제되어야 해요" 라고 알려주는 것을 말한다. 이전 포스팅에 이어서 orderSheet.jsp 파일의 head 태그를 보자. 일단, 전체 코드는 아래 접은 글과 같다. 더보기 이 중 지금 어디냐면, if(data.result = 'success'){ //사전검증 시작 fetch('/pre-validation?productId=${productId}&merchantUid='+ data.merchantUid)..
2024.04.02 -
결제 기능 구현 2 : 사전검증 전 단계 - jsp, 오라클, mybatis
사전 검증 전 단계를 해보자. 위 페이지에서, 3개 있는 저게 상품이다. 결제하기 버튼은 a태그로 만들었다. 결제하기 이런식으로 되어 있는데, 원래는 상품을 판매하는 사람이 판매할 상품을 등록하면, 그 상품의 PRODUCTS 테이블 id 컬럼값이 지금 이 a태그의 href 속성 중 productId 값으로 바인딩되도록 해야겠지만, 현재 그것까지 고려할 수는 없었다. 그래서, 그냥 terminal 에서 insert 쿼리를 PRODUCTS 테이블에 삽입했다. INSERT INTO PRODUCTS (id, product_name, stock, amount) VALUES (21, '3개월 무료', 1, 1); 어쨋든, 위 a 태그를 클릭하면, 해당 상품의 PRODUCTS 테이블의 id 컬럼값인 21이 컨트롤러로..
2024.04.01