본 페이지는 PC에서 보는 것을 권장드립니다.

💡 일상생활에 편리함을 주는 서비스를 만드려고 노력하는 백엔드개발자 장동민입니다.

장동민.jpg

🎂 Birth 1997.02.24

☏ Mobile +82 10 5786 2039

✉️ [email protected]

[*https://www.github.com/hidongmin37*](https://dongminjang24.notion.site/https-www-github-com-hidongmin37-e609dc54ab22486caa9933018bbd6daa)

🔗 (블로그): https://hidongmin37.github.io/

Introductions


웹 어플리케이션 유지 보수 실무 경험

성실함

다른 분야와의 소통

Skills


| Backend

| Frontend

| Tools

실무 프로젝트

1. hashscraper 다중 서버를 통한 대량의 빠른 크롤링 데이터 제공 서비스

🙇 소개: 해시스크래퍼는 멀티서버를 통해서 수집한 크롤링 데이터를 데이터 처리 및 가공하여 제공하는 자체 서비스를 구축하여 B2B,B2C형태로 서비스를 제공하고 있습니다.

image.png

진행기간 2022.12.01~ 2023.03
**프로젝트
소개 및 목표** 기존 레거시 코드들을 모두 제거하고, 기존에 라이브러리에서 버전이 낮은 라이브러리에서 버전 업된 라이브러리르 사용하며, DB도 대용량 데이터를 처리하기에 알맞은 Mysql보다는 PostgreSQL로 마이그레이션하였습니다. 또한, 기존에 플랫폼에서 없던 메일링 서비스 및 없었 던 페이지를 좀 더 ui/ux를 사용자가 다루기 쉽게 업데이트하였습니다.
사용 스택 Ruby on Rails
협업 툴 Notion
담당한 부분 1) 메일시스템정립

1. 가입인증메일

기존에 가입을 하고나서 메일 인증과정에서 UI를 변환하고, 각각의 기기마다 서로 다른 적용을위해서 맞추도록 코드 적용.

피그마

2. 가입 인증 후 메일

회원 가입을 인증하고나서, 보내는 확인 메일 시스템 적립. 기존에는 회원 가입 인증하고나서, 보내는 이메일이 따로 있지 않았으나, 인증 후 보내는 로직을 추가 적용

피그마

3. 비밀번호 재설정

비밀번호 재설정 UI 및 기존 회원의 비밀번호를 재설정 할 수 있는 방법이 없었으나, 회원의 비밀번호를 재설정할 수 있도록, 회원가입하여 인증했던 이메일로 비밀번호를 재설정하는 링크를 보내어, 해당링크를 통해 토큰 인증이 되고나서, 비밀번호 재설정을 할수있게 하였음.

피그마

4. 최근 실행 작업 안내 메일

기존에 있던 상태 완료 시점에 대해서 매우 문제가 많았음. 아무래도 분산 처리가 되다보니, 동시성 문제도 있었고, 해당 과정에서 오류가 나고 나서, 재시도 했을 때 상태완료가 잘 되지 않았음. 그래서 반강제적으로 1시간 마다 주기적으로 업데이트하고 있었음. 배치를 적용하여, sidekiq에서 한 작업 당 관리가 쉽게 될 수 있게 적용하였음. 따라서 상태 완료 를 보다 더 쉽게 적용하였고, sidekiq에서 푸쉬하고 재시도 된 경우에도 최대 5회가 재시도 되는 경우가 11분이었는데, 11분 동안 재시도가 일어나도 완료가 되지 않을 경우에는 스케줄링을 하였음.


피그마

5. 데이터 다운로드

기존에는 자체 서버에서 엑셀을 만들어 서버에서 다운을 받을 수 있게 하였으나, 메일 시스템을 통해서 다운로드 링크를 보내어, 링크를 통해서 데이터를 다운받을 때에 아무리 많은 데이터를 다운받더라도, 자체 서버에 무리가 가지 않게 변경하였음.


피그마

6. 크레딧 소진

한번에 수집하는 데이터가 굉장히 많았기 때문에 크레딧을 차감하는 과정에서 많은 무리가 갈 수 있기 때문에, 최대한 덜 무리가 가기 위해서, 짧은 기간내에 동일한 작업이 일어났을 경우에는 한 번에 배치로 처리할 수 있도록 변경하고, 크레딧을 소진할때 크레딧을 체크하는 메소드를 생성하여, 결제 크레딧에 대해서 30%가 남았을 경우를 체크하여 메일을 보냄.


피그마

**7. 서비스 이용권 만료, 무료 이용권 만료

cron**을 이용한 스케줄링을 통해서 매일 자정에 유료 이용권을 이용한 사람들과 무료이용권인 사람들에 대해서 이용권의 유효기간을 체크하는 로직을 만들어. 7일 만료 전인 유저에 해당하 는 유저에게 메일을 보내게 하였음.


피그마

8. 서비스 이용권 구매

기존에는 서비스 이용권을 구매하였어도, 어떤 이용권을 구매했고, 크레딧 또는 이용기간이 따로 나와있지 않았는데, 메일에 해당 내용이 들어갈 수 있도록 하였음.

피그마

9. 이메일 수신 및 거부 설정

기존에는 이메일 보내는 시스템도 없었을 뿐 더러, 광고성 이메일, 정보성 이메일에 대한 구분 조차 없었음. 그렇기 때문에 이러한 이메일 거부 로직도 없었음. 해당 로직은 토큰을 생성하여 DB에 저장하므로써 이메일 종류에 대해서 수신여부 컬럼을 생성하여, 컬럼에 해당하는 종류의 이메일만 발송하도록 하였음.


피그마

**** | | 그외 | 서비스 유지 및 보수 |

Project