뒤로가기뒤로가기

데일리 랩스

성장을 위한 밑거름이 될 소중했던 인턴 경험

샌드위치처럼 눌리는 출퇴근길의 익숙함

데일리펀딩

 

? 벌써 영하의 날씨로 온도가 떨어지고, 2021년도 거의 끝나가고 있다. 즉 인턴으로 출근할 수 있는 날도 얼마 남지 않았다? 인턴으로 첫 출근을 할 때만 해도 세달 반 정도의 시간이 매우 길 거라고 생각했는데 벌써 이주밖에 남지 않았다는 게 믿기지 않고 지금까지의 인턴 기간을 되돌아보게 되는 것 같다. 


개발일지

오늘은 거의 마무리 되어가고 있는 '캠퍼스론을 위한 데이터 정형화 프로젝트'에 대해서 이야기해 보려고 한다. 데이터를 스크래핑 해오고 정형화한 데이터를 제공하는 큼직큼직한 기능들은 구현을 완료했기 때문에, 이제는 이를 자동화하기 위한 개발을 진행 중이다. 사용자의 인스타그램 계정을 꾸준히 가져와서 저장해야 하지만, 매번 직접 api를 호출할 수는 없다. 따라서 서버가 켜져 있을 때, 자동으로 스크래핑 api를 호출할 수 있어야하고, 계속되는 요청에 서버가 튼튼하게 데이터를 저장하거나 반환할 수 있어야 한다.

 

[ log 이용하기 ]

인스타그램에 로그인하는 하나의 계정이 특정 시간 동안 인스타그램의 api를 호출할 수 있는 횟수가 정해져 있다 보니, 우리는 이를 위한 실험을 했고, 이를 적용해서 구현을 하고 있다. 먼저, config 테이블과 log 테이블을 지정해서 꾸준히 비교하면서 api를 호출한다.

api를 호출할 때마다 log에 호출할 당시 로그인한 아이디, 스크래핑 대상인 인스타그램 계정, api 호출 시작 시간과 종료 시간 등을 저장한다. 아래 이미지가 호출할 때마다 저장된 log 데이터들이다.

Log 데이터를 저장하는 테이블

log 테이블의 데이터를 통해 현재 인스타그램의 api를 호출을 해도 되는지, 안되는지 쉽게 파악할 수 있다. 이를 활용하기 전에는 호출 횟수가 초과될 경우 계정이 차단되는 등의 이슈들이 굉장히 자주 발생했었다.

 

[ 로그인계정 암호화 ]

스크래핑 해야 하는 계정이 많아질수록, 인스타그램에 로그인을 하고 스크래핑할 수 있는 계정도 많아져야 한다. 그래야 막혀서 멈춰있는 시간을 줄이고 계속해서 스크래핑을 진행할 수 있기 때문이다. 이를 위해서 인스타그램 계정의 ID와 비밀번호를 저장하는 테이블을 생성했다. 데이터베이스에 민감한 정보를 저장할 때에는 암호화된 데이터를 저장해야 보안을 유지할 수 있기 때문에 암호화 로직을 구현하여 비밀번호를 안전하게 저장할 수 있도록 했다.

암호화 알고리즘은 암호화와 복호화에 하나의 키를 이용할 수 있도록, 대칭키 알고리즘인 AES256방식으로 구현했다. 그리고 같은 텍스트로 암호화를 했을 때, 동일한 결과가 나온다면 이는 약한 암호화라고 할 수 있다. 공격자가 데이터에 접근했을 때 유사한 패턴을 찾게 된다면 그것으로 패턴을 분석하고 데이터를 추론할 수 있기 때문이다. 따라서 같은 텍스트라 할지라도 암호화의 출력을 다르게 하기 위해, 암호화 알고리즘에 임의성을 추가해야 하는데, 이때 iv(initial vector) 즉, 초기화 벡터가 그 역할을 한다.

 

인턴을 마무리하며

우선 아직 진행하고 있던 프로젝트를 마무리하지 못해서 이를 얼른 마무리하고 싶은 생각이 큰 것 같다. 두명이서 같이 백엔드 실습을 진행하는 것으로 하고 서버를 구현하는 거라 금방 할 수 있을 줄 알았는데 기능적인 구현 뿐 아니라 고려해야할 것들이 한 두개가 아니어서 하나하나 새로 고려하다 보니 오래 걸렸다. 남은 기간 동안 얼마 남지 않은 구현도 얼른 마무리를 하고, 정돈되어 있지 않은 코드들을 정리하며 리팩토링을 진행하고 싶다.

그리고 데일리펀딩에서 인턴을 하면서 전반적으로 웹 개발에 필요한 프론트엔드 개발과 백엔드 개발을 모두 경험할 수 있어 좋은 경험이었다. 비록 인턴 초반에 퇴근 후에 하고자 했던 목표들은 많이 이루지 못한 것 같아 아쉽지만, 그래도 세달 반이라는 시간 동안 스크래핑도 해보고, 로그를 활용하거나 crontab을 활용하는 등 이전에 해보지 못했던 경험을 할 수 있어서 뿌듯하다.

소소하지만 이번 인턴을 시작하면서 세운 목표가 하나 있는데, 바로 매일매일 TO-DO-LIST를 작성하고 어디까지 완료했는지, 무엇을 공부했는지 정리하는 것이다. MBTI도 P인만큼 계획적인 삶과는 거리가 먼 삶을 살고 있기 때문에 처음 시작할 때 사실 소소한 목표라고 하기에는 좀 거창하게 느껴졌다. 그래도 매일매일 컴퓨터가 켜지면 슬랙과 노션부터 켜고, 이를 지켜온 것에도 성취감을 느낄 수 있는 것 같다. 

인턴으로 처음으로 출근을 하던 날, 출근길과 퇴근길을 경험하면서 ‘직장인들은 도대체 어떻게 사는거지?’, ‘어떻게 버티는거지?’라고 생각했었는데 이제는 주말에도 7시에 눈이 떠지고 샌드위치처럼 눌리는 출퇴근길까지 아주 익숙해졌다. 이제 몇주 뒤부터는 데일리펀딩에서의 일상도 끝이라고 생각하니 많이 아쉽고 그리울 것 같다.? 그래도 데일리펀딩을 통해 배운 많은 것들이 나의 성장을 위한 밑거름이 될 것이라고 생각하면서 기분좋게 인턴생활을 마무리 지을 수 있을 것 같다. ?

 

우리는 매일 금융의 각을 넓혀가는
데일리언입니다.

데일리언과 함께하기 >