쉐어워크 백엔드를 소개합니다
안녕하세요. 쉐어워크 서비스에서 백엔드를 맡고 있는 지노든 입니다.
현재 쉐어워크 서비스는 직장인들로 중심으로 사이드 프로젝트를 진행하고 있는데요,
간편하게 일자리를 공유하고 지원할 수 있는 서비스를 개발하고 있습니다.
https://apps.apple.com/kr/app/%EC%89%90%EC%96%B4%EC%9B%8C%ED%81%AC/id1616862237
쉐어워크
■ 초보도 가능한 아르바이트 배송 경험이 없어도 OK! 누구나 지원 가능합니다. ■ 출근, 퇴근 걱정 No! 면접도 없는 꿀알바 면접 없이 간단한 정보만 입력하면 바로 업무 가능! 그리고 알바 승
apps.apple.com
아직은 많이 부족하지만, 이번 글을 통해서 현재까지 사용한 기술을 정리해보고,
앞으로 할일과 방향에 대해서 공유 하고 싶습니다.
먼저, 현재까지 사용한 기술은 다음과 같습니다.
- Spring Boot 2.5.3 & Java 11
- PostgreSQL along with Flyway
- JWT, SMS authentication
- Firebase cloud messaging for alarm service
- CI/CD with Docker using Github Actions
- Infra using AWS EC2 and S3
- Slack Alerts for internal monitoring
- Swagger
이와 함께 Jira 와 Slack 에서 수시로 자유롭게 의견을 나누고 있습니다.
무엇보다도 사이드 프로젝트 만큼 시간을 효율적이고,
본업과 내 삶의 영향을 최소화 하는 것이 가장 중요하게 생각하고 있습니다.
사실 제가 이 프로젝트는 중간에 합류 하였는데요,
기존 코드를 부수고 새롭게 만드는 방식이 아닌 마일스톤을 갖고 점진적 개선 하는 방향으로 진행하고 있습니다.
로컬 테스트 환경 확보
기본적으로 JUnit 테스트 코드가 작성되어 있지 않아서,
스웨거 있지만 여러가지로 테스트 환경이 부족할때가 있어요.
테스트 코드를 많이 준비하여 커버리지를 높이고요,
운영/개발 환경 별도로 격리된 로컬 환경에서 간편하게 테스트할 수 있도록 준비하고 싶습니다.
가령, FCM 백엔드 테스트 환경을 위해서,
자체적으로 플러터 앱을 준비하여 미리 클라이언트 개발자에게 부담 없이 충분히 테스트 합니다.
코드 개선과 리펙토링
앞으로 많은 사용자들이 유입되기 전에,
원할한 기능 개발과 유지보수를 위해서 현재 코드 개선이 필요해요.
서비스 중심의 API 으로 정리하고, 코드 컨벤션(일관성)을 정립해서 클린코드를 지향하려고 합니다.
IntelliJ 에 SonarLint 플러그인이나 다른 정적 검사도구들을 충분히 활용하여,
zero-warnings 코드가 궁극적인 목표입니다.
성능 테스트
예측 가능한 서비스를 위해서는,
미리 성능 테스트는 당연히 필요하고 준비해야한다고 생각해요.
가급적 우선순위를 높여서 nGrinder 나 JMeter 를 이용하여,
한번은 평가해보고 앞으로 상황에 대해서 미리 경험해보려고 해요.
채팅 서비스 준비
요즘 대부분 커뮤니케이션 앱 서비스에서 많은 채팅 기능이 있는데요.
쉐어워크 서비스에도 DM 같은 단순한 1:1 채팅 기능이 요구되고 있어요.
Spring STOMP 및 Websocket 을 이용하여 채팅 서비스를 준비하고 있는데요,
현재 api 프로젝트에 통합을 시키거나 별도 서비스으로도 진행이 가능한 기본적인 프로젝트를 만들고 있습니다.
이외에도 ERD 나 Infra 등 여러가지 개선 사항이 있습니다만,
서비스 상황을 보면서 조금씩 수정할 계획 이네요.
무엇보다도 올해는 다양한 시도를 통해서 기술적 성장을 많이 하고 싶습니다.
최소한의 보안을 고려하여 코드가 부끄럽지만 오픈소스으로 진행하고 있는데요,
혹시, 관심 있으시고 같이 성장을 하고 싶다면, 저한테 메일 주시면 감사하겠습니다.
https://github.com/backcamp/sharework-api
GitHub - backcamp/sharework-api
Contribute to backcamp/sharework-api development by creating an account on GitHub.
github.com