[지덕체 개발일지] 알고리즘을 공부해야하는 이유

Rudy·2021년 3월 5일
0

지덕체

목록 보기
9/15

100개는 무리야..!

지난 시간에 멘토님이 세가지 과제를 내주셨는데요!

  1. 파일관리 운영 정책 설계
  2. 로그 어떻게 남길지 알아오기
  3. 더미 데이터 100개 만들고 메인 화면에 추가하기

지난 시간의 이야기가 궁금하신 분들은 이 링크 클릭!

이 중 세번째 과제였던 더미 데이터 100개는 수작업으로 하나하나 추가하다보니 너무 힘들어서 9개만 만들어 갔습니다..(뺀질이...)
제가 수작업으로 추가했다는 이야기를 들으시고 호준 멘토님이 빵 터지셨습니다.
"더미데이터를 생성하는 로직을 만들어서 추가하는거야! 수작업으로 하면 당연히 힘들지!ㅋㅋㅋㅋㅋㅋ"

다행히 그 과제를 내주신 이유는 더미데이터의 갯수보다는 어떻게 나타낼 것인지에 있었기 때문에 크게 중요하지는 않았답니다.
저는 메인 페이지에 새로 등록된 굿즈를 어떻게 나타낼지 생각하다가 다른 강의에서 봤던 더보기 버튼을 추가하는 방법을 택했습니다. (이 방법이 버튼을 이용하는 중에는 가장 쉬웠고, 메인페이지에서 무한 스크롤을 이용하는 것은 복잡해보였기 때문입니다.)

"좋아 잘했네, 그런데 만약에 사용자가 더보기 버튼으로 새로운 제품을 보는 와중에 또 제품이 등록되면 어떻게 될까?"
"음... 새로 고침을 하기 전까지는 보지 못할 것 같아요"
"그렇지 근데 지금 네가 만드는 서비스는 구매자와 판매자 모두가 고객이잖아. 판매자들이 민원 넣지 않겠어?"
"아하..." 머리가 복잡해졌습니다. 어떻게 구현할지 감이 안왔기 때문이죠.

"그럼 여기서 뭘 쓰면 이 문제를 해결할 수 있을까?"
"음... 잘 모르겠습니다."
"스택! 후입선출 구조니까 자료구조 중에 스택을 사용하면 되겠지? 이게 바로 너희가 알고리즘을 공부하는 이유야! 이런데 써먹기 위해서"
아! 머리가 상쾌해지는 기분이 들었습니다. 저는 지금까지 알고리즘은 취업을 위한 도구 정도 외에는 딱히 필요성을 느끼지 못해 공부를 미뤄오고 있었는데요. 이제서야 왜 알고리즘을 배우는지 확 와 닿았습니다.

"좋아 그럼 이제 알았으니까 다음에는 어떻게 굿즈를 가져올지, 그리고 인기 굿즈에 한 아티스트 제품만 몰리면 어떻게 대응할지 이런 운영 정책적인 부분을 생각해오자!"

로그의 종류

두번째 과제였던 로그 남기기는 나름 자신 있었습니다.
winston과 morgan이라는 라이브러리를 이용해 나름 있어보이는(?) 로그를 날짜별로 파일로 저장하도록 만들어갔기 때문이죠.

"좋아 통신에 대한 부분들은 로그를 잘 남겨왔네. 그런데 로그가 저게 과연 다 일까?"
"음.. 다른게 더 있나요...? 인터넷에 찾아보니까 이런 애들만 나와서..."
"그럼 로그의 종류와 목적에 대해 네가 생각하는 걸 한 번 말해봐"

제가 이야기하는 것들을 위 사진과 같이 멘토님이 정리해주셨습니다.
"그럼 지금 동작 기록과 고객 분석을 위한 로그가 부족하다는 걸 알겠지? 인터넷에 안 나오는 건 개발자마다 다 방식이 다르고 정해져있는 기준이 없기 때문이야! 직접 어떻게 구성할지 생각해봐!"

후하.. 이번 주 과제 중에 가장 막막했던 '로그 남기기'가 추가되었습니다!

자동화를 시켜보자!

지난 시간 멘토님이 첫 번째로 내주신 과제는 바로 '파일 관리 운영 정책 설계' 였는데요. 이 과제가 나왔던 이유는 실수 혹은 오류 등의 이유로 잘못 삭제된 파일들의 복구 가능성과 효율적 파일 관리를 위함이었습니다.
그래서 저는 이런 부분들을 해결하기 위해서 다음과 같은 디렉토리 구조를 구성해봤습니다.

(새롭게 만든 디렉토리 구조)

현재 사용되고 있는 파일들은 current에 두고 글이 삭제되거나 사진이 변경되면 trash 디렉토리로 옮겨 30일간 보관한 후 삭제하도록 했습니다.
"잘했네, 그런데 30일 후에 삭제하는 건 누가해?"
"그게... API로 코드는 만들어 뒀는데 제가 직접 리퀘스트를 보내줘야합니다"
"그렇지 그런 부분들을 자동화하는게 필요해. 배치 프로세싱을 이용해봐. Lambda나 Jenkins 같은 것들을 찾아보면 될거야"

아직도 벗어나지 못한 덕밥의 늪...

"그리고 또 뭐를 해와야할까?"
"음... 잘 모르겠습니다.. 디자인말고는 이제 어느정도 배포를 해도 되지 않을까하는 생각이 있습니다."
"지금 만들고 있는 서비스 종류가 뭐야? 커뮤니티지? 그런데 아직도 쇼핑몰 같은 느낌이 강해. 상품이라는 단어들도 많이 보이고... 메인 화면에 좋아요 수나 댓글 수를 볼 수 있도록 추가해봐!"
"넵! 저는 아직도 덕밥의 늪에서 벗어나지 못했네요...ㅋㅋㅋㅋㅋㅋ"
"추가로 아까 이야기꺼냈던 ELK 스택에 대해서도 알아와 봐"

이렇게 이번 주 멘토링도 끝이 났습니다. 이날 멘토링이 끝난 후 멘토님이 페이스북에 글을 하나 남겨주셨는데요.
처음으로 제대로 인정 받은 것 같아 정말 기분이 좋았습니다. 자랑삼아 살며시 올려봅니다..ㅎㅎ

긴 글 읽어주셔서 감사합니다! 다음 글에서는 피드백과 새로운 과제 그리고 배포과정에 대해 올려볼까합니다!
감사합니다!

(해당 시리즈는 네이버 블로그에 있던 저의 글을 velog로 옮긴 것임을 밝힙니다.)

profile
Run, as you always do

0개의 댓글