반응형

목차

1. 접속

2. 종료

3. 사용자 조회

4. 사용자 생성

5. 사용자 변경

6. 사용자 삭제

7. 데이터베이스 목록 조회

8. 데이터베이스 생성

9. 데이터베이스 삭제


1. 접속

명령어 : psql

옵션 :

-U 접속 할 계정

-d 접속 할 DB


2. 종료

명령어 : \quit, \q


3. 사용자 조회

명령어 : \du


4. 사용자 생성

명령어 : CREATE USER 사용자명;


5. 사용자 변경

명령어 : ALTER USER 사용자명;


6. 사용자 삭제

명령어 : DROP USER 사용자명;


7. 데이터베이스 목록 조회

명령어 : 

일반 조회  \list, \l

상세 조회  \list+, \l+


8. 데이터베이스 생성

명령어 : CREATE DATABASE 데이터베이스명;


9. 데이터베이스 삭제

명령어 : DROP DATABASE 데이터베이스명;


 

 

 

 

본문에 정리된 psql 명령어에는 더 다양한 옵션이 있습니다.

해당 본문은 단순 참고용으로 사용하세요.

 

오늘도 행복한 하루 보내세요.

감사합니다.

반응형
반응형

자바 개발의 핵심적인 기본 원칙은 바로 명료성과 단순성이다.

이 두 가지는 무엇보다 중요하다.

컴포넌트는 정해진 동작이나 예측할 수 있는 동작만 수행해야 한다.

(컴포넌트란 개별 메서드부터 여러 패키지로 이뤄진 복잡한 프레임워크까지 재사용 가능한 모든 소프트웨어 요소를 뜻한다.)

컴포넌트는 가능한 작되, 그렇다고 너무 작아서는 안된다.

코드는 복사되는 게 아니라 재사용되어야 한다.

컴포넌트 사이의 의존성은 최소로 유지해야 한다.

오류는 만들어지자마자 가능한 한 빨리 잡아야 한다. (되도록 컴파일타임에 해결되어야 한다.)

 

이 규칙들이 100% 옳을 수는 없겠지만, 거의 모든 경우에 적용되는 최고의 모범 사례일 것이다.

이 규칙들을 생각 없이 맹종하진 말아야 하나, 어겨야 할 때는 합당한 이유가 있어야 한다.

-이펙티브 자바-

반응형

'JAVA > 기본 개념' 카테고리의 다른 글

#8 Object 클래스  (0) 2022.08.23
#4 예외처리(Exception Handling)  (0) 2022.08.22
#3 인터페이스  (0) 2022.08.22
[Java] 컴파일(Compile)의 이해  (0) 2020.11.04
[JAVA] 구조 개념 및 명명 규칙  (0) 2020.11.03
반응형

Nuxt3 프로젝트 개발 및 운영 모드 포트번호 설정 방법입니다.

 

 

1. 개발 모드

/package.json 파일 설정 (default port 는 3000)

 

{
  "private": true,
  "scripts": {
    "dev": "nuxi dev --port 3001",
    "build": "nuxi build",
    "start": "node .output/server/index.mjs"
  },
  "devDependencies": {
    "nuxt3": "latest"
  }
}

 

2. 운영 모드

/package.json 파일 설정 (default port 는 3000)

 

{
  "private": true,
  "scripts": {
    "dev": "nuxi dev",
    "build": "nuxi build",
    "start": "PORT=3333 node .output/server/index.mjs"
  },
  "devDependencies": {
    "nuxt3": "latest"
  }
}

 

직접 수정 방식 (권장하지 않음)

/.output/server/chunks/nitro/node-server.mjs(361행)

/.output 디렉토리는 Nuxt 애플리케이션을 운영모드로 빌드할 때 생성됩니다.

 

const port = destr(process.env.NITRO_PORT || process.env.PORT) || 3e3;

=>

const port = destr(process.env.NITRO_PORT || process.env.PORT) || 3333;

 

 

 

참고 문서:

https://v3.nuxtjs.org/api/commands/dev/

 

nuxi dev

- Website: https://v3.nuxtjs.org/ - Setup and Contribution Guide: https://v3.nuxtjs.org/community/contribution#documentation-guide

v3.nuxtjs.org

https://v3.nuxtjs.org/guide/deploy/node-server/#configuring-defaults-at-runtime

 

Node.js Server

Discover the Node.js server preset with Nitro to deploy on any Node hosting.

v3.nuxtjs.org

 

 

오늘도 좋은 하루 보내세요.

