TODAY TOTAL
분류 전체보기 (78)
[TOEIC] Word(Continue adding...)

 

 

21.07.18

 

resume 이력서
opening 공석,결원
applicant 지원자,신청자
requirement 필요조건,요건
meet 만족시키다
qualified 자격 있는, 적격의
candidate 후보자,지원자
confidence 확신,자신; 신임
highly 매우,대단히
professional 전문적인

 

 

For Mobile

 

이력서
공석,결원
지원자,신청자
필요조건,요건
만족시키다
자격 있는, 적격의
후보자,지원자
확신,자신; 신임
매우,대단히
전문적인

 


21.

  Comments,     Trackbacks
[Oracle] 2. 데이터베이스 객체 - 테이블

 

대표적인 DB 객체

 

DB 객체 설명
테이블 데이터를 담고 있는 객체
하나 이상의 테이블을 연결해 마치 테이블인 것처럼 사용하는 객체
인덱스 테이블에 있는 데이터를 빠르게 찾기 위한 객체
시노님 데이터베이스 객체에 대한 별칭을 부여한 객체
시퀀스 일련번호 채번을 할 때 사용되는 객체
함수 특정 연산을 하고 값을 반환하는 객체
프로시저 함수와 비슷하지만 값을 반환하지는 않는 객체
패키지 용도에 맞게 함수나 프로시저를 하나로 묶어 놓은 객체

* 채번 : 번호를 새로 부여하다

 

 

@ 테이블

     데이터를 넣고 수정하고 삭제하는 [즉, 데이터를 담고 있는 객체가 테이블이다]

 

 

테이블 생성

 

CREATE TABLE 테이블명 (
        컬럼1 컬럼1_데이터타입 [NULL, NOT NULL]
        ,...
        
    )[TABLESPACE 테이블스페이명];
  CREATE TABLE ORDER_ITEMS (
           ORDER_ID	    NUMBER(12,0),
           LINE_ITEM_ID NUMBER(3,0) ,
           ORDER_MODE	  VARCHAR2(8 BYTE),
           PRODUCT_ID   NUMBER(3,0), 
           UNIT_PRICE   NUMBER(8,2) DEFAULT 0, 
           QUANTITY     NUMBER(8,0) DEFAULT 0,
           CONSTRAINT PK_ORDER_ITEMS PRIMARY KEY (ORDER_ID, LINE_ITEM_ID)
           );

여기서 CONSTRAINT = 제약 조건 , PK = 기본키

 

 

 

되도록 제공해주는 키워드(CREATE, TABLE ,TABLESPACE)들은 대문자로!! 강제는 아님

 

여기서 컬럼은 

 

이름,취미,직업이 컬럼

문자 데이터 타입

 

데이터타입 설명
CHAR(크기) 고정길이 문자, 최대 2000byte, default value은 1bye
VARCHAR2(크기) 가변길이 문자, 최대 4000byte, default value은 1bye
NCHAR(크기) 고정길이 유니코드 문자, 최대 2000byte, default value은 1
NVARCHAR2(크기) 가변길이 유니코드 문자, 최대 4000byte, default value은 1
LONG 최대 2GB 크기의 가변길이 문자형, 잘 사용하지 않음

 

ex) 특정 컬럼을 VARCHAR2(10)으로 선언하면, 10byte까지 데이터를 입력할 수 있다. 근데 여기서 abc라 입력하면 가변이라서 3byte 컬럼길이가 된다. 하지만 CHAR형은 abc 입력하면 7byte가 남는다. 말그대로 고정이라 7byte가 낭비.

저장 공간 효율화를 위해 CHAR보다는 VARCHAR2가 낫다.

 

숫자 데이터 타입

 

데이터 타입 설명
NUMBER[(p,[s])] 가변숫자, p(1~38, default value 38 ) s(-84 ~ 127,default value 0) 최대 22byte
FLOAT[(p)] NUMBER의 하위 타입, p는 1~128, default value 128, 최대 22byte
BINARY_FLOAT 32비트 부동소수점 수, 최대 4byte
BINARY_DOUBLE 64비트 부동소수점 수, 최대 8byte

4개가 있지만 대부분 NUMBER만 쓴다.

 

날짜 데이터 타입

 

데이터 타입 설명
DATE 9999년 12월 31일, 연, 월, 일, 시, 분, 초까지 입력 가능
TIMESTAMP 연도, 월, 일, 시, 분, 초는 물론 밀리초까지 입력 가능

 

LOB 데이터 타입

 

