본문 바로가기

[Django+PostrgeSQL+Pycharm] #1. Django 설치 및 프로젝트 시작 1. DjangoHelloWorld 프로젝트 만들기 만든 프로젝트 폴더 경로로 이동한 모습 (venv) C:\Users\91wjh\PycharmProjects\DjangoHelloWorld> 2. Django 설치하기 장고는 터미널에서 다음 명령어로 설치합니다. >pip inatall django 3. Django 프로젝트 시작하기 장고를 설치했으면 다음 명령어로 장고프로젝트를 시작합니다. >django-admin startproject hello_django 위 명령어에서 hello_django는 단순히 프로젝트 이름이기 때문에 변경해도 무방함. 위 명령어를 실행해도 터미널에 아무런 결과가 뜨진 않지만 dir 명령어로 확인해보면 hello_django라는 폴더가 생긴걸 확인할 수 있습니다. (venv)..
GET과 POST의 차이 HTTP HTTP는 웹상에서 클라이언트와 서버 간에 요청/응답으로 데이터를 주고 받을 수 있는 프로토콜입니다. 클라이언트가 HTTP 프로토콜을 통해 서버에게 요청을 보내면 서버는 요청에 맞는 응답을 클라이언트에게 전송합니다. 이 때, HTTP 요청에 포함되는 HTTP 메소드는 서버가 요청을 수행하기 위해 해야할 행동을 표시하는 용도로 사용합니다. 이 HTTP 메소드 중 GET과 POST의 특징과 차이점을 알아보겠습니다. GET HTTP/1.1 스펙인 RFC2616의 Section9.3에 따르면 GET은 서버로부터 정보를 조회하기 위해 설계된 메소드입니다. GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리스트링을 통해 전송합니다. URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요..
[Spring] Spring + Tiles Framework 연동하기 [난 왜 Tiles Framework 란걸 찾게 되었는가?] jsp파일로 화면을 구성하다보면 header/footer같은 공통적인 소스 들이 존재한다. 공통적인 부분은 jsp파일로 따로 분리하고, 각 화면에 해당하는jsp파일에 header/footer.jsp를 include하는 방식으로 중복되는 소스를 줄이는 방식을 이용한다. 그런데, 일단 각 화면jsp파일마다 모두 header/footer.jsp파일을 include해주는것도 귀찮지만 만약 페이지의 레이아웃이 바뀐다면 jsp파일 수 만큼 include를 수정해주는 작업을 해줘야하는 수고로움이 생긴다. 따라서! 각 화면jsp파일마다 따로 header/footer.jsp를 include해주지 않고 오로지 각 화면에 해당하는 소스만 작성하고 싶었고, 페이지의..
[Oracle] 테이블명으로 Select쿼리문 자동생성 테이블명 가지고 crud쿼리문을 자동으로 생성해주는 툴 같은게 있는지 찾아보다가.. 마땅치않아서 잊혀져가는 oracle stored procedure 사용법 상기시킬겸 select 쿼리문만 자동으로 생성되도록 작성해봤다. 예제는 입력파라미터로 테이블영문명을 받고, 결과로 dbms콘솔에 select쿼리문이 출력된다. create or replace procedure generateSELECT ( pTableName IN ALL_TAB_COMMENTS.TABLE_NAME%TYPE) is -- 로컬변수 선언 allTabColumns ALL_TAB_COLUMNS%rowtype; allColComments ALL_COL_COMMENTS%rowtype; vcnt number; vstr varchar2(500); -..
[오라클] EXISTS 활용 예제 특정 조건을 만족하는 데이터가 있는지 존재유무만 확인하려고 할 때, 보통 COUNT(*)를 통해 건수가 0 초과 인지 확인하는 로직을 생각했다. 의미있는 성능의 차이를 확인하기위해 아래처럼 약 200만건정도의 더미데이터가 있는 테이블로 예제를 진행해보겠다.123/*데이터 확인*/SELECT COUNT(*) CNTFROM BOOK_EX.TBL_BOARD;cs 먼저 count(*)를 이용한 쿼리를 확인해보자1234/*데이터 확인*/SELECT COUNT(*) CNTFROM TBL_BOARDWHERE BNO >= 5cs0.231초 소요됐다. BNO가 5이상인걸 모두 SCAN한다음에 카운트한 결과를 리턴하게된다. 따라서 TBL_BOARD의 건수가 많을수록 성능저하가 발생할 수 있다. EXISTS쿼리를 이용한다면..
[Spring+Oracle+MyBatis]3. 오라클 테스트할 테이블, 더미데이터 생성 [세번째 시간]오라클 데이터베이스에 테스트할 게시판 테이블 생성 및 더미데이터를 추가한다. 더미데이터는 약 1만건 정도 테스트를 위해 insert into select 문을 이용해서 삽입했다. /*테이블 생성*/CREATE TABLE TBL_BOARD( BNO NUMBER(10,0), TITLE VARCHAR2(200) NOT NULL, CONTENT VARCHAR2(2000) NOT NULL, WRITER VARCHAR2(50) NOT NULL, REGDATE DATE DEFAULT SYSDATE, UPDATEDATE DATE DEFAULT SYSDATE);/* pk제약조건 추가*/ALTER TABLE TBL_BOARD ADD CONSTRAINT PK_BOARDPRIMARY KEY(BNO);/*pk로 ..
[Spring+Oracle+MyBatis]2. 프로젝트의 JDBC 연결 [Spring+Oracle+Mybatis 게시판 만들기 두번째 시간] 첫번째 시간에 JDBC드라이버를 정상적으로 추가했다. 그리고 sql developer를 통해 접속을 DB 접속을 만들고, 프로젝트를 위한 새로운 계정까지 만들어줬다면, 테스트코드를 작성해줘야한다. public class JDBCTests { private static final Logger logger = LoggerFactory.getLogger(JDBCTests.class); static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } @Test..
오라클 계정생성 관리자계정으로 로그인 후, 계정을 생성하고 권한을 부여하는 순서로 추가 해준다.