감사합니다.

반응형

'Nuxt3 > 정리' 카테고리의 다른 글

#1 Head Management  (0) 2022.04.28
반응형

Nuxt3은 기본적으로 charset 및 viewport 등 다양한 메타 태그를 지원하고 있습니다.

필요할 경우 커스터마이징 할 수 있을 뿐만 아니라 여러 가지 방법으로 다른 메타 태그들을 지정할 수 있습니다.

메타 태그들은 다음 세 가지 방식으로 설정할 수 있습니다.

 

 

  1. useHead Composable을 사용하는 방식
  2. Meta 컴포넌트를 사용하는 방식
  3. nuxt.config.ts 설정 방식

 

 

1. useHead Composable을 사용하는 방식

setup 함수 안에 useHead Composable을 사용하여 다양한 메타 태그를 호출할 수 있습니다.

또한 reactive한 메타데이터에 대한 개체를 반환하는 함수를 전달할 수도 있습니다.

 

다음은 동적으로 Meta 데이터를 설정하는 방법입니다.

<script setup> 에서 Route를 이용하여 매개변수를 받고

viewProduct 함수를 호출합니다. (하단에 다른 파일에 모듈화된 viewProduct 함수가 있습니다.)

함수를 통해 받아온 data 를 useHead Composable을 통해 동적으로 적용합니다.

 

<script setup>
import {useHead, useRoute} from "nuxt3/app";
import {viewProduct} from "../../useFetch";

const route = useRoute()

const { data } = await viewProduct(route.params.productId)

useHead({
  meta: [
    { name: '상품이름', content: JSON.stringify(data.value.name) },
    { name: '상품내용', content: JSON.stringify(data.value) },
    { name: '상품등록일', content: JSON.stringify(data.value.registerDate) }
  ]
})

</script>

 

viewProduct 함수

function viewProduct(data) {
    const url = baseURL+'product/'+data
    return useAsyncData('product', () => $fetch(url))
}
 

페이지 호출 시 다음과 같은 메타 데이터를 확인할 수 있습니다.

<head >
  <meta name="상품이름" content="&quot;과자&quot;">
  <meta name="상품내용" content="{&quot;productId&quot;:5,&quot;name&quot;:&quot;과자&quot;,&quot;price&quot;:1000,&quot;content&quot;:&quot;달달한 과자&quot;,&quot;stock&quot;:100,&quot;categoryId&quot;:1000,&quot;registerDate&quot;:&quot;2022-04-21T09:36:50.572317&quot;}">
  <meta name="상품등록일" content="&quot;2022-04-21T09:36:50.572317&quot;">
</head>

 

 

2. Meta 컴포넌트를 사용하는 방식

Nuxt는 메타데이터를 조작할 수 있게 다음 컴포넌트를 제공합니다.

이 컴포넌트 이름은 HTML의 기본적인 element와 일치하므로 템플릿에서 대문자로 시작해서 차이를 주는게 중요합니다.

<Title> <Base> <Script> <Style> <Meta> <Link> <Body> <Html> <Head>

 

다음은 동적으로 Meta 데이터를 설정하는 방법입니다.

<script setup> 에서 Route를 이용하여 매개변수를 받고

viewProduct 함수를 호출합니다. (하단에 다른 파일에 모듈화된 viewProduct 함수가 있습니다.)

 

<script setup>
import {useRoute} from "nuxt3/app";
import {viewProduct} from "../../useFetch";

const route = useRoute()

const { data } = await viewProduct(route.params.productId)

</script>

 

viewProduct 함수

function viewProduct(data) {
    const url = baseURL+'product/'+data
    return useFetch(url);
}

 

받아온 데이터를 Meta 컴포넌트에 동적으로 적용합니다.

    <Head>
      <Title>titleHeadTest</Title>
        <Meta name="productId" :content='JSON.stringify(data.productId)'/>
        <Meta name="productName" :content='data.name'/>
        <Meta name="productPrice" :content='JSON.stringify(data.price)'/>
        <Meta name="productContent" :content='data.content'/>
        <Meta name="productStock" :content='JSON.stringify(data.stock)'/>
        <Meta name="productCategoryId" :content='JSON.stringify(data.categoryId)'/>
        <Meta name="productRegisterDate" :content='data.registerDate'/>
    </Head>

 

페이지 호출 시 다음과 같은 메타 데이터를 확인할 수 있습니다.

<!DOCTYPE html>
<html  data-head-attrs="">