데이터 타입 설명
CLOB 문자형 대용량 객체, 고정길이와 가변길이 문자 집합 지원
NCLOB 유니코드를 포함 문자형 대용량 객체
BLOB 이진형 대용량 객체
BFILE 대용량 이진 파일에 대한 로케이터

 

 

NULL

 

* default value이 'NULL' 이라서 별도의 값을 지정 안해주면 NULL을 허용하게 된다. 허용하지 않을려면 'NOT NULL'

 

하지만 NULL로 인한 오류가 나올 수 있기 떄문에 허용을 할지 안할지 꼭 생각하고 설정해야 한다.

 

UNIQUE

 

컬럼명 데이터타입 UNIQUE
혹은
CONSTRAINTS 제약조건명 UNIQUE (컬럼명, ...)
CREATE TABLE ex (
    COL_UNIQUE_NULL    VARCHAR2(10) UNIQUE,
    COL_UNIQUE_NNULL   VARCHAR2(10) UNIQUE NOT NULL, 
    COL_UNIQUE         VARCHAR2(10), 
    CONSTRAINTS unique_nm1 UNIQUE ( COL_UNIQUE)
);

* UNIQUE 비교 대상에서 NULL은 제외 된다.

 

PRIMARY KEY(기본키)

 

기본키는 (NOT NULL + UNIQUE) 속성을 동시에 가진 제약조건이다. 반드시 한 개!

컬럼명 데이터타입 PRIMARY KEY
혹은
CONSTRAINTS 제약조건명 PRIMARY KEY(컬럼명, ...)

 

FOREIGN KEY(외래키)

 

외래키는 테이블 간의 참조 데이터 무결성을 위한 제약조건.

*반드시 참조하는 테이블이 먼저 생성되어야 하며, 참조키가 참조 테이블의 기본키로 만들어져야 한다.

CONSTRAINT 외래키명 FOREIGN KEY(컬럼명, ...)

REFERENCES 참조 테이블(참조 테이블 컬럼명, ...)

 

DROP

DROP TABLE 테이블명;

 

ALTER(변경)

 

컬럼, 제약조건 등 변경할때 쓴다. 누구나 실수는 할 수 있는 거니깐

* 기본키 뿐만 아니라 다른 제약조건도 고유의 제약조건명이 존재하므로 추가나 삭제가 가능하다.

 

--컬럼명 변경 : col1 컬럼 이름을 col11으로 변경

ALTER TABLE ex2_10 RENAME COLUMN Col1 TO Col11;

DESC ex2_10;

입력하면 컬럼명을 확인 할 수 있다.

 

--컬럼 타입 변경 : col2 컬럼을 VARCHAR2(10)에서 VARCHAR2(30)으로 변경

ALTER TABLE ex2_10 MODIFY Col2 VARCHAR2(30);

 

 

--컬럼 추가 : col3 NUMBER 타입으로 신규 생성

ALTER TABLE ex2_10 ADD Col3 NUMBER;

 

--컬럼삭제 : col3 컬럼을 삭제

ALTER TABLE ex2_10 DROP COLUMN Col3 ;

 

--제약조건 추가 : col11에 기본키 추가

ALTER TABLE ex2_10 ADD CONSTRAINTS pk_ex2_10 PRIMARY KEY (col11);

 

--제약조건 삭제 : col11에서 기본키 삭제

ALTER TABLE ex2_10 DROP CONSTRAINTS pk_ex2_10;

 

테이블 복사

 

프로젝트 하다보면 복사 할 일 자주 발생!

*백업용,테스트용으로 많이 복사 한다.

 

CREATE TABLE ex2_9_1 AS
SELECT *
FROM ex2_9;

이 구문을 사용하면 테이블 구조와 데이터가 모두 신규 테이블로 복사된다.

'Database > Oracle' 카테고리의 다른 글

[Oracle] 숫자 함수  (0) 2021.08.26
[Oracle] 1. 오라클 데이터베이스 11g 설치  (0) 2021.06.09
[Oracle] 0. 첫걸음에 대한 준비  (0) 2021.06.08
  Comments,     Trackbacks
[정보처리기사] 7. 인터페이스 설계 (간단하게)

 

 

요구공학의 개념

 

사용자 요구사항에 대한 도출,분석,명세, 확인 및 검증하는 구조화된 활동이다.

 

 

요구공학의 목적은 의사소통의 수단 제공, 공통된 이해를 설정, 불필요한 비용을 절감, 변경 추적을 가능하게 하는 것

 

 

요구사항 확인 및 검증 단계의 주요 기법

 

정형 기술 검통 활용

동료검토 명세서 작성자가 설명하고 이해관계자가 설명을 들으면 결함을 발견하는 형태로 진행
워크스루 검토자료를 회의 전에 배포해서 사전검토한 후 짦은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화
인스펙션 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토 방법

 

 

