2018. 12. 26. 21:59



Spring Boot logo, brand

Spring boot

 

1. 설정


JDK version : 1.8

STS version : STS 3.9.7 RELEASE

(Eclipse version : Eclipse Java EE IDE for Web Developers)



이클립스 사용시 필수 플러그인

l  Spring Tools 3(aka Spring Tool Suite 3(STS))

l  BuildShip Gradle Integration 3.0

l  Gradle IDE Pack 3.8x+1.0x


(Maven 사용시 Gradle 관련 플러그인을 설치하지 않아도 무방)

(이클립스가 아닌 따로 STS(Spring Tool Suite)를 설치해서 사용해도 무방) 

STS 설치 주소:https://spring.io/tools3/sts/all

 


Eclipse Properties Setting

 

이클립스 상단 > File > Properties

General > Content Types > Text 아래 항목을 확인하여 Default Encoding UTF-8로 되어 있는지 확인하고 ISO-8859-1등 다른 Encoding으로 되어 있는 것이 있으면 전부 UTF-8로 변경

 

General > Workspace > Text file encoding : Other/UTF-8 로 변경

General > Workspace > New text file line delimeter : Other/Unix 로 변경

Web > CSS Files > Encoding : UTF-8 (또는 ISO 10646/Unicode(UTF-8)) 로 변경합니다.

Web > HTML Files > Encoding : UTF-8 (또는 ISO 10646/Unicode(UTF-8)) 로 변경

Web > JavaServer Faces Tool > Validation : 모든 Validate... 항목 해제

Web > JSP Files > Encoding : UTF-8 (또는 ISO 10646/Unicode(UTF-8)) 로 변경

Web > JSP Files > Validate... 항목 해제

XML > XML Files > Encoding : UTF-8 (또는 ISO 10646/Unicode(UTF-8)) 로 변경

 

General > Show heap status : 체크

General > Compare/Patch > Ignore white space : 체크

General > Editors > Text Editors > Show line numbers : 체크

General > Editors > Text Editors > Spelling > Enable spell checking : 해제

Java > Editor > Save Actions > Perform the selected actions on save : 해제

JavaScript > Editor > Save Actions > Perform the selected actions on save : 해제

Validation > Suspend all validators : 체크



출처http://javafactory.tistory.com/1466?category=618816 [FreeLife의 저장소]


 



1-1. Spring boot 프로젝트 생성하기



Package explorer > 우클릭 > new > other > spring starter project 검색 후 NEXT



Name > 프로젝트 이름 입력

(위 사진은 캡쳐용이라서 SpringBootTest_3가 아닌 SpringBootTest_1로 생성 해주세요)


Type > maven 선택 (Gradle 사용자 Gradle 선택)

(gradle이 좋다고 하지만 아직 익숙하지 않아 maven으로 예제 진행하겠습니다.)


Packaging > war


Group > package명 입력 (x.y 형식)


Artifact > Artifact명 입력 (프로젝트 이름과 동일(자동))


NEXT




web> web 선택 (다른 옵션들도 있지만 최초 생성 시에는 선택하지 않는게 좋다고 한다)

Finish

 

프로젝트 생성 후 jar를 파일들을 모두 가져올 때까지 기다린다.


프로젝트 생성 완료 후 모습


프로젝트 선택, 우 클릭 > Run as > Spring boot App 실행



1-2. 웹 브라우저 > localhost:8080 입력 후 아래 페이지가 나오는지 확인한다.





 


tip. Server port 설정 방법



src/main/resources/Application properties > server.port:포트번호 입력



2. Database 연동하기


예제에서는 MariaDBMybatis를 사용하여 진행하겠습니다.



2-0. database와 table 생성


mariaDB 실행 후 다음 쿼리 문 입력.


[database 생성]

create database testdb;


[table 생성]

create table t_list(

       SEQ int,

       ITEMID varchar(50)

);


[data 입력]

insert into t_list values (1, "A");

insert into t_list values (2, "B");

