전체 글
CodeDeploy - CodePipeline 만드는 도중 실패 및 설명
1. 실패 이유 스프링부트 프로젝트 최상단에 appspec.yml 파일을 만들지 않아서 Deploy가 실패했다.appspec.yml은 CodeDeploy에서 배포 관리하는데 사용하는 파일이다.이 파일에 정의된 일련의 수명 주기(lifecycle) 이벤트 후크로 각 배포를 관리하는데 사용된다.AWS 공식문서 - CodeDeploy 애플리케이션 사양 (AppSpec) 파일 을 참고하면 좋다. 2. appspec.yml 생성위 규칙대로 정의를 하면 되고, 나는 크게 정의할 필요가 없기에 간단하게 적어본다. 이렇게 생성 후 Github에 추가하면 자동으로 우리가 만들었던 CodePipeline이 작동한다.그럼 Source -> Build -> Deploy 가 자동으로 실행하게 된다. 3. 성공나는 codepip..
CodeBuild - CodePipeline 만드는 도중 build 실패
1. 실패 이유 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: ./gradlew bootJar. Reason: exit status 1 예전 깃액션(Github Actions)를 사용했을 때와 비슷한 에러여서 금방 찾기도 했고, 메시지에도 적혀져 있어서 바로 해결했다.아무래도 빌드 사양에서 런타임 버전이 선택되지 않아서 기본값(default) 버전으로 java compile을 시도했지만 버전이 달라 실패했다.현재 빌드하려는 스프링부트 프로젝트는 JDK 21 버전을 사용하고 있는데, AWS에서는 기본값으로 다른 버전을 사용하나 보다.그래서 `./graldew bootJar` 가 성공적으로 종..
장고 활용한 API 서버 만들기(2)
뷰와 템플릿 SQL order by desc 및 limit 구현 예시 Question.objects.order_by('-pub_date')[:5] order_by 컬럼명 앞 "-"이 있으면 내림차순(desc), 없으면 오름차순(asc) model에 있는 내용 화면(view)에 출력하는 과정 templates/polls/index.html 생성 views.py 에서 context 변수에 dict 형태로 선언 context = {'first_question' : latest_question_list[0] } 'first_question' 이라는 키와 latest_question_list[0] 이라는 값을 index.html에 전달할 변수 index.html에 전달하고자 view.py 에 from django..
장고 활용한 API 서버 만들기
Django Project 생성하기 $ django-admin startproject 프로젝트이름 Manage.py Django 프로젝트를 터미널에서 관리할 수 있도록 명령어를 제공하는 기능의 파일 Django 서버 실행 명령어 $ python manage.py runserver Django App 생성하기 $ python manage.py startapp polls 특정한 기능을 수행하는 웹 어플리케이션으로 App들이 모여 하나의 Project가 됨 App은 하나의 웹 사이트만 종속되는 것이 아닌, 여러 사이트에서 그 기능을 할 수 있음 `urls.py` 에서 앱 경로를 지정할 수 있음 모델 장고의 모델은 RDB에서 엔티티(테이블)라고 보면 됨 모델을 통해 데이터를 편하게 관리 가능 별도의 SQL 쿼리..
Seaborn 시각화 라이브러리, 기상청 날씨 정보 시각화, 해시코드 질문태그 빈도 시각화, 단어구름 시각화
Seaborn 시각화 라이브러리 Python의 데이터 시각화 라이브러리 이를 활용하여 그래프 시각화 %pip install seaborn 으로 설치 Seaborn Essentials # 시각화에 필요한 라이브러리를 불러와봅시다. import seaborn as sns 꺾은선 그래프 (Line Plot) 두 변수의 값에 따른 추이를 선으로 이은 그래프 `.lienplot()` 를 이용해서 그릴 수 있음 # Scatterplot을 직접 그려봅시다 sns.lineplot(x=[1, 3, 2, 4], y=[0.7,0.2,0.1,0.05]) 막대 그래프 (Bar Plot) 범주형 데이터의 값과 그 값의 크기를 직사각형으로 나타낸 그림 `.bar()` 를 이용해서 그릴 수 있음 # Barplot을 직접 그려봅시다 ..
Selenium, WebDriver, Implicit / Explicit Wait, Mouse Event, Keyboard Event
Selenium 라이브러리 Python을 이용해서 웹 브라우저를 조작할 수 있는 자동화 프레임워크 %pip install selenium 으로 설치 % 를 이용해서 노트북(.ipynb) 환경에서 터미널 코드 실행 가능 Web Driver 웹 브라우저를 제어할 수 있는 자동화 프레임워크 %pip install webdriver-manager 으로 설치 Chrome (크롬) 브라우저를 사용하기에 크롬 설치 필수 # selenium 으로부터 webdriver 모듈 불러오기 from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriver..
Python - Web Scraping 기초 (BeautifulSoup4 라이브러리)
BeautifulSoup4 라이브러리 HTML 코드를 분석해주는 HTML Parser 사용 가능 # pip를 사용해 라이브러리 설치 %pip install bs4 # 사이트에 요청한 후 응답 받기 import requests res = requests.get("http://www.example.com") # BeautifulSoup4 - bs4 불러오기 from bs4 import BeautifulSoup # BeautifulSoup 객체 생성하기. # 첫번째 인자는 response의 body를 텍스트 # 두번째 인자는 "html"로 분석한다는 것을 명시 soup = BeautifulSoup(res.text, "html.parser") # 객체 soup의 .prettify()를 활용하여 분석된 HTML을..
네트워크, HTTP, Web Scraping, robots.txt, DOM
네트워크 네트워크란 컴퓨터끼리 연결해서 데이터를 교환하는 시스템 네트워크를 묶어 근거리 지역 네트워크(Local Area Network, LAN) 탄생 범지구적으로 연결된 네트워크인 Inter Network - 인터넷(Internet) 탄생 인터넷 : 여러 컴퓨터끼리 네트워크를 연결한 것 인터넷에서 정보를 교환할 수 있는 환경 WWW(World Wide Web, Web) 탄생 Web 상에서 정보를 주고받는 방법? 클라이언트(브라우저)와 서버가 HTTP를 통해 서로 통신을 함 클라이언트(Client) : 정보를 요청하는 곳 서버(Server) : 정보를 제공하는 곳 HTTP는 웹에서 클라이언트와 서버 사이에 필요한 정보는 헤더로 주고받고, HTML 또는 Image 같은 실제 데이터는 페이로드 부분에 받을 ..