![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/PV7y7/btsk4NS96pZ/sjhpdrDXlvCNGRA7e8CPTK/img.png)
이번 글에서는 현재 진행중인 애완동물 분양 플랫폼 프로젝트에서 이미지가 포함된 게시글을 등록시 발생하는 유저 체감 지연시간을 최소화하자는 목표로 서비스 로직을 설계한 과정과 결과에 대해 공유드리겠습니다. 이미지 업로드 및 삭제 API 구현을 위한 백엔드 인프라 환경 및 사용기술은 아래와 같습니다. Sever Infra : AWS EC2/Linux, AWS S3 Proxy Server : Nginx 1.22. WAS : tomcat (scale out - blue/green) Language : Java 11 Framwork : Spring Boot 2.7.11 ORM : Spring Data JPA DB : MySQL(Master/Slave) CI/CD : Github Actions, AWS S3&Cod..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ceIFOn/btskZkZOJpZ/NAs9hs56Hj4jawbhQL4km0/img.png)
오늘은 현재 진행중인 애완동물 분양 플랫폼 프로젝트의 알림기능을 구현시 발생한 문제와 3주간의 추적을 통한 해결과정에 대해 공유드리려 합니다. 알림 기능 구현을 위한 백엔드 인프라 환경 및 사용기술은 아래와 같습니다. Sever Infra : AWS EC2/Linux Proxy Server : Nginx 1.22. WAS : tomcat (scale out - blue/green) Language : Java 11 Framwork : Spring Boot 2.7.11 ORM : Spring Data JPA DB : MySQL(Master/Slave) CI/CD : Github Actions, AWS S3&CodeDeploy 비즈니스 요구사항 및 목표 현재 프로젝트에서는 기본 커뮤니티 게시판, 분양 소통 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/YTHz6/btsdhycEKgP/1YEr2C2GbKupWIMQUzGpuK/img.png)
오늘은 pagination개발을 위해 Spring에서 제공하는 Pageable & Slice interface 를 분석한 내용을 공유해보려합니다. Pageable Pageable은 org.springframework.data.domain에 포함된 interface로써 PageRequest라는 별도의 구현체가 존재합니다. PageRequest pageRequest = PageRequest.of(1,10); Pageable pageableT0PageRequest = PageRequest.of(1,10); Pageable pageableT0PageRequest = Pageable.ofSize(10); Pageable은 PageRequest의 정적 팩토리 메서드(.of)를 사용하여 PageRequest 또는 P..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cwh62W/btsb5k0qesa/tcRA675pt7NWrOwnqkeaYk/img.png)
1. 개요 데이크스트라 알고리즘은 네덜란드의 컴퓨터 과학자인 에츠허르 데이크스트라가 1956년에 고안했으며 3년 뒤에 발표한 알고리즘입니다. 데이크스트라가 언론에서 밝힌 인터뷰에 의하면 해당 알고리즘은 ‘20분짜리 발명품’으로 약혼녀와 쇼핑 후 지친 상태에서 고안해냈다고 합니다. 이러한 20분짜리 발명품으로 데이스크라는 1972년 프로그래밍 언어 분야로 튜링상을 받기도 했습니다. 데이크스트라 알고리즘은 꼭짓점과 각 꼭짓점을 연결하는 변이 있는 그래프에서 두 꼭짓점간의 가장 짧은 경로를 찾는 알고리즘으로 우선순위 큐(Priority Queue)를 사용하지 않았기 때문에 시간복잡도는 𝑶(𝑉²) 입니다. 현재까지 다양한 변형을 통해 이용되고 있으며, 일반적으로는 그래프의 꼭짓점 중 특정 꼭짓점를 기준으로 다른..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/biXI2O/btr8IJbMp23/ZsAyEXcibM5JnloVhkhxXK/img.png)
오늘은 이전 '결제 프로세스 및 사업자별 역할' 포스팅한 학습내용을 바탕으로 간단한 결제 서비스를 구현을 해보기 이전에 구현 과정에서 필요한 결제 API 분석과 요구사항 정의 및 엔티티 구성 내용을 정리해보았습니다. 1. 결제 API 분석 이번 결제 서비스를 구축하기 위해 선정한 외부 API는 '포트원' 입니다. 포트원을 선정한 이유는 레퍼런스가 많고, 구현을 위해 제공되는 공식문서가 잘 정리되어 있다는 점이 가장 큰 메리트로 판단되었기 때문입니다. (참고로 포트원은 기존 import에서 변경된 명칭입니다.) 포트원은 GitBook을 활용하여 개발가이드를 제공해 주고 있으며, 대표적인 결제방식으로는 인증 결제 방식과 비 인증 결제 방식을 지원하고있습니다. 인증 결제 인증 결제란 고객이 신용카드 결제를 요..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/q7msH/btr7f0GVwfN/jCxznXKyVyH9kS107KfDBK/img.png)
오늘은 백엔드 개발자 지망생으로 웹 서비스 프로젝트에서 '결제' 기능 구현을 맡았으나 정작 '결제'가 무엇인지 몰라 면접에서 커다란 패배감을 얻고 이를 반성하기 위해 학습한 내용을 정리해 보았습니다. 저는 국비 교육 과정의 프로젝트를 통해 영화 예매 및 결제 기능을 구현해본 경험이 있습니다. 프로젝트 진행 과정에서 프로그래밍 언어와 CS 학습에만 급급한 나머지 실제 서비스에 대한 배경 지식이 갖추지 못한 상태로 개발을 진행했으며, 최근에서야 회고를 통해 무지한 상태로 개발했다는 사실을 깨달았습니다. 늦었지만 지금이라도 개선하기 위해 결제 기능을 개발하기 위해 알아야할 기본 지식을 알아보고자 합니다. 1. 결제 프로세스 우리가 평소에 자주 경험하는 결제의 프로세스는 위와 같습니다. 오프라인 결제는 단순한..
- Total
- Today
- Yesterday