미들웨어 솔루션의 개념 

 

컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있도록 해주고 이에 대한 관리를 도와주는 소프트웨어이다.

 

구분 설명
DB 미들웨어 애플리케이션과 DB간에 통신을 원할하게
원격 프로시저 호출(RPC) 원격 프로시저를 로컬 프로시저처럼 호출
메시지 지향 미들웨어(MOM) 비동기형 메시지 전달 방식 미들웨어
트랜젝션 처리 모니터(TP) 트랙젝션을 처리, 감시하는 미들웨어
주로 사용자가 많고, 안정적, 즉각 처리 가능
레거시웨어(기존의 시스템) 새로운 업데이트된 기능을 덧붙이고자 할때 사용
객체 기반 미들웨어(ORB) 코바(CORBA) 표준 스펙을 구현한 객체지향 미들웨어
WAS(Web Application Server) 다른 이기종 시스템과의 애플리케이션을 연동하는 미들웨어
웹 서버 기능뿐만 아니라 자바, 컴포넌트 구현 가능
  Comments,     Trackbacks
@Annotation 종류 사전

 

계속 수정

 

---------------

 

@ RunWith :  jUnit 프레임워크의 테스트 실행방법을 확장할 때 사용하는 어노테이션

 

@Autowired : 스프링 DI에서 사용되는 특별한 어노테이션. 해당 변수에 자동으로 빈(Bean)을 매핑

 

@Test : 이 어노테이션에 선언된 메서드는 테스트를 수행하는 메소드가 된다.

 

@BeforeClass : @테스트 메소드보다 먼저 한번만 수행되어야 할 경우에 사용하면 된다.

 

@AfterClass : @테스트 메소드보다 나중에 한번만 수행되어야 할 경우에 사용하면 된다.

 

@ContextConfiguration : 스프링 빈(Bean) 설정 파일의 위치를 지정할 때 사용되는 어노테이션

 

@Log4j : 로그문의 출력을 다양한 대상으로 할 수 있도록 도와주는 어노테이션

 

@Data : Lombok에서 가장 자주 사용되는 어노테이션. ToString, EqualsAndHashCode,Getter,Setter등을

           모두 결합한 형태로 한번에 자주 사용되는 모든 메서드들을 생성 할 수 있다. 짱

 

@Controller : Controller의 역할을 수행 한다고 명시. 추가하게 되면 스프링의 Bean으로 인식

 

@RequestMapping : 요청에 대해 어떤 Controller. 어떤 메서드가 처리할지 맵핑하기 위한 어노테이션

 

@Allargsconstructor : 모든 파라미터를 이용하는 생성자

 

@Service : 계층 구조상 주로 비즈니스 영역을 담당하는 객체임을 표시하기 위해서 사용

 

 

'Back-End > 정의 및 용어' 카테고리의 다른 글

용어 사전 (계속 추가 중)  (0) 2021.07.16
VO, DAO, DTO, CRUD가 무엇일까  (0) 2021.07.15
  Comments,     Trackbacks
[Spring] 4. MVC구조 중 Controller

 

MVC 중 Controller.

 

데이터와 사용자 인터페이스 요소들을 잇는 징검다리 역할

 

사용자가 데이터를 클릭하거나 수정에 대한 이벤트를 처리!

 

모델이나 뷰에 대해서 잘 알어야 하는데 변경을 외부로 알리고 수신 하는 것을 중재

 

하는 역할을 하는게 컨트롤러

 

변경에 대한 모니터링 역할이기 때문에 메인 로직은 컨트롤러가 담당합니다.

 

 

 

 

 

HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 필요한 기능 구현

다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능

GET 방식, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 처리 가능

상속/인터페이스 방식 대신에 어노테이션만으로도 필요한 설정 가능

 

 

@Controller - 해당 클래스의 인스턴스를 스프링의 빈으로 등록하고

                   컨트롤러로 사용

<component-scan>과 같이 활용

 

@RequestMapping - 특정한 URI에 대한 처리를 해당 컨트롤러나

                             메서드에서 처리

 

package org.zerock.controller;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
@RequestMapping("/sample/*")
public class SampleController

 

컨트롤러의 파라미터 수집

 

 

스프링 MVC의 컨트롤러는 메서드의 파라미터를 자동으로 수집, 변환하는 편리한 기능을 제공

Java Beans 규칙에 맞게 작성되어야 한다.

생성자가 없거나 빈 생성자

올바른 규칙으로 만들어진 Getter/Setter  

 

@GetMapping("/ex01")
  public String ex01(SampleDTO dto) {
 
    log.info("" + dto);
 
    return "ex01";
  }
