목록
'홈' 731건
-
out 내장 객체 이용해 데이터 출력하기1. 다음과 같이 실습 파일 out1.jsp, out2.jsp를 준비합니다. 2. 첫 번째 JSP 페이지인 out1.jsp를 작성합니다. 이름과 나이를 두 번째 JSP로 전송합니다. 이름: 나이: 3. 두 번째 JSP 페이지인 out2.jsp를 작성합니다. 전송된 이름과 표현식과 out 내장 객체를 이용해 출력합니다. , 이름을 입력하세요 이름을 입력하세요 4. 브라우저에서 요청하여 다음과 같이 나이를 입력한 후 전송합니다. 5. 전달받은 정보를 표현식과 out 내장 객체를 출력합니다. out 내장 객체를 이용해 스크립트릿으로 출력하면 복잡한 코드를 상대적으로 간단하게 출력할 수 있습니다.
-
분류별 지출 합계 구하기액셀에서 피벗 테이블(pick table)을 사용하면 데이터의 분류, 요약, 통계 등의 작업을 빠르고 편리하게 처리할 수 있습니다. 예를 들어 2024년 1분기 카드 명세서의 지출 내역을 분류 열을 기준으로 요약하면 카드 지출을 어디에 많이, 또는 적게 했는지 파악할 수 있습니다. 분류별 지출 합계 구하기∨ 문법 체크 pandas 패키지의 함수 pivot_table()pandas 패키지의 pivot_table() 함수는 매개변수의 값에 따라 다양한 옵션을 설정할 수 있습니다.pd.pivot_table( df, # 파벗 테이블을 만들 데이터프레임 index="row", # 피벗 테이블의 행이 될 집계 기준 열 columns="column", # 피벗 테이블의 열이 될 집계 기준 열 values="value..
-
카카오 로그인 구현하기 (1)카카오 로그인이란 로그인 인증 과정을 카카오에 맡기는 것을 뜻합니다. 사용자는 번거롭게 새로운 사이트에 회원가입하지 않아도 되므로 좋고, 서비스 제공자는 로그인 과정을 검증된 SNS에 안심하고 맡길 수 있어 좋습니다.SNS 로그인의 특징은 회원가입 절차가 따라 없다는 것입니다. 처음 로그인할 때는 회원가입 처리를 해야 하고, 두 번째 로그인부터는 로그인 처리를 해야 합니다. 따라서 SNS 로그인 전략은 로컬 로그인 전략보다 다소 복잡합니다.const passport = require("passport");const kakaoStrategy = require("passport-kakao").Strategy;const User = require("../models/user");module.exports = ..
-
request 내장 객체에 데이터 바인딩 실습1. request 내장 객체 실습 파일인 request1.jsp, request2.jsp를 준비합니다. 2. 첫 번째 JSP인 request1.jsp를 다음과 같이 작성합니다. 브라우저의 요청에 대한 request 객체에 name과 address를 바인딩합니다. 그리고 RequestDispatcher를 이용해 request 객체를 두 번째 JSP로 전송합니다. 3. 두 번째 JSP인 request2.jsp를 다음과 같이 작성합니다. 첫 번째 JSP에서 전송된 request 객체에서 바인딩된 name과 address를 가져옵니다. 이름은 입니다. 주소는 입니다. 4. 브라우저에서 request1.jsp로 요청하면 request 객체에 바인딩한 후 request2.jsp로 포워딩하여 이름과 주소를 출력..
-
1분기 3개의 카드 명세서 하나로 취합하기'ch_02/input' 폴더에 있는 5개의 카드 명세서 파일 '2024년1월.xlsx', '2024년2월.xlsx', '2024년3월.xlsx'를 하나로 취합해 봅시다.비주얼 스튜디오 코드에서 새로운 파일을 생성하고, 파일명을 'step_2_2.py'로 변경합니다. 다음과 같이 코드를 작성한 뒤, 대화형 창에서 실행하면 액셀 파일로 저장된 3개의 카드 명세서가 하나의 리스트로 출력됩니다.from pathlib import Pathimport pandas as pdfrom step_1 import IN_DIR, OUT_DIR # 이전에 작성한 모듈을 불러옵니다.result = [] # 5for xlsx_path in Path(IN_DIR).glob("2024년*월.xlsx"): # 6 df_raw ..
-
로컬 로그인 구현하기 (2)회원가입, 로그인, 로그아웃 라우터를 작성합니다.routes/auth.jsconst express = require("express");const passport = require("passport");const bcrypt = require("bcrypt");const { isLoggedIn, isNotLoggedIn } = require("./middlewares");const User = require("../models/user");const router = express.Router();router.post("/join", isNotLoggedIn, async (req, res, next) => { const { email, nick, password } = req.body; try { ..
-
application 내장 객체에 데이터 바인딩 실습1. 다음과 같이 appTest1.jsp, appTest2.jsp 실습 파일을 준비합니다. 2. appTest1.jsp를 다음과 같이 작성합니다. 첫 번째 JSP에서 session과 application 내장 객체에 name과 address 값을 바인딩합니다. 이름과 주소를 저장합니다. 두 번째 웹 페이지로 이동 3. appTest2.jsp를 다음과 같이 작성합니다. 첫 번째 JSP에서 session과 application 대상 객체에 바인딩한 값을 가져옵니다. 이름은 입니다. 주소는 입니다. 4. http:localhost:8090/pro12/test01/appTest1.jsp로 요청합니다. 첫 번째 JSP에서 name과 address를 session과 application에 바인딩합니다. 5. 같은 ..
-
월별 명세서 취합하기 - 카드 명세서에서 데이터 불러오기효율적인 데이터 분석을 위해 여러 데이터 파일을 하나로 취합하는 일은 실무에서도 자주 맞닥뜨리게 되는데요. 이때 파이썬과 pandas 패키지를 사용하면 파일을 일일이 열어서 데이터를 옮기는 대신, 코드 몇 줄만으로 작업을 마칠 수 있습니다. 카드 명세서에서 필요한 데이터 불러오기소스 코드 'ch_02/input' 폴더에 있는 액셀 파일에서 거래 일시, 가맹점명, 분류, 사용금액 데이터를 데이터프렝임으로 불러와 파이썬 코드로 다뤄 보겠습니다.필요한 데이터는 [B3] 셀부터 [E37] 셀에 저장되어 있고, 나머지는 불필요하거나 빈 셀입니다. 불러올 열 범위를 B열부터 E열까지로 지정하고, 첫 두 개의 행을 제외하면 됩니다.비주얼 스튜디오 코드에서 새로운 파일을 생성하고, 파일명을 'step_2_1.py'로 ..
-
월별 카드 지출 내역 분석 - 카드 명세서 다운로드모든 데이터는 자료실(https://github.com/himoon/gopython)에서 다운로드할 수 있습니다. 자료실에 장별 프로젝트의 소스 코드와 입력 파일, 출력 결과과 모두 저장되어 있으므로 전체 폴더를 다운로드하고, 장 번호에 맞는 파일을 확인합니다. 입력 파일은 'input' 폴더에 출력 결과는 'output' 폴더에서 확인할 수 있습니다. 앞으로는 파이썬에서 액셀 파일을 다루기 위해 셀에 저장된 데이터를 데이터프레임(dataframe)으로 변환하여 저장할 것입니다. 데이터프레임은 pandas 패키지의 자료구조 중 하나로, 행과 열로 구성된 객체입니다. 파이썬에서 데이터프레임은 리스트 또는 딕셔너리를 활용해 생성하는 것이 일반적입니다. 리스트를 활용하여 생성한 데이터프레임import pand..
-
로컬 로그인 구현하기(1)로컬 로그인이란 다른 SNS 서비스를 통해 로그인하지 않고 자체적으로 회원가입 후 로그인하는 것을 의미합니다. 즉, 아이디/비밀번호 또는 이메일/비밀번호를 통해 로그인하는 것입니다.Passport에서 이를 구현하려면 passport-local 모듈이 필요합니다. 이미 설치했으므로 로컬 로그인 전략만 세우면 됩니다. 로그인에만 해당하는 전략이므로 회원가입은 따로 만들어야 합니다.routes/middlewares.jsexports.isLoggedId = (req, res, next) => { if (req.isAuthenticated()) { next(); } else { res.status(403).send("로그인 필요"); }};exports.isNotLoggedIn = (req, re..
-
session 내장 객체에 데이터 바인딩 실습1. JSP 파일이 많아지므로 test01 폴더를 만든 후 session1.jsp, session2.jsp 등 실습 파일들을 생성합니다. 2. SessionTest 클래스를 다음과 같이 작성합니다. 서블릿에서 getSession() 메서드를 이용해 session 객체를 얻은 후 name을 바인딩합니다.package sec01.ex01;import java.io.IOException;import java.io.PrintWriter;import java.rmi.ServerException;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServl..
-
월별 카드 지출 내역 분석 - 파이썬 패키지 준비하기패키지(package)는 특정 기능을 구현한 모듈(module)을 모아 둔 폴더로, 패키지를 활용하면 미리 작성된 코드를 재사용할 수 있어 매우 유용합니다. 파이썬은 방대한 커뮤니티를 기반으로 다양한 패키지를 제공하며, 이 패키지들 외부 데이터를 손쉽게 불러오고 처리하는 기능을 제공합니다. 이러한 장점 덕분에 파이썬은 데이터 관리와 분석에 최적화된 프로그래밍 언어로 자리잡았습니다. 파이썬 패키지 준비하기 pathlib 패키지현재 작업 폴더를 'ch_02'로 가정하고 하위 경로에 두 폴더 'input'과 'output'을 생성합니다.'input' 폴더는 앞으로 실습 프로젝트를 진행하며 불러올 액셀 파일을 저장하는 폴더로 사용하고, 'output' 폴더는 코드의 실행 결과를 저장하는 폴더로 사용합니다.비주얼..