본문 바로가기

분류 전체보기

(189)
애플페이 웹연동 - 1. 인증 연동 가이드 애플페이 인증 연동개발을 하게 됐습니다. 국내 간편결제사처럼 친절한 가이드나 레퍼런스가 없어 어려움을 겪었는데요, 승인을 위해 인증결과 데이터 복호화가 필요했는데, 이 부분에서 많이 헤매었습니다. 애플페이를 연동하는 국내 다른 웹 개발자 분들에게 도움이 됐으면 싶어 가이드를 작성합니다. https://developer.apple.com/documentation/apple_pay_on_the_web/setting_up_your_server 이하 내용은 위 링크의 developer 가이드를 기반으로 Web 연동에 대해 작성했습니다. 1. 서버 세팅 1-1. 애플페이 연동을 위해서 우선 본인의 웹사이트가 필요합니다. * TLS 1.2 이상의 인증이 완료된 HTTPS 서버여야 합니다. 1-2. Apple Pay..
DB필드 명 조회 쿼리 (필드 네이밍 시 참고) 보호되어 있는 글입니다.
[스프링, 자바스크립트] Thymeleaf를 활용한 브라우저 캐싱 처리 방지 기법 프론트를 수정하여 배포하였을 경우 기존의 캐싱된 문서가 호출되어 수정사항이 반영되지 않는 경우가 있다. 웹브라우저의 캐시를 지우고 시도하면 해결되지만 고객들에게 매번 캐시를 지워달라고 할 수 없기에 개발자가 브라우저의 캐싱되는 것을 방지해야할 경우가 생긴다. 기존 js 호출 방식 위와 같은 js를 호출한다고 할 때 캐싱 방지처리 아래와 같이 파일명 뒤에 쿼리스트링을 붙여주면 캐싱된 js를 호출하지 않고 서버에서 새로 받게된다. 하지만 실제 프로젝트에서는 이렇게 일일이 쿼리스트링을 작성하면 관리에 여러모로 많은 문제점이 있어 한번에 적용하고자 했다. 타임리프를 이용한 캐싱방지처리 타임리프를 이용하면 스프링의 설정파일인 application.properties 파일에 정의된 key값을 가져와 사용할 수 있다..
[Spring] 스프링MVC - HTTP 요청과 응답 [Spring]스프링MVC - HTTP 요청과 응답 스프링에서 HTTP요청을 받는 방법은 여러가지가 있다. 폼 데이터의 인자로 넘어올 때는 RequestParam, ModelAttribute를 사용할 수 있지만 Http 바디를 통해 직접 넘어올 때는 별도의 파싱이 필요하다. 텍스트 파싱 1. InputStream (V1) @PostMapping("/request-body-string-v1") public void requestBodyString(HttpServletRequest request, HttpServletResponse response) throws IOException { ServletInputStream inputStream = request.getInputStream(); String me..
[Spring] 스프링 트랜잭션과 동작방식에 대한 간략한 기록 스프링의 데이터베이스 처리 중 작동 방식에 대해 컨트롤할 수 있는 트랜잭션 기능을 제공합니다. 동작방식은 아래 4가지와 같습니다. 전파: 로직 중 예외가 발생했을 때 예외까지 변경된 데이터가 되돌아가야(RollBack) 할지, 저장되어야 할지 (Commit) 제한시간: 수행하는데 걸리는 시간을 설정 격리수준: 실시간으로 수정 중인 다른 데이터를 조회했을 때 수정된 상태로 보여야 하는지, 트랜잭션 간의 작업의 연관성에 개입 읽기전용: 데이터 조작을 방지 트랜잭션 전파 (PROPAGATION) 작업 A와 B가 있을 때 두 작업 간의 처리방식에 대한 설정입니다. PROPAGATION_REQUIRED A 작업이 수행된 후 B는 새로운 트랜잭션을 만들지 않고 A에 트랜잭션에 참여합니다. A와 B는 하나의 트랜잭션..
[코틀린] 플레이페어 암호 알고리즘 (PlayfairCihper) 코틀린을 익힐 겸 토이프로젝트로 플레이페어 암호 알고리즘을 구현하기로 했습니다. 개요 플레이페어 알고리즘이란 1800년대 휘트스톤이 만든 암호기법으로 대체법에 해당됩니다. 요약해서 설명드리자면 1. 알파벳 26자를 5*5 테이블에 넣는다. (I / J 는 같은 칸에 I로 넣는다.) 2. 키문자열을 맨 위 배열부터 채워 넣는다. 3. 암호화: 입력한 문자열을 키 테이블에 입력하여 특정 규칙에 따라 치환한다. 4. 복호화: 암호화 규칙의 반대로 치환한다. 등.. 다른 디테일한 규칙은 다른 사이트에서 확인해보면 될 듯 합니다. 코드 설명 main.kt package com.main import KeyTable import PlayfairAlgorithm import java.util.* fun main() {..
[Kotlin] 코틀린 기초문법 요약 (Kotlin Summary) 미루던 코틀린 공부를 시작하였습니다. 사실 자바에 익숙한 사람이면 스킵해도 되는 부분이 많아보이지만, 기초를 다시 한번 복습하는 의미에서 포스팅합니다. 목차 구문 (Syntax) 출력 (Output) 주석 (Comments) 변수 (Variables) 데이터 타입 (Data Types) 연산자 (Operators) 조건문 (If, Else) While Loop Break/Continue 배열 (Arrays) 반복문 (For Loop) Ranges 함수 (Functions) 클래스/객체 (Classes/Objects) 생성자 (Constrctors) 상속 (Inheritance) NullSafe 1. 구문 (Syntax) “Hello World”를 출력 fun main() { println("Hello W..
[Java] 자바 스트림 API에 대해 (Java8 Stream Guide & Example) 스트림API를 이해하기 위해서는 lamdba expressions. Optional, method references에 사전학습 하는 것을 권장합니다. Java Method Reference Java Lamdba Expressions Java Optional Stream API는 자바 8에 추가되어 다수의 데이터를 다룰 때 사용하는 배열이나 컬렉션의 비효율적인 면을 개선하기 위해 탄생한 방법입니다.(데이터를 입출력할 때 사용하는 스트림( I/O Streams )(ex: FileInputStream)과는 다른 개념입니다.) 스트림 API는 데이터를 추상화하여 다루어 다양한 데이터 타입을 같은 방법으로 다룰 수 있게 됩니다. StreamAPI 는 컬렉션(이하 기존 반복문)은 외부 반복을 통해 작업하지만 스트..