@Data
public class SampleDTO {
 
  private String name;
  private int age;
}
@GetMapping("/ex02List")
  public String ex02List(@RequestParam("ids")ArrayList<String> ids) {
  
 //리스트,배열
    
    log.info("ids: " + ids);
    
    return "ex02List";
}

 

 

@InitBinder - Spring Validator를 사용 시 @Valid annotation으로 검증이 필                       요한 객체를 가져오기 전에 수행할 method를 지정해주는                             annotation이다.

 

public class TodoDTO {
 
  private String title;
  private Date dueDate; //날짜 타입의 변환 필요 
}
@InitBinder
  public void initBinder(WebDataBinder binder) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
  }
 
/*
...
*/
 
  @GetMapping("/ex03")
  public String ex03(TodoDTO todo) {
    log.info("todo: " + todo);
    return "ex02";
  }

 

 

Controller의 리턴 타입

 

 

String: jsp를 이용하는 경우에는 jsp 파일의 경로와 파일이름을 나타내기 위해서 사용

void: 호출하는 URL과 동일한 이름의 jsp를 의미

VO, DTO 타입: 주로 JSON 타입의 데이터를 만들어서 반환하는 용도로 사용 (추가적인 라이브러리 필요).

ResponseEntity 타입: response할 때 Http 헤더 정보와 내용을 가공하는 용도로 사용 (추가적인 라이브러리 필요).

Model, ModelAndView: Model로 데이터를 반환하거나 화면까지 같이 지정하는 경우에 사용 (최근에는 많이 사용하지 않습니다.).

HttpHeaders: 응답에 내용 없이 Http 헤더 메시지만 전달하는 용도로 사용

 

 

Controller의 예외(Exception)처리

 

 

@ExceptionHandler @ControllerAdvice를 이용한 처리

@ResponseEntity를 이용하는 예외 메시지 구성

 

 

@ControllerAdvice - 예외처리와 원래의 컨트롤러가 혼합된 형태의 클래스가                              작성되는 방식

                          - @ExceptionHandler는 해당 메서드가 ()들어가는 예외 타                              입을 처리한다는 것을 의미

 

@ControllerAdvice
@Log4j
public class CommonExceptionAdvice {
 
  @ExceptionHandler(Exception.class)
  public String except(Exception ex, Model model) {
 
    log.error("Exception ......." + ex.getMessage());
    model.addAttribute("exception", ex);
    log.error(model);
    return "error_page";
  }
}

 

 

'Back-End > Spring' 카테고리의 다른 글

[Spring] 페이징 처리 시 쿼리문  (0) 2021.07.24
[Spring] 5. 프로젝트의 구성  (0) 2021.07.18
[Spring] 3. MVC구조 기본  (0) 2021.07.16
[Spring] 2. 의존성 주입 이해하기  (0) 2021.07.13
[Spring] 1. sts3 설치 및 설정  (0) 2021.07.08
  Comments,     Trackbacks
[JSP] 회원 정보 만들기 전

 

IMemberServicefreeEdit -> IMemberService

 

 

DB에서 회원정보를 받아오고 Dao에서 어떻게 받아올지를 쿼리로 작성하고

VO에서 그 작성한 것을 Setter로 받아서 Getter로 넘겨준다.

 

Service는 예를 들면 은행에 있는 은행원이라고 생각하면 된다.

(Service인터페이스는 은행원 업무)

'Back-End > JSP' 카테고리의 다른 글

[JSP] 회원 정보 만들기-2  (0) 2021.07.20
[JSP] 회원 정보 만들기-1  (0) 2021.07.20
[JSP] 9. 표준 태그 라이브러리(JSTL)  (0) 2021.06.20
[JSP] 7. 표현 언어(Expression Language)  (1) 2021.06.19
[JSP] 6. 쿠키와 세션  (1) 2021.06.12
  Comments,     Trackbacks
용어 사전 (계속 추가 중)

컨트롤 + F로 찾기

잘 모르는 거나 깜빡한 것들 

 

----------------------------------------------------------------------------------------------------------------------

 


Class.forName() : 인자값으로 드라이브의 경로를 받아서 해당 클래스의 인스턴스 생성하고 초기화시킨다.

StringBuilder : 변경할 수 있는 문자열을 나타냅니다. 이 클래스는 상속될 수 없습니다

equals : 문자열은 ==이 아니라 equals이다.

request : 요청 정보에서 헤더를 읽어오는 기능을 제공

response : 응답 정보에 헤더를 추가하는 기능을 제공 

 