insert into t_list values (3, "D");

insert into t_list values (4, "E");

insert into t_list values (5, "H");




2-1 pom.xml 작성하기


[pom.xml]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
        <!-- This is a web application -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
 
        <!-- Tomcat embedded container-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
        <!-- This is for JDBC -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
 
        
        <!-- JSTL for JSP -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId
        </dependency>
 
        <!-- Need this to compile JSP -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
 
        <!-- Need this to compile JSP, 
            tomcat-embed-jasper version is not working, no idea why -->
        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
            <version>4.6.1</version>
            <scope>provided</scope>
        </dependency>
 
        <!-- Optional, test for static content, bootstrap CSS-->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>3.3.7</version>
        </dependency>
        
        <!-- for mariaDB -->
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>1.3.2</version>
        </dependency>
        
        <!-- for mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.3.0</version>
        </dependency>
 
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.3</version>
        </dependency>
cs


위 dependency들을 pom.xml에 추가.



프로젝트 우클릭 후 Maven > Update Project 선택



해당 프로젝트 체크 후 'OK' 클릭 후 Update가 완료 될 때 까지 대기




2-2. application.properties 작성


2-2-1. datasource 설정


[src/main/resources > application.properties]

1
2
3
4
5
#mariaDB
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/데이터베이스명
spring.datasource.username=사용자명
spring.datasource.password=
cs


line 2 : jdbc 설정

line 3 : 데이터베이스 설정 (DB에서 create database dbname;로 만든 것)

line 4 : 사용자 설정

line 5 : 비밀번호 설정



2-2-2 jsp 설정


1
2
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
cs


line 1 : 경로 설정

line 2 : 확장자 설정



2-2-3. application.properties에 설정한 경로대로 WEB-INF 폴더 생성

[src/main/webapp/WEB-INF/jsp]



jsp 폴더 안에 main.jsp와 dbTest.jsp 생성


[main.jsp]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
 
 
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>MAIN PAGE</title>
</head>
<body>
    <h1>THIS IS TEST PAGE</h1>
</body>
</html>
cs



[dbTest.jsp]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
 
 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <table>
        <tr>
            <th>SEQ</th>
            <th>ITEMID</th>
        </tr>
 
 
        <c:forEach var="list" items="${list}">
            <tr>
                <td><p>${list.SEQ}</p></td>
                <td><p>${list.ITEMID}</p></td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>
cs




2-3. DatabaseConfig 작성


Database에 접속하고 session을 관리하는 class를 생성해야함. 실제 DB에 대한 부분.


[com.example.SpringBootTest.DatabaseConfig.java]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.example.SpringBootTest;
 
import javax.sql.DataSource;
 
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.transaction.annotation.EnableTransactionManagement;
 
@Configuration
@MapperScan(basePackages="com.example.SpringBootTest.dao")
@EnableTransactionManagement
public class DatabaseConfig {
 
    @Bean
    public  SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        sessionFactory.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
        return sessionFactory.getObject();
    }
    
    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) throws Exception {
      final SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);
      return sqlSessionTemplate;
    }
 
}
cs


@Configuration 

이 클래스는 Database 에 대한 접속 정보를 나타내고, 일반 Bean 이 나닌 Configuration으로 설정되어 있어야 한다. (실제로는 그 하위에 Bean을 두 개 더 생성한다)



@MapperScan(basePackages="com.simplify.sample")

최신 Spring Boot 에서는 dao를 dao라고 명시하지 않고, mapper 라는 이름으로 별도 정의하고 있다. 따라서 어떤 패키지에서 mapper들을 scan할 것인가를 최상위에 annotation으로 정의하여 주고 있다. 다중 Database에 접근해야 하는 경우, 이 클래스를 두 개를 만들어 두고 scan할 대상 mapper 들을 패키지 구조상에서 분리해 두는 것도 하나의 방법이라고 할 수 있다.



@EnableTransactionManagement

