👜 Apple Wallet Pass, Spring Boot에서 개발하기
기본적인 구조 모르는 분야의 개발을 시작할 때 가장 먼저 해야 할 일은 공식 문서를 보는 것이라고 생각합니다. 그래서 저도 애플의 공식 문서를 참고해 우선 Apple Wallet의 기본적인 구조를 이해해 보려고 했습니다. 우선, .pkpass라는 파일을 아이폰, 맥북, 아이패드 등의 애플 기기에서 열면 Apple Wallet에 Pass가 추가됩니다. .pkpass는 폴더를 압축한 파일이라고 생각하면 되고, 그 폴더의 구조는 아래와 같습니다. 보시면, 핵심적인건 3가지 입니다. 리소스 파일 (icon, thumbnail, logo 등 이미지) 설정 파일 (pass.json) 리소스 파일, 설정 파일의 번역본 (영어, 한국어 등) 즉, Apple Wallet Pass를 개발하는 방법은 위 3가지를 준비하고,..
2023. 6. 2.
🔥 Hot Ranking 알고리즘, Spring Batch로 구현하기 (feat. Strategy 패턴)
Hot Ranking 알고리즘이란? 인기있는 것 (Hot한 것)에 순위(Ranking)을 매기는 알고리즘 실시간 검색어, 커뮤니티의 인기 게시글, 화제가 되고 있는 뉴스 등 무언가에 특정한 기준으로 순위를 매기고 싶을 때 쓰는 알고리즘을 Hot Ranking 알고리즘이라고 부릅니다. 보통은 공개되어 있지 않고, 다양한 데이터를 바탕으로 계속 개선합니다. 책잇아웃(포트폴리오)을 만드는 도중, 커뮤니티 기능을 만들게 됐는데 게시글을 인기순으로 보여 주고 싶어 Hot Ranking 알고리즘을 고안해 봤습니다. 나만의 Hot Ranking 알고리즘 우선, 커뮤니티 부분의 DB 구조만 잠깐 보여 드리자면 아래같이 되어 있습니다. 즉, 게시글을 평가할 때 게시글 자체, 게시글의 좋아요/싫어요, 댓글, 댓글의 좋아요..
2023. 5. 18.
코딩 테스트에서 최대공약수(GCD), 최소공배수(LCM) 유클리드 알고리즘으로 구하기
코딩 테스트를 풀다 보면 의외로 최대 공약수, 최소 공배수를 구해야 할 일이 많습니다. 직접적으로 최대 공약수 / 최소 공배수를 구하라고 하는 문제도 있지만, 아래의 문제는 모두 간접적으로 최대 공약수 / 최소 공배수를 구해 푸는 문제들입니다. 기약 분수로 만들기 n개로 나눌때 모든 사람이 같은 개수를 가질 수 있게 하기 무식하게 최대 공약수 구해보기 두 수의 약수를 모두 구한다 공통된 약수만 남긴다 거기서 가장 큰 수가 최대 공약수! 최소 공배수는 최대 공약수만 구하면 자동으로 최소 공배수의 의미가 뭘까요? x, y의 최소 공배수라 하면, x, y 모두와 나누어 떨어지는 가장 작은 수 즉, 만약 아래와 같이 x, y가 이루어져 있다면 x, y의 최소 공배수는 a, b, c 3개의 숫자로 모두 나누어 ..
2023. 4. 7.