영속 계층의 작업은 항상 다음과 같은 순서로 진행

1. 테이블의 컬럼 구조를 반영하는 VO(Value Object) 클래스 생성

2.MyBatis의 Mapper인터페이스의 작성/XML처리 SQL작성시 ;가 없도록 작성

3.작성한 Mapper인터페이스의 테스트

XML을 작성할 때는 반드시 <mapper>의 namespace 속성 값을 Mapper 인터페이스와 동일한 이름을 주는 것에 주의하고, <select> 태그의 id 속성 값은 메서드의 이름과 일치하게 작성합니다. resultType 속성의 값은 select 쿼리의 결과를 특정 클래스의 객체로 만들기 위해서 설정합니다. XML에 사용한 CDATA 부분은 XML에서 부등호를 사용하기 위해서 사용합니다.

 

1. DB 테이블

테이블 제작

 

2. DTO 객체 제작(DTO로 테이블의 객체를 가져옴)

DTO란 Data Trasfer Object로 DB에서 데이터를 불러오거나 저장 할 때, 데이터를 담기위한 그릇이라고 볼 수 있다. 흔히 알고있는 VO(Value Object)와 거의 같은 의미이다.

 

DB에서 데이터를 조회 했을 때 데이터를 담기위한 객체

API나 뷰의 종류에 따라 원하는 값만 불러오도록 일부 멤버 변수를 제외해도 됨오토 시퀀스(자동값 증가)sql developer에서auto_increment는 insert될 때 자동으로 값이 증가한다.

 

 

'개인 공부 or 오류' 카테고리의 다른 글

모달창 구현 연습  (0) 2023.08.19
소스 트리 오류  (0) 2023.08.03
회원가입창  (0) 2023.08.03
복습, parameterMap, parameterType, resultMap, resultType  (0) 2023.08.02

MVC 패턴의 Controller 역할로서 서블릿이 사용된다.

서블릿을 구현할 때 반드시 상속받아야하는 클래스: java.servlet.http.HttpServlet

 

포워드 기능: 하나의 서블릿에서 다른 서블릿이나 JSP와 연동하는 방법

포워드 기능이 사용되는 용도

요청에 대한 추가 작업을 다른 서블릿에게 수행하게함

요청에 포함된 정보를 다른 서블릿이나 JSP와 공유함

요청에 정보를 호함시켜 다른 서블릿에 전달할 수 있음

모델2 개발 시 서블릿에서 JSP로 데이터 전송에 사용

 

RequestDispatcher방법

일반적으로 포워딩 기능을 지칭

서블릿이 직접 요청하는 방법

RequestDispatcher클래스의 forward() 메서드 이용

 

dispatch를 이용한 포워딩: 서블릿에서 jsp로 데이터 전송을 할 때 주로 사용

클라이언트의 브라우저를 거치지 않고 서버에서 포워딩이 진행

클라이언트의 웹브라우저에서 첫번째 서블릿에 요청합니다.

첫 번째 서블릿은 RequestDispatcher를 이용해 두 번째 서블릿으로 포워드 합니다.

 

서블릿에서 다른 서블릿 또는jsp로 대량의 데이터를 공유하거나 전달하고 싶을 때 바인딩 기능을 사용한다.

데이터양이 적을 때는 get방식 이용

HttpServletRequest, HttpSession, ServletContext에서 사용. 저장된 자원을 프로그램 실행 시 서블릿이나 jsp에서 공유하여 사용

바인딩할 때 사용하는 메서드가 

setAttribute(String name, Object obj) : 데이터를 각 객체에 바인딩합니다.

getAttribute(String name): 각 객체에 바인딩된 정보를 name으로 가져옵니다. 반환형 Object=> 형변환 필요

removetAttribute(String name) : 각 객체에 바인딩된 자원을 name으로 제거합니다.

 

상태정보 유지

HTTP는 비연결성과 무상태로 동작하는 프로토콜이라서 이전 연결 때의 상태 정보를 서버가 유지해주지 않는다.

상태유지기술: 상태정보를 일정 시간 동안 지속해서 유지해주는 기술

필요성

HTTP의 비연결성을 보완

장바구니와 같이 여러 페이지로 이동하더라도 사용자 정보와 필요 정보 유지 필요

페이지 간의 지속성 서비스를 제공하기 위한 기법

