[Toy project] 개발자 공부 3주만에 인스타를 클론하라구?

이승연·2020년 12월 13일
0
post-thumbnail

두근두근, 몰려오는 긴장감

Wecode에서 개발공부를 시작했다. 1주차에는 html/css, 2주차에는 Python, 3주차에는 Django를 배우며 숨가쁘게 달려왔다. 이 과정 중 내가 가장 중요하게 생각한 부분은 마음관리. 잘 먹고, 잘 자고, 잘 쉬고, 공부하는 시간에는 그야말로 몰두하자!라는 간단한 원칙 하에 3주를 마무리했다. 각 주차에 내가 중점적으로 했던 생각들을 정리해보겠다.

1주차:

  • 내가 너무나도 어려워하고 재미없어하는 html/css! 하지만 크롤링을 하기 위해서 필수적으로 이해해야하는 관문이라는 것을 알고 있기에 기본을 착실히 다지자라는 마음을 가지고 공부해나갔다.
  • 2020년 동안 집에서 즐겁게 혼자 놀다가 갑자기 새로운 환경에 40+명의 사람들과 하루에 12시간 이상을 함께 해야하는 상황이었기 때문에 공부보다는 스트레스 관리에 중점을 두었다. 예를 들면 많이 자고 많이 먹는 것! 1주차 토요일에는 무려 오후 6시까지 늦잠을 잤다. 놀라운 나의 뇌.

2주차:

  • 내가 세상에서 제일 좋아하는 파이썬 공부를 시작한 주! 파이썬 공부를 할 때만큼은 너무나도 기분이 좋고 행복하다.
  • 다만, 개발자 공부와는 별개로 마무리해야하는 프로젝트가 하나 있었는데 이때 나는 멀티 태스킹과는 거리가 멀다는 사실을 느꼈다. 프로젝트를 얼른 집중해서 끝내고 개발공부를 하고 싶은데 프로젝트도 완벽하게 하고 싶으니 오히려 능률이 바닥을 치더라.
  • 2주차부터는 파이썬 뿐 아니라 Git&Github, Http, 웹이 작동하는 방법, 데이터베이스 모델링, 그리고 Django에 대해 배웠다. 이것이야말로 내가 알고 싶어했던 모든 지식이었고, 최대한 우리의 눈높이에 맞춰 열심히 설명해주시는 멘토님들을 보며 경외심을 느꼈다. 감사합니다!
  • 컴퓨터와 인터넷은 인간이 만든 것이기 때문에 굉장히 잘 정립된 논리에 의해 움직인다. 이 말은 내가 그 논리를 잘 이해하고만 있다면 어떤 문제던 (이론적으로) 풀 수 있다는 뜻이다. 인생에는 이해하기 어려운 문제들이 자꾸 등장한다. 개중 하나 쯤은 잘 정립된 논리로 무장한다면 무조건 풀 수 있다는 것은 나에겐 하나의 쉼표다. 이렇듯 개념적으로만 이해하고 있던 컴퓨터와 인터넷, 그리고 '개발'이라는 것을 하나하나 배워나가니 그들에 대한 사랑이 커져만 가더라. 그때 감정에 사무쳐서 적은 글을 여기에 복붙하겠다.

    "우리가 행하는 모든 행동들은 거의 암묵적인 지식과 생물학적 본능으로 인해 일어난다. 나의 한 걸음 한 걸음은 사실 넘어짐을 본능적으로 통제함에 지나지 않는다는 것은 사실 엄청나게 신기한 일이다. 그런데 인간만이 가진 상상력과 욕심, 그리고 엄청난 효율성을 추구하는 속성이 산업혁명과 정보혁명을 불러일으키고 우리는 그렇게 팽팽 돌아가는 사회에 던져지게 되었다.
    프로그래밍과 알고리즘은 인간의 사고과정을 글로 옮겨놓은 것이다. 우리가 아무 생각없이 행하는 행동(e.g. verbal communication)을 정말이지 요소요소로 분해하여 우리보다 지능은 조금 떨어지지만 말도 잘듣고, 쉬지도 않고, 속도만큼은 기가 막힌 분신을 만들어낸 것이다.
    예를 들어보자. 내가 엄마한테 '밥 해주실 수 있어요?'하면 '응'이라는 답변과 함께 밥을 만들어주신다. 인간의 세계에서는 의사소통과 그에 상응하는 행동이 당연하게도 동시에 이루어지는 것이다. 이것을 컴퓨터보고 하라고 하면 어떻게 되냐? 엄마와 내가 나눈 이야기를 해석하는 애 하나, 해석된 이야기를 전달해주는 애 하나, 밥 만들어주는 애 하나, 밥 가져다주는 애 하나를 굳이 굳이 만들어서 다 연결시킨다.
    그러니까, 상상력이 하늘을 찌르고 일 얼른 끝내고 집 가고 싶던 어떤 사람이 우리가 행하는 모든 행동을 요소 하나하나로 분해하고 연결해서 엄청 빨리 실행시키면 내가 하기 싫은 거 해주지 않을까?라는 생각하고 뭔갈 만들어낸거다. 세상 만사가 귀찮은 인간들이 이렇게 우리의 생물학적 신호와 본능과 사고과정을 하나하나 나눠서 우리의 행동을 그대로 구현해나가고 있다는 점이 너무 웃기고 귀엽고 재밌다. 내가 하는 일이 인간 본성의 결정체같아서 좋기도 하다."

