본문 바로가기

전체 글120

포트원 key 테스트 진행하기 앞선 포스팅에서 포트원 결제를 연동하기 위해서는 API Secret Key와 Webhook Secret Key가 필요하다고 말했다.이 값은 환경변수로 application.yaml파일에 넣어야 포트원을 연동할 수 있다. application.yaml portone: api: secret: ${PORTONE_SECRET:} webhook: secret: ${PORTONE_WEBHOOK_SECRET:} 실제 값은 github에 올라가면 안되기 때문에 gitignore로 처리해서 안올라게 처리를 해야하므로,해당 부분의 값은 application-local.yaml에 올려서 로컬에서는 돌아갈 수 있도록 처리를 해두었다. spring: config: import: - optional.. 2026. 10. 15.
프로젝트에 결제 적용 ① - 포트원 V2 결제 연동 이해하기 '모여타' 프로젝트에 결제 기능을 추가하면서, 결제를 구현하는 방법과 연동에 필요한 정보들을 정리해 보았다. 프로젝트에서는 포트원을 이용하여 결제를 구현하기로 하였다. 연동을 준비하다보니 상점 아이디, 채널키, API Secret, 웹훅 시크릿이라는 네가지 값이 등장했다. 여기에 자동결제, 정기결제를 구현할 때 사용하는 빌링키까지 함께 살펴보려고 한다. 각각 어떤 역할을 하고, 결제 과정의 어느 단계에서 사용하는지 정리하고자 한다. 먼저 각 값의 역할을 간단히 정리하면 다음과 같다. 값역할상점 아이디(storeId포트원 안의 우리 상점을 식별하는 값채널 키(channelKey)결제가 사용할 PG 연결을 지정하는 값V2 API Secret우리 서버가 포트원 API를 호출할 때 권한을 인증하는 비밀키웹훅 시.. 2026. 10. 13.
09-29 TIL 1. @Component- 해당 어노테이션이 붙어있는 클래스의 객체를 bean(빈)으로 등록하라는 뜻입니다.- 빈으로 등록하느 과정 : 스프링이 컴포넌트 스캔으로 @Component가 붙은 클래스를 찾아서 객체를 생성하고 빈으로 등록 *Bean : 스프링이 관리하는 객체 2. @Transactional(propagation=Propatgation.NOT_SUPPORTED)@Transactional 뒤에 괄호안에 propagation={ ...} 의 형태로 작성하는 것을 '트랜잭션 전파 속성' 이라고 말합니다. 트랜잭션 전파(Propagation) 속성이란? 작업을 하다보면, 기존에 트랜잭션이 진행 중일 때 추가적인 트랜잭션을 진행해야 하는 경우가 존재합니다. 이와 같이, 트랜잭션이 진행 중일때, 추.. 2026. 9. 29.
스프링 어노테이션 정리 1 0. 어노테이션이란?클래스, 메서드, 필드, 매개변수 등에 붙이는 메타데이터로, 코드에 대한 추가정보를 말합니다.@NotNullprivate Long matchId; 예를 들어, @NotNull은 '이 값은 nul이면 안된다' 라는 의미입니다. 1. @Controller@Controller웹 요청을 처리하는 클래스임을 나타냅니다. 2. @ResponseBody@ResponseBody메서드의 반환값을 HTTP 응답 본문에 쓰도록 합니다. 3. @RestController@RestControllerSpring에 이 클래스를 웹 요청을 처리하는 컨트롤러로 사용하겠다고 알려줍니다.@Controller, @ResponseBody 두 어노테이션의 의미를 합친 것입니다. 4. @RequestMapping@R.. 2026. 9. 25.
Swagger API 어노테이션 정리 1. @Tag관련 API를 같은 이름으로 묶음@Tag(name = "평점", description = "평점 관리 API") 2. @OperationAPI 하나의 기능을 설명@Operation(summary = "평점 삭제") 3. @ApiResponses여러 응답 설명을 묶음@ApiResponses({ @ApiResponse(responseCode = "204", description = "삭제 완료"), @ApiResponse(responseCode = "404", description = "평점을 찾을 수 없음")}) 4. @ApiResponse응답 코드와 의미를 설명@ApiResponse(responseCode = "204", description = "삭제 완료") 5. @Pa.. 2026. 9. 25.
자바 서블릿(Servlet)이란? 1. 서블릿(Servlet)서버가 클라이언트의 요청을 받아 처리하고 응답을 만드는 자바 프로그램 1) 서블릿은 왜 필요할까?자바로 주문 내역을 조회하는 기능을 만들었다고 생각해 보겠습니다. 사용자가 브라우저에서 ‘주문 조회’ 버튼을 누른다고 해서 해당 자바 메서드가 자동으로 실행되지는 않습니다. 브라우저는 자바 메서드를 직접 호출하는 것이 아니라, 서버에 HTTP 요청을 보내기 때문입니다.따라서 서버에는 요청을 읽고, 필요한 자바 기능을 실행한 뒤, 결과를 응답으로 만들어 주는 역할이 필요합니다. 서블릿이 이 역할을 수행합니다.2) 주문 조회 요청으로 이해하기사용자가 자신의 주문 내역을 조회할 때, 서블릿의 처리 흐름은 다음과 같습니다.요청과 로그인 정보를 확인해 사용자를 식별합니다.해당 사용자의 주문.. 2026. 9. 25.