뒤로가기뒤로가기

데일리 랩스

부족함 덕분에 성장할 수 있었던 소중한 시간

유레카의 연속

데일리펀딩

 

[ 요즘 근황 ]

프로젝트를 꼭 마무리 짓고 가고 싶다는 마음이 강하게 들면서 노트북을 집으로 가져가는 횟수가 증가한다. 자꾸 예상치 못한 부분에서 오류가 생기는 바람에 "이것만 해결하면 다음 진행이 가능한데.."라는 생각이 들면서 자꾸 가져가게 되었다. 

데일리펀딩 덕분에 정말 초등학생이 기탄 수학으로 수학 입문하는 것처럼, 회사 생활을 입문하게 되었는데 수학과는 다르게 정말 즐겁고 재밌었다. (물론 원하는 대로 코딩 결과가 나오지 않을 때는 스트레스도 받았다.) 

회사 사회생활을 경험하며 분위기도 알게 되었고, 기초 용어에 개발적인 부분, 또 ‘핀테크’라는 분야가 얼마나 중요한지 등을 배우면서 내 인생에서 정말 큰 도움이 되었다. 

이걸 앞으로 어떻게 나를 더 발전시키는데 사용하느냐는 나에게 달려있겠지만, 그 스타트를 데일리펀딩이 끊어주었다는 것은 분명하다. 마지막까지 열심히 달려보자!

 

 

[ 개발일지1 ]

모델링 작업을 시작하고 인턴 일지에 그 포부를 담았지만, 역시 한 번에 잘 되는 일은 없다. 이제는 뭔가 레벨 업을 했고 다 잘 할 수 있을 것 같았는데 전혀 아니었다. 부족한 점은 하면 할수록 끝없이 나온다.

DB 모델링 작업은 아래와 같이 진행했다.

1. 데일리펀딩의 DB 구조 파악

2. 지금 하고 있는 프로젝트 목적에 맞도록 테이블 설계

3. 다른 테이블과 설계한 테이블의 관계 정립

4. hoohoo님과 MIT님께 피드백 받고 수정

 

DB 모델링 작업을 시작한 날에 데일리펀딩의 DB 구조 파악과 관련하여 MIT님이 설명을 해주시고 관련된 사진을 보내주셨다. 그걸 바탕으로 DB 구조 파악을 완료했다.

하지만 2번 단계에서 DB 모델링 툴을 사용할 생각을 하지 못했고, 공책에 그려가며 새로운 셀렉터 테이블을 설계했다. 지금 생각하면 정말 얼굴이 화끈해지는 행동이었다. 심지어 그렇게 그린 채로 이 정도면 괜찮다고 생각했다. 3번을 하지도 않은 상태로 다음 회의를 들어갔는데, MIT님께서 다시 한번 더 내가 해야 하는 부분을 짚어주셨고 그제야 내가 준비를 안했구나라는 생각이 들었다. 솔직히 말하면, 준비를 안 해갔다기 보다는 저런 단계가 있다는 것을 몰랐고, MIT님께서 설명해 주셔서 알게돼서 이렇게 또 한 단계 성장한 감자가 되었다.

데이터 모델링을 다시 준비하기 위해 ERD(Entity Relationship Diagram)와, ERD툴을 이용하기 위해 식별관계-비식별 관계, 1:1, 1:N, N:N 등에 대해 다시 공부했다. 분명히 데이터베이스 강의를 들으면서 공부를 했던 내용이었음에도 불구하고 직접 실무에 적용하려니 계속 확신이 안 들고 이해가 가지 않아서 처음부터 다시 빠르게 공부했다. 

그러고 나서 다시 ERD툴을 보니 그제야 이게 무슨 말인지 이해가 가고 그 이해를 바탕으로 테이블 간의 관계 정립은 물론 내가 설계했던 테이블을 어떻게 하면 더 효율적으로 수정할 수 있을지 고민할 수 있었다.

그러다가 원래 3개였던 테이블을 4개로 늘리고 중복되는 부분을 다른 새로운 테이블로 뽑아내야겠다는 생각을 했다. 그렇게 ERD를 수정하여 hoohoo님께 링크를 공유했는데, 정말 내가 생각하지 못했던 부분과 고민하던 부분에 대해서 바로 집어내셔서 DM을 보내주셨다. 

그냥 지나칠 뻔한 부분에 대해서 바로 말씀해 주신 것도 너무 놀라웠고 질문하려고 준비하고 있던 부분에 대해서 먼저 질문해 주셔서 더더욱 놀랐다. 몇 차례 DM이 왔다 갔다 했을 때, 내가 DB구조에 대해 잘못 이해하고 있다는 것을 깨달았다. 정말, "유레카"를 외칠 뻔했다. (사실 이미 마음속으로 외쳤다.)

 

 

[ 개발일지2 ]

DB 모델링을 마무리 짓고 셀레늄 스크래핑 전체 코드 구현에 뛰어들었다.

계속 테이블만 보다가 코드 구현을 시작하니까 정말 즐겁고 의욕이 넘쳤다. 셀레늄 스크래핑 전체 코드는 이전에 구현해두었던 전처리 함수 3가지와 그렇게 전처리 시킬 데이터를 받아오는데 이용될 selenium 모듈을 통해 이루어져 있다. 이때는 DB 연결 직전이어서 코드에 넣을 데이터는 딕셔너리 형식으로 각 회사별 셀렉터를 직접 코드에 입력해두었다. 그리고 이 과정에서 전에 만들어둔 전처리 함수의 오류를 발견하였고 맨 앞자리가 숫자가 아닐 경우, 앞에 있는 문자를 다 지워버리는 코드를 추가했다. 의욕이 넘쳐서 그런지 하루 만에 DB 연결 전까지 코드를 다 구현했다. 

