본문 바로가기

Programming83

[JSP] JSP의 구동 원리 뷰 컴포넌트에서 JSP를 사용하는 목적은 HTML로 직접 처리할 수 있어 화면 만들기가 더 쉬워지기 때문이다. (JSP가 없으면 서블릿 자바코드 안에 HTML 코드를 넣어야 하는 번거로움이 있다.) 즉, JSP는 서블릿과 같은 기능을 하면서 HTML로 직접 처리를 할 수 있다. 예시를 통해 확인해보자. 위와 같은 코드를 실행했을 때 내부적으로는 다음과 같은 일이 벌어지고 있다. JSP 엔진이 JSP를 서비스 하기 전에 자바 클래스 파일을 생성한다. 빨간 박스 안의 코드를 JSP 지시자라고 부르는데, 이 JSP 페이지가 Java로 컴파일 될 것을 의미하며, 내부적으로는 자바코드가 생성된다. 따라서 JSP 안에는 브라우저에 출력될 템플릿 데이터와 자바 출력문 두 가지가 포함되어 있음을 확인할 수 있다. /*.. 2019. 6. 3.
[Java] 16. Annotation의 개념과 활용 개념 *애노테이션(Annotation) ; 일명 메타 데이터, JDK5에 포함 *용도 1) 컴파일러에 정보를 알려준다 2) 컴파일할때와 설치시의 작업을 지정한다 3) 실행할 때 별도의 처리가 필요할 때 4) 환경설정 파일을 대신할 때 *java standard version @Override : 인터페이스, 추상클래스 상속시 @Deprecated : 더이상 유효하지 않은, 사용 안 했으면 @SuppressWarnings : error(무조건 고쳐야 실행됨), warning(실행은 되지만 위험성을 경고) *java Enterprise edition @WebServlet ... @Target.키워드 (적용대상) - TYPE : 클래스/인터페이스/열거형 - ANNOTATOIN_TYPE : 어노테이션 - FIE.. 2019. 6. 3.
[JSP] get request vs. post request 비교 Get 요청 방식 Get 요청의 특징은 브라우저 상에 요청하는 정보가 노출됨 (url에 데이터가 포함됨) → 보안 취약, 대용량 데 이터 전송이 불가하다. 1) 웹 브라우저의 주소창에 주소를 입력 후 실행할 때 2) 링크를 클릭할 때 3) 입력폼의 method 속성을 get으로 지정했을 때 + - * / Post 요청 방식 Post 방식 url에 데이터가 포함되지 않고 주소만 나오며, 데이터는 메세지 본문에 포함.(Charles, Fiddler, Burp Suite 등의 프록시 툴로 본문 확인 가능) 바이너리 및 대용량 데이터의 전송이 가능해진다. 1) 로그인 폼 : 로그인 폼은 입력값 노출을 방지하기 위해 Post 방식을 사용한다 아이디: 암호: 2) 입력폼의 method 속성을 post로 지정했을 때.. 2019. 5. 31.
[Python] 정규표현식(Regular Expression) 기본 문법, 파이썬 re 모듈 활용 정규표현식의 기초, 메타문자 1. 문자 클래스 [ ] [a-c] = [abc] [0-5] = [012345] [a-zA-z] = 알파벳 모든 문자 [0-9] = 모든 숫자 \d = [0-9], decimal \D = [^0-9] 숫자가 아님(^는 not의 의미) \s = whitespace 문자 (\t\n,space) \S = whitespace 문자가 아님 \w = 문자+숫자 [a-zA-Z0-9], word \W = 문자+숫자가 아닌 것[^a-zA-Z0-9] 2. Dot(.) 문자 : \n을 제외한 모든 문자 a.b : a와 b문자 사이에 \n를 제외한 모든 문자면 가능 acb : Yes a#b : Yes a1b : Yes abc : No a[.]b == a.b \ 3. 반복(*) ca*t : a가 0.. 2019. 5. 24.
[Python] 파이썬 SQLite 연동하기 SQLite는 소형 관계형 데이터베이스이다. Oracle, MysQL에 비하면 훨씬 compact 하지만, 파일이 곧 데이터베이스가 된다는 간편함 때문에 안드로이드 등의 내장형 데이터베이스로 활용되기도 한다. 이번 포스팅에서는 파이썬으로 SQLite를 연동해 테이블 관리를 해보겠다. 1) DB Browser for SQLite 다운로드 https://sqlitebrowser.org/blog/portableapp-for-3-11-2-release-now-available/ 2) 연결 객체 생성 import sqlite3 db = sqlite3.connect("test.db")# DB파일 생성 print(db) 3) 커서(쿼리문 전달 가능 객체) 생성 cursor = db.cursor() print(curs.. 2019. 5. 21.
[Python] Selenium을 활용한 웹 크롤링 셋팅 1) selenium 설치 Anaconda3 > Anaconda Prompt > conda install selenium 또는 cmd > cd C:\Users\Anaconda3\Scripts > pip install selenium 또는 에디터 내의 라이브러리 확장 프로그램을 활용해 selenium을 설치하면 된다 2) 브라우저 드라이버 다운로드 https://www.seleniumhq.org/download > 개발환경에 맞는 드라이버 다운 3) 드라이버 실행하기 from selenium import webdriver driver = webdriver.Chrome('./chrome/chromedriver') #드라이브를 저장한 폴더 위치 if driver == None: sys.exit() dri.. 2019. 5. 21.
[Java] 15. JDBC 기본 셋팅 방법 1. jar 파일 가져오기 자바 프로젝트 우클릭 → Properties → Java Build Path → Add External Libraries → jar 파일 선택 2. import java.sql.*; 3. 메모리에 오라클 드라이버 객체를 로딩하기 DriverManager 내부에서 사용할 오라클 드라이버 객체를 생성해서 메모리에 로딩한다.(위치: Main 함수 위) static {//static 영역을 초기화 해준다 try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } 4. Connection 객체를 생성하기 : 오라클에 접속 try { Co.. 2019. 5. 14.
[Oracle] 15.제약 조건(PK, FK, UK, NOT NULL, CHECK) 설정, 조회 쿼리 제약 조건(Constraints) 테이블 단위에서 데이터의 무결성을 보장해주는 규칙.(오류 방지) 테이블에 데이터가 입력, 수정, 삭제되거나 테이블이 삭제, 변경될 경우, 잘못된 트랜잭션이 수행되지 않도록 결함을 유발한 가능성이 있는 작업을 방지하는 역할을 담당한다. 특히 PK와 FK는 테이블의 필수요소로써 모든 테이블은 이들 둘 중 하나 이상을 반드시 포함하고 있다. 오라클에서 제공하는 제약조건의 종류는 다음과 같다. PRIMARY KEY 테이블 당 하나만 정의 가능하며, 유일하게 식별할 수 있는 컬럼. 고유 인덱스 생성됨. FOREIGN KEY 자식 테이블에 설정 (반대로, 참조되는 테이블이 부모 테이블. 부모 테이블은 삭제가 불가능해짐) UNIQUE KEY 중복 값을 허용하지 않는 고유키. 고유 인.. 2019. 5. 7.
Node.js로 Angular6 구축하기 참고 사이트: https://www.devglan.com/angular/angular-6-example Angular 6 Project 생성하기 npm i -g npm@latest ng new angular6-example ng g service service/user ng g service service/auth login, add-user, edir-user, list-user 네 개의 컴포넌트를 차례로 생성해준다. app.js 파일로 서버 연결 require 항목에 있는 express와 CORS는 명령어 npm i 로 수동 설치해주어야 정상 실행 된다. const express = require('express'); const CORS = require('cors')(); localhost:4200.. 2019. 5. 4.