TransactionManager를 적용할 것인지에 대해 설정하는 annotation 이다.



@Bean SqlSessionFactory

DataSource 를 parameter로 받아, sqlSessionFactory를 생성하는 Bean 이다. 아래 있는 SqlSessionTemplate Bean 생성 시 인자로 넘겨주기 위해서 사용된다. 즉, 여기서 만들어진 기본정보, 설정값 등을 이용해서 SqlSessionTemplate를 만들게 되는 것이다.



.setMapperLocations()

실제 Query 문이 존재하는 xml파일들의 위치를 지정해 준다. 여기서는 mybatis/mapper 폴더 하위에 있는 모든 xml을 명시했다. 이 경로는 실제로는 src/main/resource 하위에 존재한다. ①이 폴더 구조 자체가 생성되어 있지 않거나, ②그 폴더에 mapper xml 이 하나도 없으면, ③혹은 그 xml 의 문법에 오류가 있으면 초기 구동 시점에 에러가 발생한다. 측, 초기에 mapper들의 위치 정보만을 지정하는 것이 아니라, 해당 mapper xml 들에 오류가 있는지 문법 체크까지 모두 한 뒤에 Factory가 생성되게 되는 것이므로, 이 부분을 다룰 때에는 중간중간 실행하여 오류가 발생하지는 않는지 꼭 확인하면서 지나가야 한다.



@Bean SqlSessionTemplate

실제 DB접속에 이용되는 SqlSessionTemplate를 생성하여 반환하는 Bean 이다. 실제 코드상에서 이용된다고 보면 된다.




여기까지 구현하고 실행하여 정상적으로 구동되는지 반드시 확인한다.


출처: https://4urdev.tistory.com/46 [Simplify]






2-4. DTO 클래스 작성


[com.example.SpringBootTest.dto.TestDTO]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.example.SpringBootTest.dto;
 
public class TestDTO {
    private int SEQ;
    private String ITEMID;
 
    public TestDTO() {
 
    }
 
    public TestDTO(int sEQ, String iTEMID) {
        super();
        SEQ = sEQ;
        ITEMID = iTEMID;
    }
 
    public int getSEQ() {
        return SEQ;
    }
 
    public void setSEQ(int sEQ) {
        SEQ = sEQ;
    }
 
    public String getITEMID() {
        return ITEMID;
    }
 
    public void setITEMID(String iTEMID) {
        ITEMID = iTEMID;
    }
 
}
 
cs


DB에 만들 컬럼명과 동일하게 생성할 것



2-5. DbMapper 인터페이스 작성


[com.example.SpringBootTest.dao.DbMapper]

1
2
3
4
5
6
7
8
9
10
package com.example.SpringBootTest.dao;
 
import java.util.List;
 
import com.example.SpringBootTest.dto.TestDTO;
 
public interface DbMapper {
    public List<TestDTO> getList() throws Exception;
}
 
cs






2-6. DbService 클래스 작성


[com.example.SpringBootTest.service.DbService]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.example.SpringBootTest.service;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.example.SpringBootTest.dao.DbMapper;
import com.example.SpringBootTest.dto.TestDTO;
 
@Service
public class DbService {
    
    @Autowired
    DbMapper dbmapper;
    
    public List<TestDTO> getList() throws Exception{
        
        return dbmapper.getList();
        
    }
}
 
cs






2-7. controller 클래스 작성


[com.example.SpringBootTest.controller]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.example.SpringBootTest.controller;
 
import java.util.ArrayList;
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
 
import com.example.SpringBootTest.dto.TestDTO;
import com.example.SpringBootTest.service.DbService;
 
@Controller
public class TestController {
 
    @Autowired
    DbService dbService;
    
    @RequestMapping("/")
    public String main() {
        return "main";
    }
    
    
    
    @RequestMapping("/dbTest")
    public ModelAndView dbTest() throws Exception {
        
        List<TestDTO> list = new ArrayList<TestDTO>();
        list = dbService.getList();
        
        
        
        return new ModelAndView("dbTest""list", list);
    }
}
 
