본문 바로가기

PROGRAMMING

[혼공학습단] 혼자 공부하는 파이썬 학습단 6주차 미션

BGM - 올드 랭 싸인(님 춘추가...?)

 

작년에 신청할 때만 해도 '와, 6주라니 당아 멀었네ㅋ'라고 생각했던 마지막 주가 와버렸다... 그동안 나는 웹 개발 공부를 했고, 파이썬 공부도 했고, 새 학기도 시작했고, 그와 더불어 새해 첫날부터 근력운동 빠샤빠샤 하다가 몸살 나서 수액을 맞았고, 백신 3차도 맞았고, 손가락 관절염도 얻었다. 와 나 아직 코딩 그만하려면 20년은 더 남았는데 손가락 운명 직전 살려좍

 


 

아무튼 대망의 6주 차... 기본 미션이 좀 어렵더군... 훗...

 

Flask와 BeautifulSoup를 이용한 스크레이핑하기...

스크레이핑이라 하면... 제가 Tokyo에 있을 때 UiPath로 주로 했었는데요... 연습 삼아 만든 건 <해외 모 사이트에 우리나라 기자들이 올리는 우리나라의 안 좋은 기사 제목 체크> 이런 거... 는 좀 접어두고

 

기본 미션에서 해야 할 것은 기상청 사이트에 있는 자료를 분석해서 그 자료에 있는 내용들을 새로운 웹페이지로 만들어서 보여주는 것이다.

 

그런데 2가지 난관이 있었다.

 

404 끔.찍.해.

처음에는 페이지에 접속이 잘 되지 않았다.

Ctrl + C로 종료 후 Flask run 명령어를 다시 실행하니까 200이 뜨긴 했다.

 

 

그런데 그다음에는 200이 돌아오긴 했는데 화면에 아무것도 나오지 않았다. 뭐 때문인가. 해서 코드의 return 문에 output 대신 "<h1> adf </h1>"로 바꿨더니 화면에 adf라는 문자가 너무 잘 출력되었다.

 

그래서 마지막으로 살펴본 게 소스 코드 안의 하드 코딩하는 문자열들이었는데, mid를 med로 써놓은 곳이 있어서 거기를 고치니까 결과가 잘 나왔다.

 

잘 나오는군.

 


그리고 추가 미션은 종이든 패드든 손글씨로 쓰고 싶었는데 손꼬락이 너무 아픈 관계로 손꼬락 7개만 이용하여 작성하겠다.

 

객체란 세상에 존재하는 구체적인 물체나 추상적인 개념에 대해서 속성과 동작을 일반화시켜 놓은 것을 말한다. 예를 들어 '사람'이라는 객체가 있다고 하면 그 객체의 속성은 '이름', '나이', '국적' 등이 있을 것이고, 동작으로는 '걷는다', '먹는다' 등이 있을 것이다. 

 

클래스는 위에서 일반화한 객체를 프로그래밍 언어로 옮겨놓은 설계서, 또는 틀이라고 할 수 있다. 객체가 가지고 있는 일반적인(공통되는) 특성을 클래스에 필드나 메서드로 표현할 수 있다. 객체 '사람'은 클래스 '사람'으로 표현될 수 있고, 그 안에는 '이름', '나이', '국적' 등과 같은 필드(변수)와 '걷는다', '먹는다'와 같은 메서드가 존재할 수 있다.

 

인스턴스는 어떤 클래스에서 생성된 객체를 의미한다. A라는 클래스에서 생성된 인스턴스들은 A클래스의 속성과 행동을 모두 가지고 있으나 그 인스턴스가 가지고 있는 속성의 '값(알맹이)'과 행동의 과정들은 모두 다를 수 있다. 예를 들면 클래스 '사람'의 인스턴스인 영철이와 에이미가 있을 때, 인스턴스 영철이의 이름 속성은 '영철'이고, 에이미의 이름 속성은 '에이미'인 것과 같다. 또한, 영철이는 밥을 숟가락으로 먹고, 에이미는 빵을 포크로 먹는다, 처럼 각 인스턴스의 행동들은 큰 틀에서는 같지만 인스턴스마다 다른 성질을 가질 수도 있다.

 

생성자는 인스턴스를 초기화할 때 사용하는 함수로, 클래스 이름과 같은 이름을 가진 함수이다. 파이썬에서는 클래스 내부에 __init__이라는 함수를 선언하여 클래스의 인스턴스가 선언되었을 때 객체의 알맹이들을 초기화하고 싶은 코드를 __init__함수 안에 정의하면 된다. Java에서는 객체가 더 이상 필요 없어지면 JVM의 Garbage Collector들이 객체가 차지하고 있던 메모리 영역을 청소해 주지만, 파이썬에서는 소멸자를 정의하고 호출할 수도 있는데, __del__함수가 그것이다.

 

마지막으로 메서드는 '클래스가 가지고 있는 함수'이다. Java에서 클래스를 정의할 때 만드는 Getter, Setter나 toString 같은 클래스 내부의 함수들을 일컬어 파이썬에서는 메소드라고 칭하는 것 같다. 

 


여기까지 해서 나의 6주(+연휴 1주) 간의 파이썬 대모험이 끝났다... 아쉽네... 족짱님과 그 외 혼공족들과 한빛미디어님께 이 영광을 바칩니다... 크흑... 보람찬 나날이었다. 다음 주에는 공부할게 많다... 디졌네... 홧팅...

 

일어나 8기해야지...

8기도 해야지...