hidden속성: html의 <input type="hidden" /> 태그를 이용하여 웹 페이지들 사이의 정보를 공유

GET 방식: GET 방식으로 URL 뒤에 정보를 붙여서 다른 페이지로 전송

쿠키: 클라이언트 PC(사용자 측에 정보 저장)의 Cookie 파일에 정보를 저장한 후 웹 페이지들이 공유

세션: 서버 메모리에 정보를 저장한 후 웹 페이지들이 공유, 자바의 모든 객체

 

쿠키 특징

정보가 클라이언트 PC에 저장됨

저장 정보 용량에 제한이 있음(파일 용량은 4kb)

보안이 취약함

클라이언트 브라우저에서 사용 유무를 설정할 수 있음

도메인당 쿠키가 만들어짐(웹사이트당 하나의 쿠키)

문자열 형태만 가능

 

1. 브라우저로 사이트에 접속

2. 서버는 정보를 저장한 쿠키 생성

3. 생성된 쿠키를 브라우저로 전송

4. 브라우저는 서버로부터 받은 쿠키 정보를 쿠키 파일에 저장

5. 브라우저가 다시 접속해 서버가 브라우저에게 쿠키 전성을 요청하면 브라우저는 쿠키 정보를 서버로

6. 서버는 쿠키 정보를 이용해 작업을 함.

 

Persistence 쿠키

파일로 생성, 쿠키를 삭제하거나 쿠키 설정 값이 종료된 경우, 최초 접속 시 서버로 전송, 로그인 유무 또는 팝업창을 제한할 때

Session 쿠키

브라우저 메모리에 생성, 브라우저를 종료한 경우, 최초 접속 시 서버로 전송되지 않음, 사이트 접속 시 Session 인증 정보

 

쿠키API 특징

javax.servlet.http.Cookie 사용(클래스)

HttpServletResponse의 addCookie()메서드를 이용해 클라이언트 브라우저에 쿠키를 전송한 후 저장

HttpServletRequest의 getCookie()메서드를 이용해 쿠키를 서버로 가져온다.

 

int getMaxAge(초단위): 쿠키의 최대지속 시간을 초단위로 반환 -1일 경우 브라우저가 종료되면 바로 쿠키도 만료되게 된다.

String getName(): 쿠키의 이름

 

쿠키 생성 

쿠키는 (이름, 값)의 쌍 정보를 입력하여 생성.

쿠키의 이름은 알파벳과 숫자로만 구성되고, 쿠키 값은 공백, 괄호, 등호, 콤마, 콜론, 세미콜론 등은 포함 불가능

Cookie cookie = new Cookie(name, value);

 

클라이언트의 컴퓨터에 파일 형태로 저장

내장객체 response의 addCookie메소드를 이용

response.addCookie(cookie)

 

세션

HttpSession: 인터페이스 타입, HttpServletRequest의 getSession()이나 getSession(true)메서드를 이용하여 생성할 수 있다.

HttpSession 객체가 생성될 때는 요청을 보내온 클라이언트 정보, 요청 시간 정보 등을 조합한 세션ID가 부여되며, 이 세션ID는 클라이언트 측에 쿠키 기술로 저장된다.

서버에 생성되며 클라이언트에는 세션ID(로그인을 하면 동일한 세션 ID를 사용 , 톰캣의 기본 값은 30분)가 쿠키 기술로 저장되어 각 클라이언트에 대하여 생성되는 HttpSession 객체를 클라이언트마다 개별적으로 유지 및 관리.

 

클라이언트가 서버에 요청하는 구조

1.요청

2.Session 객체 생성: getSession()

3.세션 ID와 상태 정보 저장

4.응답+세션ID

5.요청 + 세션ID

6.세션ID로 클라이언트와 연결 기능 유지

 

 

'JSP' 카테고리의 다른 글

MVC 패턴  (0) 2023.07.17
EL, JSTL  (0) 2023.07.14
JSP  (0) 2023.07.03

관계: 업무적인 연관성

식별관계(실선): 부모테이블의 기본키가 자식 테이블의 기본 키 혹을 후보 키 그룹의 구성원이 된다.

비식별 관계(점선): 부모 테이블의 기본 키가 자식 테이블의 일반 칼럼이 된다.

 

계획

1.세부 추진일정 수립

2.인터뷰 계획[현업 담당자와 개발자 간에 회의]

3. 자료수집 계획[요구분석 및 장표수집]

 