cs





2-8. mapper.xml 작성


src/main/resources 에 mapper 폴더 생성 후 안에 databasemapper.xml 생성




[src/main/resources/mapper/databasemapper.xml]

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.SpringBootTest.dao.DbMapper">
    <select id="getList" resultType="com.example.SpringBootTest.dto.TestDTO">
        SELECT * FROM t_list
    </select>
</mapper>
 
 
 
cs


namespace는 mapper interface에 대한 풀 패키지 명을 입력.

resultType은 결과값의 타입을 입력한다. 예제의 반환 타입은 DTO객체이므로 DTO객체의 풀 패키지 명을 입력한다.


id는 mapper interface의 해당 쿼리문을 실행시킬 메서드명과 동일하게 작성한다.



모든 패키지와 파일들을 작성 완료 후 모습은 다음과 같다.






3. 실행


프로젝트 선택 후 우클릭 > Run As > Spring Boot App 선택






[Exception 발생 없이 실행이 완료된 모습]



웹 브라우저 주소창에 localhost:8282 입력





주소창에 localhost:8282/dbTest 입력



많이 부족한 포스팅이지만 궁금한 점이나 잘못된 점 있으면 댓글 남겨주세요!



 

'Web > Spring Framework' 카테고리의 다른 글

[Spring] Spring 개요  (0) 2018.11.28
Posted by PAYJAY
2018. 11. 28. 17:02

스프링 프레임워크(Spring Framework)


개발자 피보탈 소프트웨어

최근 버전 5.0.1 / 2017년 10월 24일 (12달 전)

운영 체제 크로스 플랫폼 (멀티 플랫폼)

플랫폼 자바 가상 머신

종류 애플리케이션 프레임워크

라이선스 아파치 라이선스 2.0

웹사이트 (영어) http://www.springsource.org



스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.



특징


1. 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.


2. 스프링은 POJO(Plain Old Java Object) 방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.


3. 스프링은 제어 반전(IoC : Inversion of Control)을 지원한다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.


4. 스프링은 의존성 주입(DI : Dependency Injection)을 지원한다. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.


5. 스프링은 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)을 지원한다. 따라서 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.


6. 스프링은 영속성과 관련된 다양한 서비스를 지원한다. iBATIS나 Hibernate 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공한다.


7. 스프링은 확장성이 높다. 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.






(출처:위키백과)





'Web > Spring Framework' 카테고리의 다른 글

[Spring Boot] Spring boot + MariaDB + Mybatis 연동  (3) 2018.12.26
Posted by PAYJAY
2018. 11. 12. 03:10



오늘은 SQL Developer를 이용한 엑셀 파일 import하는 방법을 알아보려고 한다.

생각보다 쉬우니 따라해보자.




먼저 SQL Developer를 실행 후 테이블을 삽입할 계정의 테이블에서

좌클릭 후 '데이터 임포트' 를 선택한다.





그럼 위 창이 나타나면서 파일을 선택할 수 있다.




예제로 만든 예제 파일을 선택 후 확인을 한다.




선택 후 창 아래 쪽에 import한 파일을 미리볼 수 있다.




다음으로 넘어가서 테이블 명을 정한다.



그 다음 import한 엑셀에서 테이블에 삽입할 칼럼을 선택한다.



다음은 칼럼의 이름과 타입을 정한다.



마지막으로 내가 선택한 대략적인 정보를 보여준다.



완료를 누르면 위 알림창이 나타나면서 import가 완료된다.




[테이블 타입]



[테이블 데이터]




완료 후 새로고침을 하면 엑셀로 import한 테이블이 나타난다.


'Database' 카테고리의 다른 글

[Database] ORACLE 사용자 권한 부여  (0) 2018.11.07
[Database] Database 개요  (0) 2018.11.06
Posted by PAYJAY
2018. 11. 7. 03:59



사용자 권한 부여


권한 부여 : GRANT