이후에 해야 했던 일은 크게 두 가지였는데, 첫 번째는 메인 페이지에서 셀렉터를 가져오지 못할 경우에 공시자료 페이지에서 가져오도록 구현하는 것이었고, 두번째는 DB를 파이썬 코드와 연결시켜 DB에 저장되어 있는 셀렉터 값을 이용해서 데이터를 스크래핑해오고 이를 전처리 함수를 통해 정리하여 원하는 형식으로 DB에 저장하는 것이었다. 

첫 번째를 해결하기 위해 셀렉터가 있거나 없거나, 만약 있다면 이것이 메인 페이지에서 쓸 수 있는 셀렉터인지 등을 파악하는 경우의 수를 정리했다. 이를 if-else를 이용해서 코드로 구현하였고 조금씩 발생하는 오류를 수정해가면서 결국 첫 번째를 해결했다. 또 효율적이지 못한 코드를 리팩토링하는 과정을 거치며 코드 길이를 줄였다. MySQL과 파이썬 코드를 연결하는 건 처음이라 멘토님께서 조언해 주신 대로 많은 자료를 둘러보고 공부하면서 DB 연결을 시도해 보았다. 그런데 여기서 문제가 발생하였다. 학부생 때, 데이터베이스 수업을 들으면서 MySQL을 사용한 적이 있었는데 이때 설정해둔 비밀번호를 잊어버린 것이다. 처음엔 "스택오버플로우" 사이트를 돌아다니며 해결 방안을 찾아서 시도해 보았지만, 어림도 없었다. 결국 전부 삭제하고 다시 다운로드해서 실행시켰다. 여기서 필요 없는 시간을 낭비해버렸지만 위의 과정을 거친 덕분에 MySQL에 임의의 값을 넣고 파이썬으로 잘 가져와지는 것을 볼 수 있었다. DB와 파이썬 코드를 연결했으니 남은 것은 DB에 셀렉터 데이터를 넣고 이를 파이썬 코드를 통해 가져와서 전처리 시키고 다시 DB에 저장시키는 일이었다.

그런데 위에서 작성했던 셀레늄 스크래핑 전체 코드는 코드에 딕셔너리로 직접 데이터를 넣어준 코드였기 때문에 코드에 있는 데이터를 DB에 넣고 셀레늄 스크래핑 전체 코드를 DB에서 셀렉터와 기업별 홈페이지 링크를 받아와 데이터를 수집해오는 구조로 코드를 수정해야 했다. 이를 위해 코드에 작성해 둔 데이터를 DB에 옮겨 저장을 하였고 딕셔너리 형식을 깨고 리스트 형식으로 코드를 재구성하였다. 인텍스를 사용하여 for문을 돌리는 부분이 있어서 리스트로 수정하였다. 

그렇게 전체적인 수정을 거친 결과, DB 데이터를 이용하여 각 기업의 데이터를 스크래핑해오고 이를 전처리 함수를 통해 정리하는 부분을 다 구현하였다. 

이후, INSERT와 SELECT 를 통해 데이터를 넣고, 넣은 데이터를 확인하는 과정까지 모두 마쳤다.

 

 

[ 여러 문제를 만나며 ]

세상에는 그냥 되는 일은 없는 것 같다. 정말 이제는 잘 할 것 같다는 마음이 들다가도 바로 그게 아니라는 것이 느껴지는 게 재밌다고 생각한다.

매주, 매일 내가 부족하다는 것을 깨닫고 더 공부해야 한다는 것을 알려주니 너무 고맙고 매주, 매일 성장할 수 있도록 도와주는 데일리펀딩에 항상 감사하다. 

더 열심히 공부하고 이 프로젝트를 꼭 완벽하게 끝내고 싶다.

 

 

[ 데일리펀딩 인턴 생활 이래서 좋았어요 ]

1. 연차 사용

현재 휴학생이지만, 학교 단과대학 학생회와 코딩-보안 동아리 운영진을 겸직하고 있다. 이번에 학생회와 동아리가 협업하여 "개발자의 밤"이라는 코딩 관련 축제를 열었다. 단과대 내 축제 중에 가장 큰 행사였기에 원래 하던 디자인 직무 말고도 축제 당일 내부 안내 및 개발 세션 통솔 및 인터뷰 등을 맡았기에 연차를 써야 했다. 

학교 행사 때문에 연차를 써야 한다는 것이 사실 눈치가 보여서 처음에 어떻게 말씀드릴까 고민했는데 인턴 기간 내에 연차를 안 쓰고 놔두면 사라진다며 눈치 보지 말고 다 쓰라고 오히려 먼저 말씀해 주셔서 감사했다. (정말 눈치 안 보고 그 주에 두 번을 썼다.)

덕분에 축제를 잘 마무리했고 선배님들의 코딩 직무 강연도 여유롭게 들을 수 있었다. 

 

2. 소중한 기록

인턴 일지도 개인이 작성하여 인턴 활동 과정 검사를 위해 제출하는 것뿐만 아니라 인사이트에 업로드가 되니 더 뿌듯함이 느껴진다. 그동안에 얼마나 진행을 했고 어떤 생각을 하고 있었고 어떤 노력을 했는지 등 스스로 검사하고 성찰해 보는 시간을 가질 수 있어서 좋았다.

그리고 인턴 인터뷰를 하면서 마지막 정리를 하고 이런 자리가 아니었다면 할 기회가 없었던 말을 전달하면서 더 보람과 뿌듯함을 가질 수 있어서 정말 감사했다. 이런 세세한 프로그램 하나하나까지 준비해 주시는 부분이 모이고 또 모여서 데일리펀딩의 가치를 더 부각시키지 않을까라는 생각이 들었다. 

 

 

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

데일리언과 함께하기 >