<head >
  <title>titleHeadTest</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="companyName" content="plateer">
  <meta name="teamName" content="EC1">
  <meta name="projectName" content="nuxt3">
  <meta name="productId" content="5">
  <meta name="productName" content="&quot;과자&quot;">
  <meta name="productPrice" content="1000">
  <meta name="productContent" content="&quot;달달한 과자&quot;">
  <meta name="productStock" content="100">
  <meta name="productCategoryId" content="1000">
  <meta name="productRegisterDate" content="&quot;2022-04-21T09:36:50.572317&quot;">​

 

 

3. nuxt.config.ts 설정 방식

/nuxt.config.ts 파일에 아래와 같이 설정할 수 있습니다.

 
import { defineNuxtConfig } from 'nuxt3'

// https://v3.nuxtjs.org/docs/directory-structure/nuxt.config
export default defineNuxtConfig({
    app: {
        head: {
            meta: [
                { name: 'companyName', content: 'ABCD'},
                { name: 'teamName', content: 'KKK'},
                { name: 'projectName', content: 'Nuxt3'}
            ]
        }
    }
})

 

설정한 메타 데이터를 앱 전역적으로 확인할 수 있습니다.

<head >
 <meta name="companyName" content="ABCD">
 <meta name="teamName" content="KKK">
 <meta name="projectName" content="nuxt3">
</head>

 

참고문서:

https://v3.nuxtjs.org/guide/features/head-management

 

 

이상입니다.

오늘도 좋은 하루 보내세요.

반응형

'Nuxt3 > 정리' 카테고리의 다른 글

#2 포트번호 설정  (0) 2022.04.28
반응형

SQL Developer 뿐만 아니라 편집기를 사용하면서 눈에 불편함을 느끼는 경우가 종종 있습니다.

이 때 폰트 크기나 글꼴 등을 설정을 해보겠습니다.

 

1. 도구 - 환경설정

 

 

2. 글꼴 탭에서 글꼴과 크기를 설정합니다.

 

 

3. 변경 확인

달라진 설정을 확인합니다.

눈이 편~안해졌습니다.

반응형
반응형

데이터베이스 버전: Oracle 19c Enterprise Edition

DB Tool: SQL Developer

 

다음 예제는 문제, 주의사항, 해답 순으로 작성합니다.

 

 


문제

1. 사원(emp) 테이블에서 사원 번호, 이름, 월급을 출력하세요.

2. 사원(emp) 테이블의 모든 열(column)들을 출력하세요.

3. 사원(emp) 테이블의 사원 번호, 이름, 월급을 출력하는데 컬럼명을 한글로 '사원 번호', '사원 이름'으로 출력하세요.

4. 사원(emp) 테이블의 이름과 월급을 서로 붙여서 출력하세요.

5. 사원(emp) 테이블에서 직업을 출력하는데 중복된 데이터를 제외하고 출력하세요.

6. 사원(emp) 테이블에서 월급이 낮은 사원 순서대로 이름, 월급을 출력하세요.

7. 사원(emp) 테이블에서 월급이 3000인 사원들의 이름, 월급, 직업을 출력하세요.

8. 사원(emp) 테이블에서 이름이 SCOTT인 사원의 이름, 월급, 직업, 입사일, 부서 번호를 출력하세요.

9. 사원(emp) 테이블에서 연봉이 36000 이상인 사원들의 이름, 연봉을 출력하세요.

10. 사원(emp) 테이블에서 월급이 1200 이하인 사원들의 이름, 월급, 직업, 부서 번호를 출력하세요.

11. 사원(emp) 테이블에서 월급이 1000에서 3000 사이인 사원들의 이름, 월급을 출력하세요.

12. 사원(emp) 테이블에서 이름의 첫 글자가 S로 시작하는 사원들의 이름, 월급을 출력하세요.

13. 사원(emp) 테이블에서 커미션이 NULL인 사원들의 이름과 커미션을 출력하세요.

14. 사원(emp) 테이블에서 직업이 SALESMAN, ANALYST, MANAGER 인 사람들의 이름, 월급, 직업을 출력하세요.

15. 사원(emp) 테이블에서 직업이 SALESMAN, 월급이 1200 이상인 사원들의 이름, 월급, 직업을 출력하세요.

16. 사원(emp) 테이블에서 이름이 KING인 사원의 이름, 월급, 커미션, 월급과 커미션을 합한 값을 출력하세요.

17. 사원(emp) 테이블에서 월급이 1000에서 3000 사이가 아닌 사원들의 이름, 월급을 출력하세요.

