목록
'홈' 731건
-
JSP welcome 파일 지정하기지금까지 JSP나 서블릿을 일일이 브라우저에서 요청하여 화면을 표시했습니다. 그런데 웹 애플리케이션 첫 화면에 해당하는 홈페이지를 다음과 같이 web.xml에 등록해 두면 브라우저에서는 컨텍스트 이름만으로 요청하여 간단하게 표시할 수 있습니다.web.xml jsp 또는 html 파일 이름1 jsp 또는 html 파일 이름2 ... 홈페이지로 사용되는 welcome 페이지는 JSP나 HTML 파일이 될 수도 있고 여러 개를 등록해서 사용할 수도 있겠죠. 그러면 요청 시 첫 번째로 지정한 welcome 파일로 차례로 찾아 홈페이지로 보여줍니다. 직접 web.xml에 설정해서 요청해 보겠습니다.1. 다음과 같이 test02 폴더 하위에 main.jsp 파일과 web.xml 파일을 준비합니다. 2. web.x..
-
제목, 레이블, 범례 추가하기seaborn 패키지를 사용하여 전체적인 디자인 스타일을 지정하고, 폰트를 설정해 보겠습니다. 또한 차트 제목과 분류별 누적 금액을 출력하여 한눈에 다양한 정보를 파악할 수 있도록 만들어 봅시다.새로운 파일을 생성하고 파일명을 'step_4_3.py'로 변경하세요. 다음과 같이 코드를 입력하고, 대화형 창에서 실행하면 자세한 정보가 표시된 파이 차트를 볼 수 있습니다.from pathlib import Pathimport matplotlib.pyplot as pltimport seaborn as snsfrom step_1 import OUT_DIR # 이전에 작성한 모듈을 불러옵니다.from step_4_2 import load_datadef custom_autopct(pct, total): rea..
-
API 서버 이해하기API는 Application Programming Interface의 두문자어로, 다른 애플리케이션에서 현재 프로그램의 기능을 사용할 수 있게 허용하는 접점을 의미합니다. 웹 API는 다른 웹 서비스의 기능을 사용하거나 자원을 가져올 수 있는 창구입니다. 흔히 API를 '열었다'는 '만들었다'고 표현하는데, 이는 다른 프로그램에서 현재 기능을 사용할 수 있게 허용했음을 뜻합니다. 다른 사람에게 정보를 제공하고 싶은 부분만 API를 열어넣고, 제공하고 싶지 않는 부분은 API를 만들지 않는 것입니다. 또한, API를 열어놓았다 하더라도 모든 사람이 정보를 가져갈 수 있는 아니라 인증된 사람만 일정 횟수 내에서 가져가게 제한을 둘 수 있습니다. 위와 같은 서버에 API를 울려서 URL을 통해 접근할 수..
-
에러 코드에 따른 예외 페이지 지정다음은 web.xml에서 xml로 각각의 에러 코드에 대한 예외 처리 페이지를 지정하는 방법입니다. 오류코드 오류 페이지 위치 실제로 web.xml에 오류 페이지를 지정하여 실습해 보겠습니다.1. WebContent 하위에 오류 페이지들이 위치할 err 폴더를 만들고 error_404.jsp, err_500.jsp 파일을 준비합니다. 2. web.xml에 태그를 이용해 각각의 에러 코드에 대해 처리할 오류 페이지가 있는 경로를 지정합니다. 404 /error/error_404.jsp 500 /error/error_500.jsp 3. 404 오류를 처리하는 JSP 페이지인 error_404.jsp를 다음과 같이 작성합니다. 요청한 페이지는 존재하지 않습니다. 4. 500 오류..
-
분류별 누적금액 시각화하기시각화에는 다양한 유형이 있기 때문에 정보의 성격과 목적에 따라 정보 전달의 효과가 극대화되는 것을 잘 선택해야 합니다. 예를 들어 서로 다른 항목을 비교하거나 데이터의 추세를 부여주고 싶다면 바 차트(bar char)를, 분포나 상관관계를 보여 쥬고 싶다면 산점도(scatter plot)가 효과적입니다.전체 카드 지출 내역 중 분류별 누적 금액의 구성과 비율을 시각화하기 위해 데이터프레임을 파이 차트(pie chart)로 표현해 보겠습니다. matplotlib 패키지와 seeborn 패키지를 활용하여 파이 차트를 그려 봅니다. 데이터프레임 분할파이 차트는 너무 많은 항목을 시각화하기에는 적절하지 않으므로 차트에 표시할 데이터 개수를 적절히 조절하는 것이 중요합니다. 비주얼 스튜디오 코드에서 새로운 파일..
-
프로젝트 마무리하기이제 팔로잉 기능 과 해시태그 검색 기능만 추가하면 됩니다. 다른 사용자를 팔로우하는 기능을 만들기 위해 routes/user.js를 작성합니다.const express = require("express");const { isLoggedIn } = require("./middlewares");const User = require("../models/user");const router = express.Router();router.post("/:id/follow", isLoggedIn, async (req, res, next) => { try { const user = await User.findOne({ where: { id: req.user.id } }); if (user) { a..
-
JSP 페이지 예외 처리 실습1. 실습을 위해 WebContent를 아래 test02 폴더를 만들고 add.html, add.jsp, addException.jsp 파일들을 준비합니다. 2. add.html을 다음과 같이 작성합니다. 입력창에서 숫자를 입력 받아 action에 지정한 add.jsp로 전송합니다. 자연수를 입력하세요. 1부터 3. add.jsp를 다음과 같이 작성합니다. 페이지 디렉티브 태그의 errorPage 속성에 예외 처리 페이지인 addException.jsp를 지정하여 오류가 발생하면 예외 처리를 합니다. 합계 구하기 1부터 까지의 합은 입니다 4. 또 다른 JSP 페이지인 addException.jsp를 다음과 같이 작성합니다. 페이지 디렉티브 태그의 isErrorPage 속성을 true로 설정해..
-
분류별 누적 지출 합계 구하기이제 데이터프레임의 인덱스를 열로 전환하고, 분류별 누적 지출 금액을 확인할 수 있는 액셀 파일로 저장해 봅시다. 데이터프레임의 인덱스를 일반 열로 전환하면 특정 열을 기준으로 데이터를 정렬하거나 그룹화할 때 용이하기 때문입니다. 그 다음에는 코드를 재사용할 수 있도록 정리해 저장하겠습니다. 데이터프레임 인덱스 재설정이전 단계에서 만든 데이터프레임 df_sort에서 분류 열은 데이터프레임의 인덱스로 설정되어 있습니다. 일반 열로 변경해 봅시다.함수 reset_index()는 데이터프레임의 인덱스를 일반 열로 전환하고, 0부터 시작하는 정수를 인덱스로 재설정합니다.소스 코드 'step_3_1.py'에 이어서 다음 코드를 추가한 뒤, 대화형 창에서 실행하세요. [실행결과]를 보면 '분류'열이 일반 열로 이동..
-
multer 패키지로 이미지 업로드 구현하기SNS 서비스인 만큼 이미지 업로드도 중요합니다.패키지를 먼저 설치합니다.$ npm i multer 이미지를 어떻게 저장할 것인지는 서비스의 특성에 따라 달라집니다. Nodebird 서비스는 input 태그를 통해 이미지를 선택할 떄 바로 업로드를 진행하고, 업로드된 사진 주소를 다시 클라이언트에 알릴 것입니다. 게시글을 저장할 때는 데이터베이스에 직접 이미지 데이터를 넣는 대신 이미지 경로만 저장합니다. 이미지는 서브 디스크에 저장됩니다.그럼 post 라우터를 작성해보겠습니다.const express = require("express");const multer = require("multer");const path = require("path");const fs = require("fs");const ..
-
JSP 페이지 예외 처리 과정JSP 페이지를 실행하다 보면 종종 실행 중에 오류가 발생합니다.사용자 입장에서는 큰 문제가 발생한 것으로 인식하겠지요. 그러면 사이트에 대한 신뢰도 떨어질 수밖에 없습니다. 따라서 프로그램 실행 시 예외나 오류가 발생할 경우 이를 안내하는 페이지, 즉 전용 처리 페이지가 나타나게 하여 좀 더 신뢰 있고 사용자 친화적인 웹 페이지를 만들 수 있습니다. JSP 페이지에서 오류가 발생하면 예외 처리 페이지를 이용해 예외 처리를 할 수 있습니다.JSP 예외 처리 페이지는 어떻게 만들까요? 먼저 예외 처리 JSP를 만든 후 디렉티브 태그 속성 중 isErrorPage 속성을 true로 설정합니다. 그리고 일반 JSP 페이지의 디렉티브 태그 속성 중 errorPage 속성을 예외 처리 페이지 이름으로 지정합니다...
-
집계 기준 추가하기데이터프레임에 거래연월 집계 기준 추가∨ 함수 str.slice()를 사용한 데이터프레임 슬라이싱파이썬은 대괄호 [ ]와 인덱스를 사용해서 문자열을 슬라이싱할 수 있습니다.데이트프레임에서 대괄호는 말에 선택하는 연산자입니다. 데이터프레임에서 열 전체에 대해 문자열 슬라이싱을 적용하면 대괄호로 열을 선택한 뒤, 함수 str.slice()에 시작과 끝 인덱스를 전달하면 됩니다.df_raw["거래일시"].str.slice(0, 7) 데이터 쉽게 기준을 조금 더 세분화해 거래일시 열에서 연도와 월을 분리하고, 월별로 지출금액의 함계를 구할 수 있도록 만들어 봅시다. 함수 str.slice()를 사용하여 거래일시 열에서 연도와 월을 슬라이싱하고, 데이터프레임에 거래연월 열을 추가하면 됩니다. ch02/step3_..
-
카카오 로그인 구현하기 (2)아직 끝난 것이 아닙니다. kakaoStrategy.js에서 사용하는 clientID를 발급받아야 합니다. 카카오 로그인을 위해서는 카카오 개발자 계정과 카카오 로그인용 애플리케이션 등록이 필요합니다.https://developers.kakao.com에 접속하여 카카오 회원거입 또는 로그인을 합니다. 로그인 후 앱 메뉴에 앱 생성 버튼을 누릅니다. 다음 그림과 같이 카카오용 Norebird 앱을 만듭니다. 앱 아이콘은 등록하지 않아도 되고, 앱 이름과 회사명은 여러분이 원하는 대로 입력하면 됩니다. REST API 키를 복사하여 .env 파일에 넣습니다. 여러분의 키는 이 책의 키와 다르므로 이 책의 키 대신 여러분의 키를 넣어야 합니다.앱 설정 > 플랫폼에서 Web 플랫폼 등록 메뉴를 선택합니다. 사이..