bone-stew blog

bone-stew 팀 블로그

안드로이드 로딩 시각화

안녕하세요 조상원입니다. 안드로이드에서 로딩을 시각화 하면서 배운 내용을 소개하겠습니다. 스켈레톤UI란 스켈레톤UI는 웹 및 모바일 앱에서 로딩 중에 사용자 경험을 향상시키기 위한 디자인 패턴 중 하나입니다. 사용자에게 데이터가 로딩되고 있는지 시각적으로 알려줌으로써 지루함을 덜 느끼고 페이지가 어떻게 보일지에 대한 감을 잡을 수 있게 도와줍니다. ...

RestDocs와 OpenAPI Specification을 이용한 효과적인 API 문서화

안녕하세요, 서명현입니다. 🤚 저희 팀은 API 문서를 작성할 때 RestDocs와 OpenAPI Specification을 사용하고 있는데요. 많은 기업에서 이미 Swagger를 사용하고 있지만, 저희 팀이 다른 방식을 선택한 이유에 대해 궁금해하실 것 같습니다. 이번 포스팅에서는 저희 팀이 RestDocs와 OpenAPI Specification...

인앱 결제와 PG 결제의 차이점

인앱 결제와 PG 결제의 차이점 안녕하세요 조재룡입니다. 이번 프로젝트에서 간단하게 인앱 결제와 PG 결제를 알아보고 왜 토스 페이먼츠로 구현했는지 설명하겠습니다. 인앱 결제 VS PG 결제 먼저 인앱 결제와 PG 결제를 간단히 알아야 합니다. 이번 프로젝트는 안드로이드 프로젝트이고 모바일 앱에서는 ‘인앱 결제’ 또는 ‘PG 결제’를 제공합니다. ...

MyBatis Mapper에서 Pageable 사용하기

Spring Data, Mybatis

JPA, MongoDB 등은 Spring Data의 Repository라는 인터페이스를 활용하여 저장소의 데이터에 접근을 친숙하고 일관되게 제공합니다. 특히, Pagination을 구현할 때, Spring Data의 Pageable이라는 객체를 사용하면, 매우 편리하게 구현할 수 있습니다. 이번 게시물에서는 Pageable 객체를 MyBatis Ma...

MyBatis에서 Enum 쓰는 법

안녕하세요, 서명현입니다. 🤚 저희 프로젝트는 예약 상태나 주문 상태와 같이 비슷한 특성을 가진 상태나 객체를 Enum 타입으로 관리하고 있습니다. 데이터베이스에 Enum 타입을 정수로 저장하면서 느끼게 된 한계점과 개선 방안에 대해 공유하고자 합니다. 목차 소개 이번 포스팅은 다음과 같은 순서로 진행됩니다. 우리 팀이 정수 저장 방식을 ...

React CI/CD 파이프라인 구축

S3, cloudfront, Github Action

안녕하세요 김우원입니다. 오늘 드디어 Popmate BackOffice를 배포했습니다. 이번 글에서는 Popmate BackOffice의 CI/CD 환경을 소개해 드리겠습니다. 아키텍처 개발자가 github에 push를 하면 github action을 통해 S3 빌드 파일을 올린다. CloudFront를 통해 S3의 빌드 파일을 캐싱...

GPS가 없는 실내에서는 어떻게 위치를 추적할까?

안녕하세요, 서명현입니다. 🤚 저희 프로젝트의 핵심 기능은 위치 기반 예약 시스템입니다. 흔히 위치를 추적할 때 사용되는 GPS 기능을 포함해서 와이파이, 비콘 등 다양한 기술들이 있었는데요. 실내에서 사용되는 예약 시스템 특성을 반영하여 저희가 선택한 위치 추적 기술에 대해 소개하겠습니다. 목차 소개 이번 포스팅은 다음과 같은 순서로 진행됩니다...

Spring Security를 사용한 이유

SpringSecuriy를 이용해서 로그인 구현 안녕하세요 조재룡입니다. 사용자가 로그인을 할 때 로그인의 인증 처리를 왜 스프링 시큐리티를 통해 구현했는지 소개해드리겠습니다. SpringSecurity를 쓴 이유 유저 입장에서 로그인은 당연한 기능이어서 신경을 쓰지 않지만 개발자 입장에서는 회원들의 개인정보가 유출되지 않도록 보안 처리를 해야하므로...

Redis를 이용한 조회수 기능 구현

Redis를 이용한 조회수 기능 구현 안녕하세요 조상원입니다. 안드로이드에서 사용자에게 보이는 추천 팝업스토어 목록을 구현하면서 적용했던 내용을 소개해드리겠습니다. 추천 팝업스토어 목록 구현 유저에게 추천 팝업스토어 목록을 제시하기 위해 팝업스토어별 조회수를 정렬 하기로 했습니다. 유저가 팝업스토어의 상세정보를 요청할 때 조회수를 업데이트해야 했고,...

Jasypt를 이용한 Properties 암호화

안녕하세요, 서명현입니다. 🤚 저희 프로젝트에서는 properties 파일에 저장되어 있는 데이터들을 암호화하여 사용하고 있습니다. properties 파일에 저장되어 있는 데이터들을 암호화하는 방법은 여러가지가 있지만, 저희는 Jasypt를 이용하여 암호화를 하고 있는데요. 이번 포스팅에서는 Properties 암호화의 필요성과 Jasypt를 사용...