18. 사원(emp) 테이블에서 이름의 두 번째 철자가 M인 사원의 이름을 출력하세요.

19. 사원(emp) 테이블에서 직업이 SALESMAN, ANALYST, MANAGER 가 아닌 사원들의 이름, 월급, 직업을 출력하세요.

20. 사원(emp) 테이블에서 'OOO의 월급은 OOO 입니다.' 라는 내용을 컬럼명 '월급정보'로 출력하세요.

 


주의사항

1. SQL은 대문자로 작성하고 컬럼명과 테이블명은 소문자로 작성하기를 권장합니다.

2. SELECT절과 FROM절을 각각 별도의 라인에 작성하기를 권장합니다.

3. SELECT절 다음 라인에 FROM 절을 작성할 때는 2칸에서 3칸 정도 공백을 들여쓰기를 권장합니다.

4. 컬럼 별칭에 ""를 감싸줘야 하는 경우

1) 대소문자를 구분하여 출력할 때

2) 공백문자를 출력할 때

3) 특수문자를 출력할 때($, _, #만 가능)

 

 


해답

1.

SELECT empno, ename, sal

  FROM emp;

 

2.

SELECT *

  FROM emp;

 

3.

SELECT empno as "사원 번호", ename as "사원 이름", sal

  FROM emp;

 

4.

SELECT ename || sal

  FROM emp;

 

5.

SELECT DISTINCT job

  FROM emp;

 

SELECT UNIQUE job

  FROM emp;

 

6.

SELECT ename, sal

  FROM emp

ORDER BY sal asc;

 

SELECT ename, deptno, sal

  FROM emp

ORDER BY deptno asc, sal desc;

다음과 같이 ORDER BY절에 컬럼명 대신 숫자를 기입할 수도 있습니다.

SELECT ename, deptno, sal

  FROM emp

ORDER BY 2 asc, 3 desc;

 

7.

SELECT ename, sal, job

  FROM emp

WHERE sal = 3000;

 

8.

SELECT ename, sal, job, hiredate, deptno

  FROM emp

WHERE ename = 'SCOTT';

 

9.

SELECT ename, sal*12 as 연봉

  FROM emp

WHERE sal*12 >= 36000;

 

10.

SELECT ename, sal, job, deptno

  FROM emp

WHERE sal <= 1200;

 

11.

SELECT ename, sal

  FROM emp

WHERE sal BETWEEN 1000 AND 3000;

 

SELECT ename, sal

  FROM emp

WHERE (sal >= 1000 AND sal <= 3000);

 

12.

SELECT ename, sal

  FROM emp

WHERE ename LIKE 'S%';

 

13.

SELECT ename, comm

  FROM emp

WHERE comm is null;

 

14.

SELECT ename, sal, job

  FROM emp

WHERE job in ('SALESMAN', 'ANALYST', 'MANAGER');

 

15.

SELECT ename, sal, job

  FROM emp

WHERE job = 'SALESMAN' AND sal >= 1200;

 

16.

SELECT ename, sal, comm, sal + NVL(comm,0)

  FROM emp

WHERE ename = 'KING';

 

17.

SELECT ename, sal

  FROM emp

WHERE sal NOT BETWEEN 1000 AND 3000;

 

SELECT ename, sal

  FROM emp

WHERE (sal < 1000 OR sal > 3000);

 

18.

SELECT ename

  FROM emp

WHERE ename LIKE '_M%';

 

19.

SELECT ename, sal, job

  FROM emp

WHERE job NOT in ('SALESMAN', 'ANALYST', 'MANAGER');

 

20.

SELECT ename || '의 월급은 ' || sal || '입니다.' as 월급정보

  FROM emp;

 

반응형

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

#2 실습 테이블 생성 및 데이터 삽입 스크립트  (0) 2022.01.31
#1 실습 계정 생성  (0) 2022.01.25
반응형

데이터베이스 버전: Oracle 19c Enterprise Edition

DB Tool: SQL Developer

 

1. 스크립트 실행

SQL 실습을 위해 테이블 생성 및 데이터 삽입을 진행합니다.

다음 스크립트를 실행합니다.

alter session set nls_date_format='RR/MM/DD';
drop table emp;
drop table dept;
CREATE TABLE DEPT (DEPTNO number(10), DNAME VARCHAR2(14), LOC VARCHAR2(13) );
INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');
CREATE TABLE EMP ( EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4) , HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) );
INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'81-11-17',5000,NULL,10);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'81-05-01',2850,NULL,30);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'81-05-09',2450,NULL,10);
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'81-04-01',2975,NULL,20);
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'81-09-10',1250,1400,30);
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'81-02-11',1600,300,30);
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,'81-08-21',1500,0,30);
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'81-12-11',950,NULL,30);
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'81-02-23',1250,500,30);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'81-12-11',3000,NULL,20);
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'80-12-11',800,NULL,20);
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'82-12-22',3000,NULL,20);
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'83-01-15',1100,NULL,20);
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'82-01-11',1300,NULL,10);
commit;
drop table salgrade;
create table salgrade ( grade number(10), losal number(10), hisal number(10) );
insert into salgrade values(1,700,1200);
insert into salgrade values(2,1201,1400);
insert into salgrade values(3,1401,2000);
insert into salgrade values(4,2001,3000);
insert into salgrade values(5,3001,9999);
commit;

 


