토이 프로젝트 fomo - 1

개발(공부) 자국·2023년 9월 2일
0

FOMO: Fearing Of Missing Out

이 토이 프로젝트는 내가 보는 기사들이 정말 중요한 뉴스인걸까를 생각하게 되면서 시작되었다.

하루에도 새로운 수 많은 기사들이 생겨나지만 그 모든 기사를 볼 수 없어 선택하여 보게된다.
자신의 관심사를 제외하면 남들이 가장 많이 관심있어하는 것이 무엇이었지 본다.
어제 많은 사람들이 관심있어했던, 조회수가 많았던 지난 날짜의 뉴스들을 보여주는 토이 프로젝트다.
많은 사람들이 알지만 나는 모르는 것이 있어 불편한 부분을 조금 해소할 수 있을거라고 생각하며 구성하였다.


Python

크롤링이 무엇인지 스크래핑은 무엇인지 어렴풋이 들었던 부분들을 찾아보니
간단한 페이지 스크래핑 구성으로도 일부분 원하는 기능을 구현할 수 있겠다고 생각했다.
크롤링은 Python으로 구현하는 레퍼런스가 많았고 이번 기회에 Python을 공부하기로 했다.
공부했었던 JavaScript와 Python는 어떤 부분이 비슷한지 다른지 경험해보면서 익숙해지려고 하였다.


Type Hint

Python도 JavaScript와 같이 동적인 언어로 변수에 다른 타입의 자료형을 재할당 할 수 있었다.
편리함도 있지만 구성이 복잡해질때는 문제가 발생할 부분이 많아 체크할 부분이 많아진다.
그런 부분으로 TypeScript를 사용하는 사람들이 많아진 것도 문제를 사전에 방지하기 위한 방법이다.
이 부분을 Python에서는 type hint 를 사용하여 명시적으로 타입을 기입하는 방법을 사용하고 있었다.

def say_hi(username: str) -> str:
	return f"hi, {username}"

print(say_hi("kim")) # hi, kim

스타일은 위의 코드와 같이 사용한다.
함수의 매개변수의 타입을 string으로 그리고 리턴하는 타입도 string으로 명시되어 있다.
강제하여 에러를 일으키지는 않지만 IDE에 따라서는
명시해둔 type hint 를 참고하고 타입의 관계가 맞지 않으면 경고를 보내기도 한다.


Flake8

Python을 사용하며 처음에 익숙하지 않았던 부분이 들여쓰기의 차이였다.
JavaScript는 두 칸을 주로 사용했었는데 Python은 네 칸을 주로 사용하고 있었다.
잘 작성했다고 생각했는데 에러를 살펴보면 tab과 space를 혼용하여 문제가 생기는 경우가 많았다.
그렇게 CodeConvention에 대해서 찾아보다가 Flake8을 알게되었다.

Flake8은 코드 스타일 가이드다.
개발자마다 다른 다양한 코드 스타일로 개발하게 되면
다른 개발자의 코드를 파악하는데는 코드가 복잡하다면 많은 시간이 소요될 수 있다.
이런 이유로 정해진 규칙을 토대로 작성된 코드의 스타일을 가이드하여
협업시 코드 가독성을 높이는데 도움을 줄 수 있는 좋은 도구다.
많이 경험하지 못한 언어다보니 가이드로 익숙해지면 좋겠다고 생각하여 사용하고 있다.


앞으로 개발하면서 느꼈던 부분을 다시 발자국으로 남기려고 한다.

실수를 안하는 것이 좋겠지만 실수하는 것이 두려워서
시도도 안하게 되는 더 안좋은 경험을 하지 않도록 더 노력할 것이다.

profile
기록을 중요하게 생각하는 사람입니다. 학습한 내용을 정리한 것이라 잘못된 정보가 있을 수 있습니다. 잘못된 정보는 언제든 말씀해 주시기 바랍니다.

0개의 댓글