3주차:

  • 자... 말로만 듣던 Django를 본격적으로 공부하고 실습한 주. 멘토님이 처음 세션을 진행해주셨을 때 설명을 너무 잘해주셔서 난 내가 완벽하게 이해한 줄 알았다. 당연히 아니다..! 실습을 진행하며 Django 프로젝트를 세번 정도 지웠다가 다시 생성하고 데이터베이스는 거의 20번 정도는 drop했다. 다행인 것은 이렇게나 많이 코드를 쳐서인지 이제는 장고 프로젝트 만들어! 하면 넵! 하고 만들 수 있다.
  • 데이터베이스에서 데이터를 삭제하면 그 행이 삭제되는 것이 아니라 그 행에 적힌 데이터만 삭제되며 새로 추가되는 데이터는 그 아래로 추가된다. 나는 처음에 이러면 안되는 줄 알고 데이터베이스만 20번을 삭제했다. 그런데 안그래도 된다. 이 말을 들었을 때 뭔가 시원했다. 왜냐면.. 이제 데이터베이스 drop 안해도 되니까... 1, 2, 3, 4.. 가지런히 정렬된 데이터베이스를 보며 예쁘다고 생각했는데 2, 3, 7, 8, 12, 56...으로 무분별하게 나열된 데이터베이스를 보니 내가 뭔가 나쁜 짓을 하고 있는 것 같았다.. 근데 나쁜 짓이 아니라니... 무법자가 된 기분이다...
  • view를 작성하며 2주차에 배운 http 통신을 함께 이해하려고 해보았다. 프론트에서 야 뭐 좀 가져와봐 (get)라고 하면 백은 알았어 기다려봐하고 데이터를 읽어온다(read). 프론트에서 야 여기 정보 올려놓을게 가져가!(post)하면 백은 알았어 내가 정보 집어넣을 공간 만들게(create)한다. 내가 맞게 이해한 건지는 모르겠지만 역시 사람들이 만든 프로그램이다 보니 사람들이 알아듣게 이름을 만들었나 싶었다.
  • Django를 처음 접하며 자기 전에도 넷플릭스를 보던 내가 유튜브에 Django를 쳐서 실습 영상을 보고 official documentation을 읽게 되었다. 배움에 열정이 생기고 더 하고 싶어지는 이 마음이 너무 소중하고 기쁘다.

Westagram 착수

Wecode에서는 백엔드 개발자가 되기 위한 공부를 시작한지 3주만에 인스타그램을 클론해보는 토이 프로젝트에 착수한다. 구글 캘린더에 나와 있는 'Westagram project kickoff'라는 일정을 볼 때마다 가슴이 조여왔다. 뭔가 거대하고 알 수 없는 괴물이 날 기다리고 있는 기분.

  • 초기세팅과 모델링은 비교적 무난하게 넘어갔다. 문제는 Views.
  • 어느 정도는 맨땅에 헤딩임을 예상하고 있었지만 이 정도일 줄은 몰랐다. 마지막까지 질문은 아끼는 내 이상한 성격의 문제일 수도 있지만 혼자 진통하며 위스타그램 회원가입과 로그인을 위한 views를 써내려갔다.
  • 내가 한 결정적 실수는 get함수를 써서 로그인을 구현한 것이다. 로그인은 정보를 가져오는 것이니까 당연히 get함수를 쓰겠거니 했는데 get함수에는 정보를 전달하는 body가 없으므로 post함수를 쓰는 것이 맞다. Get은 단순히 어떤 버튼을 클릭하는 정적인(?) 행동을 구현할 때 쓰는 것이라 하였다...
  • 폭풍과도 같이 위스타그램을 구현하고 나니 프로젝트는 괴물보다는 NPC에 가깝다는 느낌이 든다. 거기에 존재하고 날 도와주기 위해 있는 것이지 내가 두려워할 대상이 아니라는 것.

다음 프로젝트는...?!

  • 위스타그램 다음은 우리가 하고 싶은 사이트 중 멘토님들께서 적합하다고 생각하는 사이트별로 팀을 꾸려 클로닝하는 프로젝트다. 나는 귀엽고 간단(과연?!)해보이는 카카오프렌즈를 추천했고 운 좋게도 해당 사이트 프로젝트팀의 PM으로 합류하게 되었다!
  • 내가 일하는 성향 자체가 혼자 고민하고 씨름하는 걸 즐기는 편이다. 그 이유는 사실 듣기 능력이 충출치 않기 때문이다. 듣는 것보단 읽어서 이해하는 것이 에너지 효율 측면에서 더 좋은 성향이다. 팀으로 구성된 환경에서 나의 이런 성향이 어떻게 발현될까? 최선을 다해보자.
  • to be continued...

0개의 댓글