분석

1. 장표와 인터뷰 자료 등 수집된 자료를 바탕으로 DATA 분석

2. 개념적 데이터 모델링 및 ERD 작성

 

설계

1. ERD를 기반으로 테이블 설계서 작성, 물리적 구조 설계

2. 화면 설계서 작성

 

구축

1.테이블 설계서를 기반으로 테이블 생성

2.화면 설계서를 기반으로 프로그램 코딩[VB, PB, MFC 등]

 

! pip install openpyxl

import pandas as pd

from sklearn.preprocessing import LabelEncoder

from google_drive_downloader import GoogleDriveDownloader as gdd

gdd.download_file_from_google_drive(file_id="", dest_path = "", unzip=True)

data = pd.readexcel("폴더명/자료이름", sheet_name="이름")

 

#위에서 5개의 데이터를 가져옴

data.head()

 

#기초 통계량을 확인할 수 있음

data.describe()

 

#데이터 칼럼확인

data.columns

 

#숫자로 변환할 칼럼 지정

columns = []

for col in columns: #반복문 정의. 반복 기준을 리스트로 주면 값하나씩 들고 와서 처리

le = LabelEncoder()  #범주형 데이터를 숫자로 변환

le.fit(data[col]) #숫자 형태로 변환하는 규칙설정

data[col] = le.transform(data[col]) #칼럼 변환

 

data.iloc[0:3, 0:5]

 

columns = ["종류", "연료", "변속기"]

for col in columns:

le = LabelEncoder()

le.fit(data[col])

data[col] = le.transform(data[col])

 

#하이브리드 컬럼값이 1인 row값 출력

data["하이브리드"] ==1

 

'빅데이터 분석' 카테고리의 다른 글

KNIME 타이타닉 예측 분석  (0) 2023.07.25
KNIME 이해 및 설치  (0) 2023.07.23
빅데이터 분석 플랫폼(2)  (0) 2023.07.23
빅데이터 분석 플랫폼(1)  (0) 2023.07.23
코딩 분석 도구  (0) 2023.07.23

딕셔너리: 

dic = {"하나" :1, "둘":2}

 

#키값은 자동으로 abc 순, 혹은 가나다 순으로 정렬

{'둘':2, '하나':1}

 

dic.keys()

dict_keys([ '하나', '둘'])

 

dic.values()

dict_values([1, 2])

 

튜플:

tup = (1,2)

tup

(1,2)

 

리스트

데이터 전처리할 때 가장 많이 쓰임, 문자형 데이터가 들어가는 factory 변수 설정

factory=["전기", "오퍼레이터", "직업", "사무실", "사장"]

len 함수는 자료형의 길이 확인 가능

 

len(factory)

5

 

append

for 반복문과 함께 데이터 전처리할 때 많이 활용됨

factory.append("비")

factory

['전기', '오퍼레이터', '직업',  '사무실', '사장', '비']

factory.append(factory)

['전기', '오퍼레이터', '직업',  '사무실', '사장', '비',['전기', '오퍼레이터', '직업',  '사무실', '사장', '비']]

값을 하나씩 추가할때는 append

리스트를 추가할 때는 extend

factory.extend(factory)

['전기', '오퍼레이터', '직업',  '사무실', '사장', '비', '전기', '오퍼레이터', '직업',  '사무실', '사장', '비']

 

factory.remove("전기")

factory

['오퍼레이터', '직업',  '사무실', '사장', '비']

 

딕셔너리: key value 값으로 이루어진 {}안에서 입력되는 자료형

fac_word = {'factory':'공장', 'electricity': '전기', 'assemble': '조립하다'  }

fac_word

{ 'assemble': '조립하다' ,'electricity': '전기',  'factory':'공장'}

fac_word["factory"]

'공장'

fac_word["assemble"] = "모으다"

fac_word

{ 'assemble': '모으다' ,'electricity': '전기',  'factory':'공장'}

fac)word.keys()

dict_keys(['factory', 'electricity', 'assemble'])

 

tuple 변수 할당

digit = (0,1,"two")

digit = tuple(0,1,"two")

digit[1]

1

tuple은 조회밖에 안됨

digit[0] = 1

오류

 

반복되는 코드에 대해서 처리가 가능한 기능 for문, while문

while문

i=1

while i <= 100:

print(i)

i=i+1

1부터 100까지 출력

 

