본문 바로가기

전체보기111

MVC (Model View Controller) 재스퍼를 사용해서 서블릿을 만들 수 있는데, 만들 때에는 jsp 파일에 코드 블록을 넣어 작업한다. 하지만 jsp를 잘못 만들면 코드 블록이 상당히 복잡해지고, 유지·보수가 어려울 수 있다. (스파게티 코드) 이러한 점을 개선하고자 나온 게 MVC이다. MVC란 애플리케이션을 세 가지의 역할로 구분한 개발 방법론이다. Model View Controller -Model (출력 데이터) : 어떠한 동작을 수행하는 코드로, 사용자에게 어떻게 보일지에 대해 신경쓰지 않아도 된다. -View (출력 담당 / HTML 코드) : MVC에서 모델은 여러 개의 뷰(view)를 가질 수 있다. 뷰는 모델에게 질의를 하여 모델로 부터 값을 가져와 사용자에게 보여준다. -Controller (입력·제어 담당 / JAVA .. 2020. 4. 29.
Collections Framework (Set, List, Map) Collections Framework는 배열(연관된 데이터를 그룹핑하여 편리하게 관리하는 것)이 갖고 있는 한계나 문제를 해결하기 위해 나왔다. (자바 java.util 패키지에서 제공) 왜 컬렉션 프레임워크를 사용할까? 어떤 자료형이든 담을 수 있고 데이터의 추가 및 삭제가 자유롭기 때문이다. 우선, 배열 코드와 ArrayList 배열 코드의 차이를 비교해보자. (생활코딩 참조) import java.util.ArryList; public class Program { public static void main(String[] args) { String[] arryObj = new String[2]; arryObj[0] = "1"; arryObj[1] = "2"; //arryObj[2] = "3"; /.. 2020. 4. 27.
Servlet(서블릿)과 JSP(자바 서버 페이지), JSP 코드 블럭과 내장객체 Servlet (서블릿) JAVA 소스코드 내에 HTML 소스코드 삽입 서블릿(Servlet)은 자바 웹 어플리케이션의 구성요소 중 동적인 처리를 하는 프로그램의 역할을 한다. (서버에서 웹페이지를 생성하거나 데이터 처리를 수행하기 위해 자바(EE: JAVA Platform Enterprise Edition)로 작성된 프로그램) 작성된 자바 소스 코드를 서블릿 컨테이너인 톰캣을 사용하면 자동으로 HTML로 변환해 준다. - WAS에 동작하는 JAVA 클래스 - HttpServelet 클래스를 상속받아 코드 작성 하지만 HTML 문서 디자인 등이 바뀔 때마다 .class 파일을 수정 및 컴파일 해야 하고, 웹 서버를 재가동하는 일이 잦아지는 단점이 있어 JSP와 적절히 사용할 필요가 있다. JSP (자바 .. 2020. 4. 25.
JSP관련 용어 정의 WAS (Web Application Server) 인터넷 상의 HTTP를 통해 컴퓨터나 장치에 어플리케이션을 수행해주는 소프트웨어 엔진이다. DB 조회와 같은 로직 처리를 요구하는 동적인 컨텐츠를 (서버와 함께 수행) 수행하여 제공한다. WAS = Web Server + Container (객체를 관리하는 Container는 JSP와 Servlet을 관리한다) 정적인 컨텐츠를 제공하는 일반적인 웹 서버와 구별된다. Web Server 웹 브라우저인 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠를 수행하여 제공하는데, 요청 수행 시에 이미 있는 자료를 바로 제공한다. 하지만 동적인 컨텐츠를 제공 할 필요가 있을 시에는 클라이언트의 요청(request)을 WAS에 보내고, 처리한 결과를 리턴받아 클라.. 2020. 4. 24.
JOIN DBMS > 데이터 집중화 > (데이터 분리/관리) > 참초 > 조인 JOIN은 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것이다. 조인은 테이블로서 저장되거나, 그 자체로 이용할 수 있는 결과를 만들어 낸다. 2개의 테이블에서 각각의 공통값을 이용함으로써 필드를 조합하는 수단이 된다. (위키피디아 참조) 분리되있는 데이터를 조인함으로서 원하는 데이터를 조회할 수 있는데 조회할 때, 관계된 데이터는 조인하고 그렇지 않은 객체는 아우터 조인을 작성하여 조회한다. JOIN의 종류 INNER JOIN OUTER JOIN CROSS JOIN SELF JOIN LEFT / RIGHT/ FULL ; 왼쪽/오른쪽을 기준으로 조인할지 방향을 정하거나, 전부 아우터 조인 할 것인지 정할 때.. 2020. 4. 17.
SQL 페이징 우선 ROWNUM 1~10까지 출력 SELECT * FROM( SELECT ROWNUM, N.* FROM (SELECT * FROM NOTICE ORDER BY REGDATE DESC) N ) WHERE ROWNUM BETWEEN 1 AND 10; 다음 페이지 분리를 위해서 서브쿼리 -- ROWNUM 11~20 페이징 -- MEMBER에 NAME 칼럼을 (MN으로 별칭써서) 추가 = JOIN SELECT * FROM( SELECT ROWNUM NUM, N.* FROM ( SELECT NOTICE.*, MEMBER.NAME MN FROM NOTICE LEFT JOIN MEMBER ON MEMBER.ID = NOTICE.WRITER_ID ORDER BY NOTICE.REGDATE DESC ) N ) WHER.. 2020. 4. 16.
집합 연산자로 데이터 레코드를 합하여 출력 (UNION, UNION ALL, INTERSECT, MINUS) UNION : 두 집합(쿼리문)의 결과를 하나로 합하여 출력 (중복 값 제거하고 정렬) 통합 검색 시 사용 UNION ALL : 두 집합의 결과를 하나로 합하여 출력 (중복 값 제거 안하고 모두 출력, 정렬X) INTERSECT : 두 집합의 교집합 결과를 정렬하여 출력 (중복 값 제거 ; 두 집합 or 데이터 내 중복 값) MINUS : 두 집합의 차집합 결과를 정렬하여 출력 (큰 집합에서 작은 집합을 빼야하므로 순서 중요) UNION / UNION ALL 사용 시 주의! 두 집합의 SELECT 절에 오는 컬럼의 데이터 타입이 같아야 하고, 컬럼의 개수가 같아야 함 사용 : 우선 테이블별로 조회해서 개수를 확인 후, 테이블을 합한 결과를 확인 해보자 SELECT ID, AGE FROM MEMBER; -.. 2020. 4. 16.
DISTINCT 절과 GROUP BY 절의 차이 DISTINCT 절과 GROUP BY 절 모두 테이블 SELECT 시, 조회 결과를 그룹으로 묶어서 그 결과를 가져오는 역활을 한다. 두 구절은 모두 그룹을 지어준다는 공통점이 있지만, 정렬의 유무에서 차이가 있다. DISTINCT는 결과물을 정렬하지 않고, GROUP BY는 결과물을 정렬해서 표현한다! 따라서, 조회 결과를 그룹으로 묶어서 결과를 가져올 때 정렬이 필요한 경우는 GROUP BY를, 정렬이 필요하지 않는 경우에는 DISTINCT절을 사용하면 된다. 문법 : --GROUP BY SELECT 칼럼 FROM 테이블 GROUP BY 칼럼명 --DISTINCT SELECT DISTINCT 칼럼명 FROM 테이블명 예제 : 테이블(MY_TABLE)에 나이(AGE)로 그룹을 지어 조회 --GROUP .. 2020. 4. 16.
ROWNUM / OUDER BY / 순위를 반환하는 함수 ROW_NUMBER, RANK, DENSE_RANK ROWNUM : 쿼리 내에서 사용 가능한 가상 컬럼. (확인하고자 하는 데이터에 가상으로 번호를 매김) 예문 : 회원 목목에서 상위 5명만 조회 (상위 5개의 데이터) SELECT ROWNUM, NOTICE.* FROM NOTICE WHERE ROWNUM BETWEEN 1 AND 5; ORDER BY : 특정 값에 대한 순위를 매기고 싶을 때 사용 - ASC 를 함께 쓰면 오름차순 - DESC 를 함께 쓰면 내림차순 예문 : SELECT ROWNUM, N.* FROM ( SELECT * FROM NOTICE ORDER BY REGDATE DESC ) N; ORDER BY 절을 사용해서 특정 값에 대한 순위를 매겼을 때, 동일한 등수가 나온 경우에는 ROW_NUMBER / RANK / DENSE_RANK .. 2020. 4. 13.
서브쿼리와 서브쿼리의 중첩 / 쿼리문 작성 및 실행 순서 서브쿼리 Sub Query 메인 쿼리문 안에 서브 쿼리문을 씀 (메인쿼리가 서브쿼리를 포함하는 종속적인 관계) 규칙 - 서브쿼리가 제일 먼저 실행 - 서브쿼리는 소괄호로 감싸서 사용 - 서브쿼리 안에 ORDER BY절 사용 불가 - 연산자 오른쪽에 사용해야 함 예문 : SELECT * FROM (SELECT * FROM NOTICE); 예문 (구절의 순서를 바꿔야 하는 경우) : SELECT * FROM( SELECT N.* FROM (SELECT * FROM NOTICE ORDER BY REGDATE DESC) N ) WHERE ROWNUM BETWEEN 1 AND 10; 쿼리문 작성/실행 순서 - 작성 순서 : SELECT > FROM > WHERE > GROUP BY > HAVING > ORDER .. 2020. 4. 13.
관계 연산자, 패턴 연산자, 정규 표현식 관계 연산자 : NOT, AND, OR, BETWEEN, IN OR은 그 중에 하나만 만족해도 조회 IN은 여러개의 '=' / 지정 값 조회 AND는 모두 만족해야 조회 / 연속된 숫자 표현 SELECT * FROM NOTICE WHERE ID = 1700; SELECT * FROM NOTICE WHERE HIT BETWEEN 0 AND 5; -- 조회수가 0~5인 데이터 조회 FROM NOTICE WHERE HIT IN (0, 5, 7); -- 조회수가 0 또는 5 또는 7인 것 조회 SELECT * FROM NOTICE WHERE HIT NOT IN (0, 5, 7); -- 지정한 값 제외하고 조회 패턴 연산자 : LIKE, %, _ : 검색을 위한 연산자 LIKE 연산자 : 대입연산자(=) 없이 기.. 2020. 4. 10.
[Eclipse] 이클립스 버전 변경 설치된 이클립스를 사용 중에 다른 버전을 사용하고자 할 때, 버전을 선택하여 사용할 수 있다 1. JRE System Library 우측마우스 클릭 → Properties 2. Execution environment 버전 선택 → Apply and Close! 2020. 4. 8.
클래스를 jar 파일로 저장 / 사용을 위해 불러오는 과정 JAR (Java Archive, 자바 아카이브) 여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다. 클래스를 재사용하기 위해 jar 파일로 배포하는 과정 1. 바꾸려는 클래스 파일에 우측마우스 클릭 → Export.. 클릭 2. Export → Java 폴더 → JAR file 선택 → Next 클릭 3. 변경할 패키지의 클래스 파일을 선택 → JAR file을 저장할 브라우저 선택 → Finish! 재사용할 클래스에 jar 파일을 참조하는 과정 1. 사용할 프로젝트의 Library에 우측마우스 클릭 → Build path → Configure.. 2020. 4. 7.
[반복문 for] 알파벳 및 구구단 출력, 누적 연산 알파벳 대문자 A부터 Z까지 출력 for(char b = 'A'; b ='a'; a--) { System.out.println(a); } 1부터 7까지 출력 for(int a = 0; a 2020. 4. 7.
데이터를 삽입하는 명령어 DML DML (Data Manipulation Language) 데이터 조작어 종류 : SELECT / INSERT / UPDATE / DELETE SELECT 데이터를 추출하는 명령어 SELECT * FROM MEMBER; 모든 필드(컬럼) 값을 추출 SELECT ID, NAME, PWD FROM MEMBER; 원하는 컬럼만 원하는 순서대로 추출 SELECT ID AS USER_ID, NAME, PWD AS PASSWORD FROM MEMBER; 원하는 컬럼만 원하는 별칭으로 조회 INSERT 데이터를 입력하는 명령어 INSERT 사용 : INSERT INTO VALUES NULL 값 = 입력을 안한 값 INSERT INTO TABLENAME VALUES ('IDNN', '111', '여', '000-000.. 2020. 4. 7.
반응형