목록전체 글 (332)
삶 가운데 남긴 기록 AACII.TISTORY.COM
CRUD 웹 어플리케이션은 서버의 자원을 Create, Read, Update, Delete 하도록 서비스를 구성하는데 이를 줄여서 CRUD라고 합니다. 예를들어 회원 가입(Create), 회원정보조회(Read), 회원정보수정(Update), 회원정보삭제(Delete) 를 한 세트로 묶어서 회원정보에 대한 서버 자원(DB)에 대한 서비스를 구현합니다. 이전 jsp프로젝트 처럼 새 Dynamic Web Project를 생성하여 예제를 구현해보도록 합시다. tomcat의 context path는 / 으로 지정합니다. 프로젝트 생성시 web.xml 생성 옵션을 체크합니다. 프로젝트 src 경로에 controller, dao, service, vo 패키지를 생성합니다. 그리고 .do 요청을 처리하기 위해 프론트..
MVC패턴은 어플리케이션을 Model, View, Controller 으로 작업을 분리해서 모듈간 결합도를 최소화하여 각종 변화하는 상황에 대응하면서도 부작용을 줄이고, 유지보수성도 높일 수 있는 어플리케이션 개발 디자인 패턴을 말합니다. 작업을 모듈별로 나누어 작업하고 이를 결합해 주기 때문에 협업에도 유용하며, 협업시 개발자 자신이 맡은 역할에만 집중할 수 있도록 도와줍니다. View는 클라이언트와 서버간 인터페이스 역할을 하며, 클라이언트 요청을 받고 서버로부터의 결과를 표시해주는 기능을 합니다. Model은 비지니스 로직 서비스와 데이터베이스 처리를 담당합니다. Controller는 View와 Model을 연결해주는 역할을 합니다. 우선 SQL Developer 같은 DB 툴을 이용하여 오라클DB..
JSTL SQL 태그는 많이 사용하지는 않지만 알아두도록 합시다. SQL 기본 액션 : 커넥션 풀 DataSource를 생성하는 태그입니다. var: DataSource 의 설정값을 저장하는 변수의 이름을 지정합니다. dataSource : JNDI 서버에 등록하는 리소스 이름을 지정합니다. scope : 변수의 유효범위를 지정합니다. driver : 로딩할 JDBC 드라이버 정보를 지정합니다. url : 접속할 DB서버의 URL을 지정합니다. userName : DB서버에 로그인할 ID를 지정합니다. password : DB서버에 로그인할 패스워드를 지정합니다. : select 문을 수행하기 위한 태그입니다. sql : 실행할 sql문을 지정합니다. var : select 한 결과값을 ResultSet..
Properties 파일 웹 어플리케이션에서 다국어 지원을 위해 Properties 파일을 이용하는 경우가 많습니다. net.aacii.bundle 패키지를 생성해서 msg_ko.properties와 msg_en.properties 파일을 생성합니다. 이 properties 파일들은 한글의 경우 이클립스에서 자동으로 유니코드로 변환해주는데, 이 properties 파일들을 우클릭 후 open with를 선택 후 텍스트에디터로 열게 되면 한글이 유니코드로 변환되어 있는 것을 확인할 수 있습니다. 만약 자동으로 유니코드로 변환이 되지 않는다면, 이클립스 플러그인 중에 Properties Editor를 설치하시면 됩니다. 이 플러그인 설치 방법은 여기에서 다루지 않겠습니다. msg_ko.properties 을..
오라클 데이터베이스 19c 다운로드 https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 파일: Linux x86-64 종류: zip 자신의 운영체제에 맞는 zip 파일을 다운로드합니다. 호스트 네임 등록 root 권한을 획득합니다. su - 호스트 네임을 등록합니다. vi /etc/hosts 리눅스 서버의 ip 주소(192.168.1.6)에 호스트 네임을 정해줍니다. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6...
오라클은 접속 사용자 계정의 패스워드 설정 기본 값이 패스워드를 180일 주기로 변경하도록 되어 있습니다. 만료일이 지나면 다음과 같은 메시지를 확인 할 수 있습니다. oracle: the password has expired. 조치 절차에 대해 설명합니다. 1. 로그인 없이 sqlplus 실행 후 dba 계정으로 접속 sqlplus /nolog connect sys as sysdba 2. 혹은 sqlplus 바로 dba 계정으로 접속 sqlplus / as sysdba 3. passowrd_life_time 값 확인 (기본값 180일) select * from dba_profiles where profile = 'DEFAULT'; 4. 만료일을 unlimited로 변경 alter profile defa..
JSTL(Java Server Pages Standard Tag Library) 개요 자주 사용하는 기능은 커스텀 태그로 구현 한다음 재사용하면 편리합니다. 그러나 커스텀 태그는 직접 만드려면 많은 수고가 필요하게 됩니다. 그래서 표준 태그 라이브러리가 존재하는데 이것이 JSTL 입니다. JSTL 1.0은 Servlet 2.3과 JSP1.2와 호환 JSTL 1.1은 Servlet 2.4와 JSP2.0과 호환 JSTL 1.2은 Servlet 2.5와 JSP2.1과 호환 core는 기본 기능이 포함되어 있으며 formatting은 날짜 시간에 관한 기능, sql은 데이터베이스 작업기능 xml은 xml을 지원하는 기능 functions은 여러 함수 기능이 구현되어 있습니다. core: formatting: s..
각 랭크에 맞는 레시피로 생산하면서 올립니다. 레시피: 직물비법서 소재에 관한 글(본거지 대도시 도구점) 1랭크 이상: 닭(헤르데르, 리스본) -> 깃털(북해 이외의 곳에서 판매, 북해명산품) * 보관2랭크 이상을 배웠다면 동남아시아인 말라카에서 닭을 구입 후 보관레시피인 여행자의 식량조달술(살로니카,벵가지 투자)로 달걀->닭,오리->달걀-> 무한증식 후에 남은 닭과 오리를 깃털로 변환 시킨 후 그자리에서 판매 한다면 깃털은 북해의 명산품이기 때문에 명산거리 판정으로 인한 교역경험치를 많이 획득 하실 수 있습니다. 이 방법은 소위 깃털 온라인이라 불리는 방법입니다. 벨벳 원가가 비싸진 관계로 벨벳을 대신해 상업레벨을 이득을 보면서 수월하게 올릴 수 있습니다. 레시피: 직물비법서 옷감에 관한 글(본거지 대..
각 레시피를 구해서 랭크에 맞는 생산물을 생산하면서 랭작합니다. 레시피: 조선공입문주조편(그로닝겐, 플리머스, 시라쿠사, 제노바, 말라가, 포르투 등 대장장이) 1랭크: 목재(오슬로, 베르겐) -> 목공도구 2랭크: 목재3 -> 예비키 3랭크: 청동2(플리머스, 런던투자발전), 석탄(더블린, 함부르크) -> 철수의 종(백병전 퇴각 아이템) 5랭크: 검은색흙(야파 외곽 채집), 화약2(바르셀로나), 석유(야파) -> 화염단지 5랭크: 유황(리가, 스톡홀름), 화약2(바르셀로나), 석유(알제) -> 폭약장치 12랭크: 흰색광석(실론 외곽 채집4, 농장, 보르도던전 등), 철재(고어, 캘커타에서 금속재련서로 생산), 목재(실론 외곽 통나무 채집1 후 조선공입문 공예편 목재로 생산, 말린디, 페구) -> 명인 ..
조리는 가축거래, 식료품거래, 조미료거래를 배워 두는 것이 유리합니다. 그리고 다음 자료는 조리의 모든 정보가 아니라 매우 유용하거나 만들기 쉬운 것들, 조리 랭크 올리기에 필요한 것들을 요약 정리한 것입니다. 누가해도 간단한 레시피(북해): 보르도, 팔마, 앤트워프 등에서 판매 1 랭크: 밀 -> 밀가루 (앤트워프, 포르투 등) 과자 만드는 법 초급편(북해): 암스테르담에서 7천 두캇 2 랭크 : 달걀, 밀가루 -> 비스켓 처음 굽는 빵(지중해): 피사에서 7천 두캇 2 랭크: 달걀, 밀가루 ->베이글 축산 비법서 새의 장(지중해): 칼비, 라구사에서 8천 두캇 1 랭크: 닭, 오리 -> 달걀 (보관 스킬에 의해 다시 닭 오리로 증식가능) 3 랭크: 닭 -> 닭고기(마늘닭 통구이 재료) 3 랭크: 오리..
PuTTY를 이용해 리눅스(centos)에 SSH 접속할 때 윈도우 컴퓨터에 개인키를 저장해두고 리눅스 서버에 공개키를 저장해서 패스워드 입력 없이 접속하는 방법을 소개합니다. 이 방법은 개인키를 유출되지만 않는다면 아이디 패스워드 로그인 방법보다 보안적으로 안전합니다. 그래서 개인키는 로컬 PC에 저장하되 공용 PC에는 저장하면 안됩니다. PuTTY 와 PuTTYgen 다운로드 링크: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 1. 다운 받은 PuTTYgen 를 실행하고 Generate 버튼을 누릅니다. 마우스를 포인터를 빈칸에서 움직이면 RSA키 쌍이 생성됩니다. 안 움직이면 진행이 안됩니다. 난수를 생성하기 위한 작업입니다. 2..
태그 기반 커스텀 태그는 클래스 기반 커스텀 태그를 선행으로 학습해야 이해하기 쉽습니다. jsp파일에 커스텀 태그 기능을 구현한 다음, 확장자를 tag로 지정하면 하나의 커스텀 태그가 작성된 것입니다. 이 .tag파일이 태그 핸들러 클래스 파일(.class)로 변환되어 동작합니다. 커스텀 태그와 .tag 파일이 하나씩 일대일로 매핑되는것입니다. 또한 .tag파일의 파일명이 jsp페이지에서 사용하는 커스텀 태그의 이름이됩니다. 태그 기반 커스텀 태그는 아래와 같은 절차로 사용합니다. 1. tag 파일을 작성합니다. 저장 위치는 /WEB-INF/tags 폴더 혹은 그 하위 폴더만 가능합니다. 2. jsp 페이지에서 커스텀 태그를 사용하기 위한 taglib 지시자를 선언합니다. 3. 태그 파일을 커스텀 태그로..
커스텀 태그 JSP1.2 버전과의 차이점은 아래와 같습니다. SimpleTag 인터페이스 추가 SimpleTagSupport 클래스 제공 doTag() 메소드로 태그 관련 메소드 통일 JspFragment를 이용한 body 전달 동적 Attribute 추가 방법 제공 기본 예제 net.aacii.customTag 패키지에 MyCustomTag2.java 파일을 생서합니다. package net.aacii.customTag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.SimpleTagSupport; public class MyCustomTag2 extends SimpleTa..
커스텀 태그 태그의 기능을 자바 클래스에서 구현한 다음 jsp 태그와 연결하여 사용할 수 있습니다. 클래스 기반 커스텀 태그를 사용하려면 아래와 같은 요소들이 필요합니다. 1. 태그 핸들러 클래스: 태그가 수행해야 하는 실행문을 구현한 클래스 2. 태그 라이브러리 디스크립터(TLD): xml파일로 확장자를 .tld 하여 클래스 파일과 커스텀 태그를 매칭 3. TLD파일 등록: jsp 컨테이너가 인식 할 수 있도록 web.xml이나 WEB-INF 폴더에 .tld 파일을 등록 4. taglib 지시자: jsp 페이지에서 커스텀 태그를 사용하기 위해서 taglib 지시자를 선언한 후 사용 태그 핸들러 클래스 javax.servlet.jsp.tagext 패키지에 태그 핸들러 클래스를 작성하기 위한 내용들이 있습..
ssh를 이용하면 원격지 컴퓨터에서 centos에 터미널 명령을 실행 시킬 수 있습니다. telnet에 비해 ssh는 암호화된 통신을 하므로 좀 더 안전하다고 할 수 있습니다. SSH설치 1. 루트 권한 획득 su - 2. SSH설치 yum install openssh 3. 서비스 시작 systemctl start sshd.service 4. 서비스 상태보기 systemctl status sshd.service 5. 부팅시 서비스 자동 시작 systemctl enable sshd.service 6. 부팅시 서비스 시작하지 않음 systemctl disable sshd.service 7. 부팅시 실행되는 서비스인지 확인 systemctl is-enabled sshd 8. 서비스 목록 보기 systemctl..