forward : jsp(또는 서블릿) 내부적으로 제어권을 넘기고, 웹어플리케이션 내부에서만 이동할 수 있습니다.


sendRedirect :  특정주소를 호출할 것을 요청하는 응답신호를 브라우저에게 넘기고, 외내부 상관없이 이동 할 수 있다.

 

setAttribute(name,value) :  지정된 요소의 속성 값을 설정합니다. 속성이 이미 있는 경우 값이 업데이트됩니다. 

                                             그렇지 않으면 지정된 이름과 값으로 새 속성이 추가됩니다.


append() : 선택된 요소의 마지막에 새로운 HTML 요소나 콘텐츠를 추가한다.

createStatement : s데이터베이스로 SQL 문을 보내기 위한 SQLServerStatement 개체를 만듭니다.

 

createElement() : 괄호 안에  쓴 걸 요소로 만든다. 예를 들어 'h1' 넣으면 <h1></h1>이 생성된다.


ExecuteQuery : . 수행결과로 ResultSet 객체의 값을 반환합니다. SELECT 구문을 수행할 때 사용되는 함수입니다.

ExecuteUpdate : 수행결과로 Int 타입의 값을 반환합니다. SELECT 구문을 제외한 다른 구문을 수행할 때 사용되는 함수입니다.

Execute : 수행결과로 Boolean 타입의 값을 반환합니다. 모든 구문을 수행할 수 있습니다.

ResultSet : Select의 결과를 저장하는 객체

 

element.innerText : 이 속성은 element 안의 text 값들만을 가져옵니다.

 

element.innerHTML : innerText와는 달리 innerHTML은 element 안의 HTML이나 XML을 가져옵니다.

 

 

 

'Back-End > 정의 및 용어' 카테고리의 다른 글

@Annotation 종류 사전  (0) 2021.07.17
VO, DAO, DTO, CRUD가 무엇일까  (0) 2021.07.15
  Comments,     Trackbacks
[Spring] 3. MVC구조 기본

 

 

MVC는 Model, View, Contrller를 합친 말

 

Model

- 어플리케이션의 데이터이며 모든 데이터 정보를 가공하여 가지고 있는 컴포넌트이다.

 

View

- 시각적인 UI 요소를 지칭하는 용어

 

Controller

- Model과 VIew를 연결해주는 역할

 

 

대부분의 서블릿 기반 프레임워크들이 사용하는 방식

데이터와 처리, 화면을 분리하는 방식

웹어서는 Model2 방식으로 표현 

 

스프링 MVC의 기본 사상

 

- 서블릿 기반이긴 하지만 한 단계 더 추상화 된 수준의 개발 지향한다.

- 서블릿 API없이도 개발이 가능한 수준

 

개발자는 Servlet/JSP의 API에 신경 쓰지 않고 웹 어플리케이션을 제작

-----------------------------------------------------------------------------

Spring MVC는 내부적으로 Servlet/JSP 처리

 

 

Model2 방식과 스프링 MVC

 

MVC의 기본 흐름 

 

 

  1. 클라이언트가 서버에 요청을 하면, front controller인 DispatcherServlet 클래스가 요청을 받는다.
  2. DispatcherServlet는 프로젝트 파일 내의 servlet-context.xml 파일의 @Controller 인자를 통해 등록한 요청 위임 컨트롤러를 찾아 매핑(mapping)된 컨트롤러가 존재하면 @RequestMapping을 통해 요청을 처리할 메소드로 이동한다.
  3. 컨트롤러는 해당 요청을 처리할 Service(서비스)를 받아 비즈니스로직을 서비스에게 위임한다.
  4. Service(서비스)는 요청에 필요한 작업을 수행하고, 요청에 대해 DB에 접근해야한다면 DAO에 요청하여 처리를 위임한다.
  5. DAO는 DB정보를 DTO를 통해 받아 서비스에게 전달한다.
  6. 서비스는 전달받은 데이터를 컨트롤러에게 전달한다.
  7. 컨트롤러는 Model(모델) 객체에게 요청에 맞는 View(뷰) 정보를 담아 DispatcherServlet에게 전송한다.
  8. DispatcherServlet는 ViewResolver에게 전달받은 View정보를 전달한다.
  9. ViewResolver는 응답할 View에 대한 JSP를 찾아 DispatcherServlet에게 전달한다.
  10. DispatcherServlet는 응답할 뷰의 Render를 지시하고 뷰는 로직을 처리한다.
  11. DispatcherServlet는 클라이언트에게 Rendering된 뷰를 응답하며 요청을 마친다.

 

위의 MVC의 처리순서는 가져왔습니다.

https://iri-kang.tistory.com/4

  Comments,     Trackbacks