권한 제거 : REVOKE

 

※시스템 권한 - 데이터베이스 접속, 사용자 생성 및 오브젝트 생성 등의 권한

※오브젝트 권한 - 해당 오브젝트에 대한 전반적인 작업을 위한 권한

 

 

시스템 권한

시스템 권한 종류

내용

CREATE USER

데이터 베이스 유저 생성 권한

SELECT ANY TABLE

모든 유저의 테이블 조회 권한

CREATE ANY TABLE

모든 유저의 테이블 생성 권한

CREATE SESSION

데이터베이스 접속 권한

CREATE TABLE

테이블 생성 권한

CREATE VIEW

뷰 생성 권한

CREATE PROCED USER

프로시저 생성 권한

CREATE TRIGGER

트리거 생성 권한

CREATE SEQUENCE

시퀀스 생성 권한

SYSDBA

데이터베이스를 관리하는 최고 권한

SYSOPER

데이터베이스를 관리하는 권한

 

SYSOPER

 데이터베이스 시작, 종료 및 상태 전환

 테이블스페이스 및 컨트롤 파일 백업

 데이터베이스 아카이브 또는 노아카이브 로그 모드 전환

 파라메터 파일 생성

 데이터베이스 완전 복구

 접속 세션 제한

 

 SYSDBA

 ⊙ SYSOPER가 소유한 모든 권한

 데이터베이스 생성 및 삭제

 데이터베이스 불완전 복구

 

오브젝트 권한

권한

TABLE

VIEW

SEQUENCE

PROCEDURE

ALTER

V

 

V

 

DELETE

V

V

 

 

EXECUTE

 

 

 

V

INDEX

V

V

 

 

INSERT

V

 

 

 

REFERNCES

V

 

 

 

SELECT

V

V

V

 

UPDATE

V

V

 

 

 

 

[실습]

먼저 유저를 생성한다.

유저 생성 권한은 기본적으로 SYSTEM계정에만 있다.

 

USER 생성

CREATE USER [USERNAME] IDENTIFIED BY [PASSWORD];

 

다른 유저로 접속

CONN PAYJAY/1234;

 

현재 접속한 유저 확인

SHOW USER;

 

 

ERROR:

ORA-01045: user PAYJAY lacks CREATE SESSION privilege; logon denied

현재 데이터베이스 접근권한이 없어서 ERROR 발생.

 

GRANT [권한1, 권한2, …] ON [객체명] TO [권한을 부여받을 계정];

 

다시 SYSTEM으로 접속.

 

사용자에게 데이터베이스 접근권한 부여

GRANT CREATE SESSION TO PAYJAY;

 

 

 

다른 계정의 객체 접근할 권한 부여

 

SCOTT의 경우

GRANT SELECT ON EMP TO PAYJAY; == 특정 객체를 SELECT 할 권한 부여

GRANT INSERT ON EMP TO PAYJAY; == 특정 객체에 INSERT 할 권한 부여

 

SYSTEM의 경우

GRANT SELECT ON SCOTT.EMP TO PAYJAY; == 특정 객체를 SELECT 할 권한 부여

GRANT INSERT ON SCOTT.EMP TO PAYJAY; == 특정 객체에 INSERT 할 권한 부여

 

본인 계정으로 접속 후 다른 계정의 테이블 SELECT 해보기

SELECT * FROM SCOTT.EMP;

 

다른 계정의 테이블에 INSERT 해보기

INSERT INTO SCOTT.EMP VALUES (

7777,

'USERNAME',

'DEVELOP',

7777,

'2018-11-07',

5000,

700,

40

);

 

 

REVOKE

사용자로부터 권한을 제거하는 명령어.

 

REVOKE [권한1, 권한2, …] ON [객체명] FROM [권한을 제거할 계정];

 

SYSTEM 계정으로 전환

REVOKE SELECT ON SCOTT.EMP FROM PAYJAY;

 

WITH GRANT OPTION

