안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 목표 수치를 설정하고 정한 이유를 발표한다. hikariCP configuration 보고 필요한 값 설정한다. 💋 예상 무조건 HikariCP 커넥션 풀의 크기를 크게 잡았다고 해서 성능이 개선되는 것은 아니다. PostgreSQL이 추천하는 Connection Pool Size 공식에 따르면, Connection Pool Size = (core_count * 2) + effective_spindle_count 로 설정했을 때 최적이다. 풀 사이즈를 무한정 늘린다고 하더라도 CPU 코어 수가 한정되어 있어 ..
스탬프크러쉬에서 기획/영업/마케팅을 담당할 신규 팀원을 모집합니다! 마감되었습니다. 안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬에서 기획/영업/마케팅 팀원을 모집합니다. 개발자들과 협업할 수 있는 좋은 기회이니, 많은 관심 부탁드려요 🌟 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 팀 소개 안녕하세요. 저희는 우아한형제들의 웹 개발 프로그램인 우아한테크코스에서 서비스 개발하고, 운영하고 있는 [스탬프크러쉬]팀이라고 합니다. 스탬프크러쉬는 개인 카페의 ’종이쿠폰'의 적립과 관리를 온라인으로 관리하는 서비스입니다. 2023년 7월부터 시작해, 현재는 웹 개발자 4명(백엔드 개발자 2명, ..
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 이번 포스팅 제목은 약간 모리와 함께한 화요일 느낌으로다가 해봤는데... 눈치 챈 사람 있나..? 풉킼 💋 드디어 실제 사용자(카페 사장)가 스탬프크러쉬를 사용하기 시작했다! ✔️ [23.10.06] 성수동 개인카페 ‘파일론 성수’에서 스탬프크러쉬 첫 사용 바로 전날, 라잇과 나는 파일론 성수에 가서, 마지막으로 동작 확인 등등을 하고 돌아왔다. 그리고 하루 뒤인 10월 6일, 드디어 파일론 카페에서 우리 서비스를 쓰기 시작했다!!! 진짜로 이렇게 슬랙으로 적립 알림이 막 오기 시작하니 와쿠와쿠 일주일 동안 계속..
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 무중단 배포 도입 전 ✔️ 스탬프크러쉬의 인프라 상황 한 대의 클라우드 서버에서 운영 서버를 가지고 있으며, 외부의 한 대의 또다른 클라우드 서버를 배포 관련 서버로 사용중이다. 해당 서버에서는 젠킨스를 통해서 배포를 자동화하고 있다. ✔️ 배포 방식 현재 스탬프크러쉬는 jenkins 서버에서 아래의 4가지 단계로 배포를 자동화하고 있다. 우리가 트래킹하는 브랜치(main, develop)에 push가 되면, 젠킨스는 깃허브로부터 최신 코드를 가져온다. 최신 코드를 빌드해 .jar 파일을 만든다. .jar 파..
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 안녕하세요, 우아한테크코스 5기 깃짱입니다. 이번 포스팅에서는 제가 진행하고 있는 프로젝트인, 스탬프크러쉬에서 자주 사용되는 쿼리들의 실행 계획을 확인하고, 개선하는 과정에 대해서 설명하고자 합니다. 💋 실행 계획 ✔️ 실행 계획 확인의 필요성 우리가 애플리케이션을 구성할 때 MySQL과 같은 DBMS를 사용하는 이유는, 데이터를 안전하게 저장, 관리하고, 빠르게 조회하기 위해서입니다. MySQL에는 쿼리를 쿼리를 최적으로 처리될 수 있도록 실행 계획을 수립하기 위해서, MySQL 엔진의 뇌라고 볼 수..
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 오늘 프론트엔드 크루 라잇과 함께 스탬프크러쉬 서비스를 사용하기로 한 파일론 성수 카페에 방문했다. 지난 번 방문해서 직접 우리 서비스에 대해 소개한 이후로 두 번째 방문이다. 오늘은 우리 서비스 사용 방법에 대해 알려주고, 이젠 진짜 사용하기 위해서 키패드 설치를 했다. 이 과정에 대해서 사진을 통해서 기록하고, 라잇과 서울숲을 돌면서 했던 이야기를 바탕으로 그냥 회고 식으로 나의 현재 생각을 정리해보려고 한다. 오늘 우리 최종 데모데이에 넣을 사진을 위해서 디카를 가져가서 사진을 찍었다. 블로그에도..
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 스탬프크러쉬는 사용자의 인증(로그인)을 구현하기 위한 방식으로 JWT(Json Web Token)를 사용한 방식을 택했다. 이번 포스팅에서는 JWT 방식을 사용한 로그아웃, Refresh Token을 통한 Access Token 재발급 방식에 대해 포스팅해보려고 한다. 💋 JWT 방식 ✔️ JWT 방식은 원래 Stateless 하다. JWT는 세션을 사용한 방식과 달리, Stateless한 특징을 최대한 살린 형태로 동작한다. 여기서 순정 JWT라고 설명한 이유는, 이후에 소개할 방식들은 JWT의 방식..
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 스탬프크러쉬 서비스는 인터넷 상에서 종이쿠폰을 관리할 수 있도록 도와주는 서비스 이다. 스탬프크러쉬 서비스의 기획에 대한 전반적인 틀을 설명한 글을 읽으면 어느 정도 이해할 수 있듯, 우리는 서비스 운영을 위해서는 실제 카페 사장이 필요했다. 이번 스프린트에서 정말 감사하게도 사용하겠다는 카페 사장님이 생겼고, 10월 초부터 서비스하게 되었다. 이번 포스팅에서는 우리가 5차 스프린트 동안 어떤 목표를 가지고 어떤 노력을 통해 서비스 유저를 구하게 되었는지에 대해서 포스팅해보려고 한다. 💋 5차 스프린트..
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 토미의 인프라 개선에 대한 강의 이후에, 우리 팀의 현재 인프라 구조를 분석해보고, 어떻게 개선할 수 있을 지에 대해서 팀원 전체와 고민해봤다. 개선의 포인트는 가용성의 향상으로, 우리 서비스에 장애가 발생해 전체 서비스가 중단되는 상황을 피하는 방향이었다. 💋 우리 서비스에서 특별히 고려해야 할 중요한 기능 데이터베이스 상에 저장되는 정보가 카페와 고객 사이에 신뢰를 결정짓고, 금전적인 부분이 연관되어 있어서 절대 데이터를 잃어서는 안된다. 💋 현재 아키텍처에서 문제가 될 수 있다고 생각한 부분 현재..
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 프로젝트 진행 중에 데이터베이스의 스키마가 변경되는 상황이 자주 발생했다. null 제약조건 추가 정도의 가벼운 상황이었을 때는, mysql 명령어를 통해서 직접 alter 컬럼을 해주었는데, 점점 변경이 커지고 데이터 구조 자체가 변화하다 보니 형상 관리가 필요한 지경에 이르렀다. 그중에서 우리 팀은 가장 익숙한 Flyway를 도입해서 데이터베이스 형상 관리를 하도록 했다. Flyway가 처음에는 좀 어렵게 느껴졌지만, 본질적으로는 '형상 관리'이므로 변경에 대한 내용을 추적할 수 있도록 저장하는 것..