본문 바로가기

Back-end109

3. SOLID 원칙 1. 좋은 객체지향 프로그램을 만드는 방법 - 이전 포스팅에서 좋은 객체지향이란 다형성을 잘 유지하며 개발하는 것이라고 했다. - 단순하게 역할과 구현을 분리하면 되는것 아닌가? 생각할 수 있다. - 그러나 프로그램의 사이즈가 커질수록, 코드가 서로 얽히면서 객체지향을 유지하기 어려워진다. - 이처럼, 큰 규모의 프로그램에서도 좋은 객체지향 프로그래밍을 할 수 있도록 제시된 규칙이 있다. 2. SOLID 원칙 a) 개요 - 클린 코드의 저자인 Robert Martin이 정리한 좋은 객체지향 프로그래밍의 5가지 원칙 - SOLID는 다섯가지 원칙의 앞글자를 따서 만들어진 이름이다.(SRP, OCP, LSP, ISP, DIP) b) SRP(Single Responsibility Principle, 단일 책임.. 2022. 1. 26.
2. 다형성(Polymorphism)과 객체지향 프로그래밍(OOP) 0. 결론 - Spring과 객체지향 프로그래밍의 핵심은 다형성에 있다. - 다형성을 객체지향 프로그래밍의 특성 중 하나라고 말하지만, 다형성으로 인해 객체지향 프로그래밍의 개념이 완성된다. - 그렇다면 다형성이 무엇인지, 왜 객체지향의 핵심인지 알아보자. 1. 객체지향 프로그래밍(OOP)이란? - 객체지향 프로그래밍이란, → 독립적인 단위(객체)가 협력하여 데이터를 처리하는 프로그램 구조를 갖는 것 → 독립적인 단위(객체) 간의 관계가 유연하여 부품을 교체하듯, 프로그램의 구조변경이 쉬운 것 - 즉, 자동차를 만드는 것처럼 프로그램(App)을 만드는 것이다. - 자동차는 수많은 부품의 조합으로 이루어진 결과물이다. - 이처럼 코드를 역할에 따라 분리하고, 하나의 부품으로써 조합하여 App이라는 결과물로.. 2022. 1. 24.
1. Maven과 Gradle이란? 1. Spring 프로젝트 만들기 - 이전에는 하나부터 열까지 Spring 환경을 직접 설정했다. - 하지만, 환경설정이 자동화되어 있는 Spring Boot를 사용하면서 프로젝트 또한 자동화를 거쳐 생성한다. - 그 방법이 아래의 사이트를 사용하여 Spring 프로젝트를 만드는 것이다. https://start.spring.io/ a) Maven & Gradle - 프로젝트 생성을 시작하면, 맨 처음에 Maven과 Gradle을 선택하게 된다. 이들은 무엇일까? - Maven과 Gradle 모두 자바 프로젝트에서 사용되는 빌드 자동화 및 관리 시스템이다. a-1) Maven의 특징 - Maven은 XML을 기반으로 한 빌드 자동화 시스템이다. - Maven은 사용하는 라이브러리와 해당 라이브러리와 연관.. 2022. 1. 23.
Flask로 웹스크래퍼 만들기 - 전체 코드 * 복붙 하시고 코드정리 하시길 바랍니다. 1. scrapper.py import requests from bs4 import BeautifulSoup LIMIT = 50 def get_last_pages(url): result = requests.get(url) soup = BeautifulSoup(result.text, "html.parser") pagination = soup.find("div", {"class": "pagination"}) links = pagination.find_all('a') pages = [] for link in links[:-1]: pages.append(int(link.string)) max_page = pages[-1] return max_page def extrac.. 2020. 8. 12.
Flask로 웹스크래퍼 만들기 - 4 1. 검색결과를 CSV파일로 다운받는 기능 (1) CSV파일로 다운받을 수 있도록 export 함수를 만들어줍니다. 아래 사진을 참고해주세요. (2) 다운로드를 받을 수 있는 링크 또는 버튼을 report.html에 만들어줍니다. (3) 이제 CSV로 export하는 기능을 만듭니다. 이전 포스팅에 보면 save.py라는 이름으로 이미 만들어놓은 코드가 있습니다. 그걸 다시 사용해보겠습니다. - 저는 exporter.py라는 파일을 만들어 기존의 save.py에 있던 코드들을 복사하였습니다. 여기서 중요한 부분은 save_to_file함수를 사용하기 위해서는 jobs라는 매개변수가 필요하다는 것입니다. main으로 가서 작업해봅시다. (4) 사용할 새로운 함수를 import를 해주고, export함수에서.. 2020. 8. 10.
Flask로 웹스크래퍼 만들기 - 3 1. 통합구현 - 저번 포스팅에서 word로 검색단어를 받아오는 법을 알았으니 이 기능과 이전에 만들어 놓은 스크래퍼를 연결하겠습니다. (1)먼저 스크래퍼 코드를 복사해서 파일을 따로 만들어줍니다. 저는 indeed.py 코드만 사용했습니다. - 위의 사진처럼 scrapper파일을 생성해서 indeed 파일의 코드를 복붙했습니다. (2) report함수에서 받아온 word변수의 값을 scrapper에서 import해온 get_jobs()함수의 매개변수로 사용합니다. - 여기서, 다른 함수도 많은데 왜 하필 get_jobs()함수와 word변수를 연결하는걸까요? - 그 이유는, report페이지가 검색결과를 출력하는 부분이기 때문입니다. 검색단어를 받아오면서 동시에 검색결과를 출력해야 하는 역할을 repo.. 2020. 8. 9.
Flask로 웹스크래퍼 만들기 - 2 1. Query Argument - 구글에 들어가서 어떤 것을 검색하면 페이지가 나오고 알 수 없는 의미의 URL이 나옵니다. 예를 들어, something을 구글에서 검색하면 아래와 같은 URL을 얻게 되죠. - 이 URL을 분석해보면 /search 라는 경로에 들어갔고 제가 검색한 단어(q=something), 제가 크롬을 사용한다는 것을 알 수 있습니다(aqs=chrome). 이 이외의 다른 부분의 의미는 모르지만 이와 같이 제가 검색한 단어가 URL에 표시된 것을 볼 수 있습니다. 이런 것을 Query Argument라고 합니다. 저의 검색어가 매개변수로써 URL에 작동하는 것이죠. 그렇다면 간단하게 만들어 보겠습니다. - form을 사용해서 /report라는 경로를 설정하고 get방식을 이용하였.. 2020. 8. 9.
Flask로 웹스크래퍼 만들기 - 1 - 이번 포스팅에서는 앞서 만든 웹스크래퍼를 Flask를 이용하여 웹으로 구현하는 방법을 포스팅합니다. 1. Flask란 무엇인가? - Flask는 파이썬을 이용해 웹사이트를 만들 수 있게 도와주는 micro-framework입니다. 기존의 Java의 Spring이나 Python의 Django와는 다르게 환경설정에 특별히 set-up해줄게 없어서 사용하기 편한 Framework입니다. 2. Flask 다운받기 및 설치 - 저는 repl.it이라는 사이트에서 파이썬을 이용하고 있기 때문에 설치하는데에 어려움이 없습니다. 혹시 로컬로 작업하시는 분들은 먼저 Flask 사용을 위해 환경구축을 해주세요. 3. 시작하기 (1) Flask 설치를 마치고 import해준 다음에 Flask의 이름을 설정합니다. app.. 2020. 8. 9.
파이썬으로 웹스크래퍼 만들기 - 6 1. CSV 파일 만들기 - 구직사이트에서 받아온 데이터를 CSV(엑셀)파일의 형식으로 만들어보겠습니다. - indeed에서 받아온 자료부터 만들어보겠습니다. (1) save.py - open이라는 함수는 파일을 읽거나 해당 파일이 존재하지 않을 시 생성하는 함수입니다. 이 함수를 이용해 파일을 생성합니다. - 코드작성의 편의를 위해 잠시동안 스크래퍼 기능들을 주석처리합니다. save.py에 함수를 만들어준 뒤 main에서 실행을 하게 되면 job.csv라는 파일을 생성합니다. (2) 행(column) 만들기 - indeed에서 받아온 정보는 title, company, location, link 이렇게 4가지 입니다. 이 4가지 종류의 데이터가 엑셀파일에서 행(column)의 역할을 하게 됩니다. 아래.. 2020. 8. 6.