x in A

x not in A

 

for i in range(1, 101):     /101까지 해야 100까지

 

a=118* 29

b=97*35

if a>b:

 

** 제곱

예외처리

.py 파일은 중간에 오류가 하나라도 발생하면 실행을 멈춤

예외처리를 하면 자잘한 오류를 무시하고 코드 실행 가능

커스텀 에러 메시지 구현

 

text = "100퍼센트"

try: #try 구문 정의

number=int(text) # int 변환

excepty ValueError:

print("{}는 숫자가 아닙니다.".format(text))

 

#함수설정

def list_print(list, index): #입력변수: 리스트 면수, 인덱스

print(list.pop(index)):

 

numpy 패키지

수학 연산, 행렬처리 등의 작업 수행

numpy 형태로 데이터를 변환 후 머신러닝/딥러닝 모델에 입력 가능

특징
1.Numpy 배열을 리스트와 같은 값의 집합으로 볼 수 있으나 리스트와 다르게 하나의 타입만을 가질 수 있음

2. 각 차원의 크기를 튜플 형태로 표현 가능

3.배열의 차원에 따라서 인덱싱(조회) 가능

 

#외부 패키지 임포트

import numpy as np

#import pandas as pd

 

arr1 = np.array([1, 2, 3])

type(arr1)

numpy.ndarray

 

arr1.shape # numpy 행렬의 사이즈 출력

(3,)

arr1.ndim  #차원

1

arr2 = np.array([[1, 2, 3],[4, 5, 6,]])

type(arr2)

(2,3)

arr2.ndim

2

np.zeros(shape=(5,5))

 

 

'파이썬' 카테고리의 다른 글

Visual Studio Code  (0) 2023.07.28
Visual Studio Code  (0) 2023.07.28
Colaboratory  (0) 2023.07.28
Jupyter Notebook  (0) 2023.07.27
아나콘다 개발 환경 구축  (0) 2023.07.27

Visual Studio Code

다양한 언어를 활용할 수 있는 통합 개발 환경을 지원함

VS 코드는 윈도우, 리눅스, 맥OS 전부 지원

디버깅, Git, 구문 강조, 테마 설정, 단축키 설정 등 다양한 기능 제공

통합 개발 환경에서 호환겅, 편의성, 확장성 등을 보장함

 

파이썬 활용 유저는 같은 통합 개발 환경 계열인 파이참을 활용하는 경우도 있지만 일반적으로 VS코드 활용

https://code.visualstudio.com/download

 

Download Visual Studio Code - Mac, Linux, Windows

Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.

code.visualstudio.com

 

가상환경을 세팅했다면 자동적으로 인터프리터(파이썬)를 연결 가능

상단의 터미널 > 새 터미널을 클릭하면 하단에 터미널 창이 나타남

 

test.py 파일을 실행

python test.py

 

'파이썬' 카테고리의 다른 글

변수와 자료형  (0) 2023.07.28
Visual Studio Code  (0) 2023.07.28
Colaboratory  (0) 2023.07.28
Jupyter Notebook  (0) 2023.07.27
아나콘다 개발 환경 구축  (0) 2023.07.27

Visual Studio Code

다양한 언어를 활용할 수 있는 통합 개발 환경을 지원함

VS 코드는 윈도우, 리눅스, 맥OS 전부 지원

디버깅, Git, 구문 강조, 테마 설정, 단축키 설정 등 다양한 기능 제공

통합 개발 환경에서 호환겅, 편의성, 확장성 등을 보장함

 

파이썬 활용 유저는 같은 통합 개발 환경 계열인 파이참을 활용하는 경우도 있지만 일반적으로 VS코드 활용

https://code.visualstudio.com/download

 

Download Visual Studio Code - Mac, Linux, Windows

Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.

code.visualstudio.com

 

가상환경을 세팅했다면 자동적으로 인터프리터(파이썬)를 연결 가능

상단의 터미널 > 새 터미널을 클릭하면 하단에 터미널 창이 나타남

 

test.py 파일을 실행

python test.py

 

'파이썬' 카테고리의 다른 글

변수와 자료형  (0) 2023.07.28
Visual Studio Code  (0) 2023.07.28
Colaboratory  (0) 2023.07.28
Jupyter Notebook  (0) 2023.07.27
아나콘다 개발 환경 구축  (0) 2023.07.27

+ Recent posts