권한을 주면서 권한을 받은 유저에게 해당 권한을 또 다른 유저에게 줄 수 있게 하는 OPTION

 

GRANT [권한1, 권한2…] TO [권한을 부여받을 계정] WITH GRANT OPTION;

 

GRANT CREATE SESSION TO PAYJAY WITH GRANT OPTION;

 

PUBLIC

PUBLIC 키워드는 모든 사용자에게 해당 권한을 부여하는 OPTION

 

GRANT [권한1, 권한2…] ON [객체명] TO PUBLIC;

 

GRANT CREATE SESSION TO PUBLIC; == 모든 사용자에게 데이터베이스 접근 권한 부여

 

ROLE

ROLE이란 여러 권한들을 하나로 묶는 것.

 

롤 생성

CREATE ROLE [권한을 부여받을 롤];

 

롤에 권한 부여

GRANT [권한1, 권한2…] TO [권한을 부여받을 롤];

 

사용자에게 권한을 담은 롤 부여

GRANT [롤 이름] TO PAYJAY;

 

 

CREATE ROLE MYROLE;

GRANT CREATE SESSION, CREATE TABLE TO MYROLE;

GRANT MYROLE TO PAYJAY;

 

 

 

ORACLE에서 제공하는 대표적인 ROLE

CONNECT : 사용자가 데이터베이스에 접속 가능하도록 가장 기본적인 시스템 권한을 그룹화한 것

RESOURCE : 사용자가 객체(TABLE, INDEX, VIEW)를 생성할 수 있도록 시스템 권한을 그룹화한 것

DBA : 시스템 관리에 필요한 모든 권한을 부여할 수 있는 강력한 권한

 

ROLE 삭제

DROP ROLE [삭제할 롤 이름]

 

 

사용자 계정 삭제

SYSTEM으로 접속

DROP USER USERNAME CASCADE;

계정에 관련된 모든 스키마가 삭제됨.

 

 


'Database' 카테고리의 다른 글

[ORACLE] 오라클에서 엑셀파일 IMPORT 하기  (0) 2018.11.12
[Database] Database 개요  (0) 2018.11.06
Posted by PAYJAY
2018. 11. 6. 02:53




생활 속의 DB

데이터베이스를 구성하고 운영하기 위해 구성된 소프트웨어 시스템.

오라클 sql 서버등 일반적으로 알고 있는 데이터베이스 제품이 DBMS이다

 

오라클 DB와 MySQL

오라클은 전세계에서 가장 많이 사용되는 사용 DBMS

MySQL 은 무료로 중소규모 웹사이트 개발에 많이 사용됨

 

DB의 장단점

파일시스템

데이터를 저장한 파일을 데이터파일 이라고 함

파일시스템은 데이터를 관리하는 기본임

경우에 따라서는 파일 시스템을 이용한 데이터 관리도 필요함.

 

단점

1.     데이터 중복

2.     데이터의 불일치

3.     데이터 공유 어려움

4.     데이터 용량 증가에 따른 검색 효율 저하

 

장점

1.     DB 도입 장점

2.     중복성 최소화

3.     불일치성 해경

4.     데이터 공유 편이성

5.     정보 표준화 유리 데이터 보안성 제공

 

관계형 데이터베이스

데이터에 관계 개념을 부여

대부분의 데이터베이스가 관계형 데이터베이스

 

테이블 구성요소

테이블은 데이터베이스 관리의 기본 단위이다.

정리되지 않은 데이터를 표 형태로 정리할 수 있음

정리되지 않은 개인 정보와 정리된 개인 정보

 

가로 : row

세로 : column

 

테이블


column

데이터를 구별하기 위한 속성 field라고도 함

 

row

row는 하나의 데이터만 표시할 수 있다.

그룹이나 배열의 형태는 허용하지 않는다

각각의 컬럼에는 특정한 형태의 값만 가질 수 있다.

모두 로우의 데이터는 해당 컬럼에서 요구하는 형태의 값만 포함

 

