본문 바로가기

분류 전체보기

(194)
리팩터링요소 front dto 리팩토링패키지 정리 (도메인 별, rest, template 분리), mapper → dto기능(도메인) 별 mapper, service, controller 메소드 이동컨트롤러 로직 제거유효성 로직 공통화불필요한 유효성 로직 정리 및 공통처리에러로직 공통처리서비스엔 비즈니스로직만front 응답 인자정리미사용 코드 정리CRUD 네이밍 룰무수히 쏟아지는 졸음과 에러 그리고 개발 요청
[DEVIEW2023] 런타임 데드 코드 분석 도구 Scavenger *DEVIEW2023에서 열린 네이버 플랫폼 랩스의 김태연, 권오준 개발자님의 강연을 그대로 개인 학습을 위해 정리한 포스트입니다. https://youtu.be/qE7HY7Y-5vs *Scavenger는 DEVIEW2023에서 네이버가 공개한 오픈소스 프로젝트입니다. 1. Dead Code란? 실행되지 않는 코드를 뜻합니다. (Unreachable) 아래는 예시 소스입니다. final int age = 25; if (age>20){ System.out.println("Okay"); } else { System.out.println("Nope"); } 위 조건문에서 변수 age는 else로 분기될 수 없으므로 영영 사용되지 않는 else는 Dead Code입니다. 간단한 예시를 들었지만 소스 상에서 사용..
스물다섯 보호되어 있는 글입니다.
애플페이 웹연동 - 2. 결제 데이터 복호화 애플페이 인증 후 응답받는 결제데이터의 복호화 가이드입니다. ppt에 링크되어 있는 원문 가이드 설명에 오타 및 잘못되어 있는 설명이 있어 수정한 부분이 있습니다. 가이드 내용대로 복호화가 안될 시 원문 가이드 참고 부탁드립니다. *https://medium.com/@hoaqt91/decrypt-the-apple-pay-response-fd51703b4e1a
애플페이 웹연동 - 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..