2. 데이터 확인

select * from emp;

명령어를 실행하여 emp 테이블의 데이터를 확인합니다.

 

 


데이터베이스 설치를 진행하지 않았다면 하기의 링크를 참고하세요.

https://boyboy94.tistory.com/31?category=891749 

 

[DB] Oracle 19c Enterprise Edition 설치

OS 버전: Windows 10 Pro 설치 버전: Oracle 19c Enterprise Edition 설치 목적: DB 학습 1. 설치 파일 준비 Oracle 19c EE 설치 파일을 준비합니다. 자신의 OS 버전에 맞는 설치 파일을 준비합니다. https://www...

boyboy94.tistory.com

 

SQL Developer 설치를 진행하지 않았다면 하기의 링크를 참고하세요.

https://boyboy94.tistory.com/33?category=891749 

 

[DB] SQL Developer 설치

OS 버전: Windows 10 Pro 설치 버전: SQL Developer 21.4.2 Oracle 버전: 19c 설치 목적: DB 학습 1. 설치 파일 준비 SQL Developer 설치 파일을 준비합니다. 자신의 OS 버전에 맞는 설치 파일을 준비합니다. http..

boyboy94.tistory.com

 

반응형

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

#3 SQL 입문 예제  (0) 2022.02.01
#1 실습 계정 생성  (0) 2022.01.25
반응형

OS 버전: Windows 10 Pro

설치 버전: SQL Developer 21.4.2

Oracle 버전: 19c Enterprise Edition

설치 목적: DB 학습


1. 설치 파일 준비

SQL Developer 설치 파일을 준비합니다.

자신의 OS 버전에 맞는 설치 파일을 준비합니다.

 

https://www.oracle.com/kr/index.html


2. 파일 압축 해제 및 실행

설치 파일을 압축 해제하고 sqldeveloper.exe를 실행합니다.

 


3. 연결을 생성합니다.

우측 상단에 연결 새로만들기를 선택합니다.

 

데이터베이스 접속을 선택합니다.

Name 항목은 자유롭게 입력합니다.

사용자 이름과 비밀번호는 DB를 설치할 때 생성한 계정 정보를 입력합니다.(전 설치 후 학습용으로 생성한 scott 계정을 입력하겠습니다.)

테스트 후 저장, 접속을 선택합니다.

(접속 버튼이 보이지 않는 경우 해당 인터페이스 윈도우 창 크기를 늘려주면 확인할 수 있습니다.)

 


4. 연결 확인

show user;

명령어를 실행하여 연결을 확인합니다.

 

 


데이터베이스 설치를 진행하지 않았다면 하기의 링크를 참고하세요.

https://boyboy94.tistory.com/31?category=891749

 

[DB] Oracle 19c Enterprise Edition 설치

OS 버전: Windows 10 Pro 설치 버전: Oracle 19c Enterprise Edition 설치 목적: DB 학습 1. 설치 파일 준비 Oracle 19c EE 설치 파일을 준비합니다. 자신의 OS 버전에 맞는 설치 파일을 준비합니다. https://www...

boyboy94.tistory.com

 

반응형

'개발환경 > 개발환경구축' 카테고리의 다른 글

[DB] Oracle 19c Enterprise Edition 설치  (0) 2022.01.25
스프링(STS) 톰캣 서버 추가  (0) 2020.11.04
톰캣 (Tomcat) 9.0 설치  (0) 2020.11.04
이클립스 (Eclipse) 설치  (0) 2020.11.04
스프링 (STS) 설치  (0) 2020.11.04

+ Recent posts