Key

서로 다른 로우를 구분하기 위한 특징을 가진 필드

Primary key

테이블 내 데이터를 구분해 주는 유일한 값을 대표하는 키

학번 주민등록번호 접수번호 등 중복되지 않는 유일한 값

Foreign key

테이블 간의 관계를 표현

데이터 일관성 유지

대표적으로 코드 테이블을 참조하기 위해 사용

 

SQL

Structured Query Language 의 약자로 표준화된 DB 질의어 DML과 DDL로 구분

 

DML은 Data Manipulation Language 약자로 데이터베이스 사용자 또는 응용 프로그램 소프트웨어가 컴퓨터 데이터베이스에 대해 데이터 검색등록삭제갱신을 위한 데이터베이스 언어 또는 데이터베이스 언어 요소이다.

Ex)

SELECT : 검색

INSERT : 삽입

UPDATE : 업데이트(수정)

DELETE : 삭제

 

DDL은 Data Definition Language의 약자로 컴퓨터 사용자 또는 응용 프로그램 소프트웨어가 컴퓨터의 데이터를 정의하는 컴퓨터 언어 또는 컴퓨터 언어 요소이다. DDL의 문장은 관계형 데이터베이스 구조를 정의한다. SQL에 의해 정의되는 관계형 데이터베이스의 구조는 쌍(), 속성(), 관계(테이블), 인덱스 파일 등 데이터베이스 고유의 특성을 포함한다.

Ex)

CREATE : 새로운 데이터베이스 관계(TABLE), VIEW, 인덱스저장 프로시저 만들기

DROP : 이미 존재하는 데이터베이스 관계(TABLE), VIEW, 인덱스저장 프로시저 제거

ALTER : 이미 존재하는 데이터베이스 개체에 대한 변경, RENAME의 역할

TRUNCATE : 관계(TABLE)에서 데이터를 돌이킬 수 없는 제거.



'Database' 카테고리의 다른 글

[ORACLE] 오라클에서 엑셀파일 IMPORT 하기  (0) 2018.11.12
[Database] ORACLE 사용자 권한 부여  (0) 2018.11.07
Posted by PAYJAY
2018. 10. 30. 02:19



미디어 쿼리css3 모듈 중 하나로 사이트에 접속하는 장치에 따라 특정한 CSS 스타일을 사용하도록 해준다. 미디어 쿼리를 이용한 사이트는 다른 기기로 접속할 때마다 레이아웃이 바뀐다.

사용자가 어떤 미디어를 사용하는가에 따라 사이트의 형태가 바뀌도록 CSS를 작성하는 것을 미디어 쿼리라고 한다.


<미디어 쿼리 구문>

@media [only | not] 미디어 유형 [and 조건] * [and 조건]


<style> 태그 사이에 사용하며 대소문자를 구분하지 않는다.


ex)


@media screen and (min-width:200px) and (max-width:500px){

          

}


미디어 유형은 screen이며 최소 너비 200px이고 최대 너비가 500px일 때 적용한 CSS를 정의한다.

 

<style>

Body{

           <!-- 문서 기본 배경 -->

           Background: url(images/bg0/jpg) no-repeat fixed;

           Background-size: cover;

}

@media screen and (max-width:1024px){

<!-- 화면 너비가 1024px 이하일 때 배경 -->

           Background: url(images/bg1/jpg) no-repeat fixed;

           Background-size: cover;

}

@media screen and (max-width:768px){

<!-- 화면 너비가 768px 이하일 때 배경 -->

           Background: url(images/bg2/jpg) no-repeat fixed;

           Background-size: cover;

}

@media screen and (max-width:320px){

<!-- 화면 너비가 320px 이하일 때 배경 -->

           Background: url(images/bg3/jpg) no-repeat fixed;

           Background-size: cover;

}

 

</style>


'Web > CSS' 카테고리의 다른 글

[CSS] CSS란  (0) 2018.10.24
Posted by PAYJAY