반응형
반응형
반응형




Spring Properties 파일 로딩 우선 순위
 - 1이 가장 높음


# ############################ #
# 파일 위치(디렉토리) 우선 순위 설정.
# ############################ #


# default
1. file:./config/
2. file:./
3. classpath:/config/
4. classpath:/


# spring.config.additional-location
# - 기본 spring.config.location 에 추가.
ex) spring.config.additional-location=classpath:/custom-config/,file:./custom-config/
1. file:./custom-config/
2. classpath:custom-config/
3. file:./config/
4. file:./
5. classpath:/config/
6. classpath:/


# spring.config.location(기본값 : classpath:/,classpath:/config/,file:./,file:./config/)
# - 나중에 기술된 위치가 우선 순위가 높음.
# - 디렉토리 / 파일명 모두 명시 가능
# - 디렉토리를 명시 했을 경우 profile 설정 사용 가능.
ex) spring.config.location=classpath:/custom-config/,file:./custom-config/
1. file:./custom-config/
2. classpath:custom-config/



# ############################ #
# 파일명(profiile) 우선 순위 설정.
# ############################ #


# spring.profiles.active 설정.
# - 나중에 기술된 profile(dev) 이 우선순위가 높음.
ex) spring.profiles.active=common,dev
1. application-dev.properties
2. application-common.properties
3. application.properties


# spring.profiles.include 설정.
# - include 된 profile 이 우선순위가 높음.
ex) application.properties 파일 내용(spring.profiles.include=common)
1. application-common.properties
2. application.properties

 

# spring.profiles.active & spring.profiles.include 설정.
# - spring.profiles.active 의 profile 이 우선순위가 높음.
ex) spring.profiles.active=dev

ex) spring.profiles.include=common
1. application-dev.properties
2. application-common.properties
3. application.properties

 

 

# 환경 변수 -Dspring.profiles.active=prd

# vs

# 프로퍼티 spring.profiles.active=dev(application.properties 파일 내용)

# 환경변수의 profile 이 적용된다.

1. application-prd.properties
2. application.properties

 

 

반응형

'프로그래밍 > Spring' 카테고리의 다른 글

Spring logback 설정 우선 순위  (0) 2023.06.09
반응형

java encoding 순서

System.out.println("file.encoding=" + System.getProperty("file.encoding"));
System.out.println("Charset.defaultCharset=" + Charset.defaultCharset());
System.out.println("InputStreamReader.getEncoding=" + new InputStreamReader(new FileInputStream("./PrintCharSets.java")).getEncoding());

 

1. jvm 옵션(OS 환경변수보다 최우선시 적용)

 - java -Dfile.encoding=euckr

2. env LC_ALL

- LC_ALL 이 설정되어 있으면 LC_CTYPE 값도 LC_ALL 값으로 덮어써진다.

3. env LC_CTYPE

- LC_ALL 이 설정 안되어 있으면 개별로 설정된 LC_CTYPE 적용.

4. env LANG

- LC_ALL 과 LC_CTYPE 이 설정되어 있지 않다면 LC_ALL 을 제외한 나머지 LC_* 값은 LANG 값으로 덮어써진다.

- 따라서, LC_CTYPE 은 LANG 값과 같아진다.

 

결국 linux 에서는 jvm 옵션을 설정하지 않으면 locale 명령어의 결과 중 LC_CTYPE 값이 적용된다고 보면 된다.

 

반응형

'프로그래밍 > Java' 카테고리의 다른 글

Java Stream 설명  (0) 2023.05.26
Stream reduce 간단 설명  (0) 2023.05.20
[JAVA] java.lang.UnsatisfiedLinkError: no net in java.library.path  (1) 2021.06.25
Too many open files  (2) 2021.06.14
환경변수 값 읽어오기.  (0) 2021.04.05
반응형
반응형
반응형

 

ANSI Query(SQL)

  • ANSI(American National Standards Institute, 미국 국립 표준 협회)에서 제시한 SQL에 대한 보편적인 문법

Visual Representation of SQL Joins - CodeProject

https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins

 


 

오라클 Join 예제.

 

테이블 : T_MEMBER

T_MEMBER 테이블

 

테이블 : T_DEPARTMENT

T_DEPARTMENT 테이블

 


 

Inner Join
-- (교집합) 각 테이블에서 조인 조건에 일치되는 데이터만 가져온다.

(ANSI) SELECT m.*, d.* FROM T_MEMBER m INNER JOIN T_DEPARTMENT d ON m.DEPT_IDX = d.DEPT_IDX;
(Oralce) SELECT m.*, d.* FROM T_MEMBER m, T_DEPARTMENT d WHERE m.DEPT_IDX = d.DEPT_IDX;

Inner Join

 

 

 

Outer Join
-- 조인 조건에 일치하는 데이터 및 일치하지 않은 데이터를 모두 SELECT 한다.
-- 조인 조건에 일치하는 데이터가 없다면 NULL로 가져온다.
-- 주(main) 테이블이 어떤 테이블인지가 중요하다.

 

  • Left Outer Join
(ANSI) SELECT m.*, d.* FROM T_MEMBER m LEFT OUTER JOIN T_DEPARTMENT d ON m.DEPT_IDX = d.DEPT_IDX ORDER BY m.MEM_ID;
(Oralce) SELECT m.*, d.* FROM T_MEMBER m, T_DEPARTMENT d WHERE m.DEPT_IDX = d.DEPT_IDX(+) ORDER BY m.MEM_ID;

Left Outer Join

 

  • Right Outer Join
(ANSI) SELECT m.*, d.* FROM T_MEMBER m RIGHT OUTER JOIN T_DEPARTMENT d ON m.DEPT_IDX = d.DEPT_IDX ORDER BY m.MEM_ID;
(Oralce) SELECT m.*, d.* FROM T_MEMBER m, T_DEPARTMENT d WHERE m.DEPT_IDX(+) = d.DEPT_IDX ORDER BY m.MEM_ID;

Right Outer Join

 

  • Full Outer Join
(ANSI) SELECT m.*, d.* FROM T_MEMBER m FULL OUTER JOIN T_DEPARTMENT d ON m.DEPT_IDX = d.DEPT_IDX ORDER BY m.MEM_ID;
(Oralce) X

Full Outer Join

 

 

Cross Join
-- 두 테이블 조인 시 가능한 모든 경우의 레코드를 SELECT 한다.
-- 경우의 수 : N * M

(ANSI) SELECT m.*, d.* FROM T_MEMBER m CROSS JOIN T_DEPARTMENT d ORDER BY m.MEM_ID, d.DEPT_IDX;
(Oralce) SELECT m.*, d.* FROM T_MEMBER m, T_DEPARTMENT d ORDER BY m.MEM_ID, d.DEPT_IDX;

Cross Join

 

Self Join
-- 테이블이 자기 자신을 마치 다른 테이블처럼 취급하여 조인한다.

(ANSI) SELECT m.*, d.* FROM T_MEMBER m JOIN T_MEMBER d ON m.MEM_ID = d.MEM_ID ORDER BY m.MEM_ID;
(Oralce) SELECT m.*, d.* FROM T_MEMBER m, T_MEMBER d WHERE m.MEM_ID = d.MEM_ID ORDER BY m.MEM_ID;

Self Join

 

 

 

반응형

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

NLS 파라미터 확인  (0) 2020.11.17
JDBC 오류?? varchar 에 2000byte 이상 insert 하기.  (0) 2011.11.07
캐릭터셋 확인.  (0) 2011.10.20
오라클 구동 방법  (0) 2011.01.05
[Link] hierarchy query  (0) 2010.11.09
반응형

xxxx.bat 파일에 저장 후 관리자로 실행.

 

@echo off
mode con cols=60 lines=40
COLOR 0E

:SEL_NW
echo.     
echo  [네트워크 IP Changer]
echo    1: 집
echo    2: 회사
echo.     
echo    d: 자동설정
echo    q: 종료
echo ----------------------------


SET /P sel=선택하십시오:
IF %sel%==1 (goto NW_HOME)
IF %sel%==2 (goto NW_OFFICE)

IF %sel%==d (goto NW_DHCP)
IF %sel%==q (goto quit)

:NW_HOME
echo 집 네트워크 설정
echo IP: 192.168.5.64
echo 서브넷 마스크: 255.255.248.0
echo 게이트웨이: 192.168.1.1
netsh interface ipv4 set address "이더넷" static 192.168.5.64 255.255.248.0 192.168.1.1
echo DNS1: 192.168.1.29
echo DNS2: 168.126.63.1
netsh interface ipv4 set dns "이더넷" static 192.168.1.29 primary no
netsh interface ipv4 add dns "이더넷" 168.126.63.1 index=2 no
pause
goto SEL_NW

:NW_OFFICE
echo 회사 네트워크 설정
echo IP: 192.168.5.64
echo 서브넷 마스크: 255.255.248.0
echo 게이트웨이: 192.168.1.1
netsh interface ipv4 set address "이더넷" static 192.168.5.64 255.255.248.0 192.168.1.1
echo DNS1: 168.126.63.1
echo DNS2: 8.8.8.8
netsh interface ipv4 set dns "이더넷" static 168.126.63.1 primary no
netsh interface ipv4 add dns "이더넷" 8.8.8.8 index=2 no
pause
goto SEL_NW

:NW_DHCP
echo 자동설정 모드입니다.
echo IP: 자동
echo 서브넷 마스크: 자동
echo 게이트웨이: 자동
netsh interface ipv4 set address "이더넷" source=dhcp
echo DNS: 자동
netsh interface ipv4 set dnsservers "이더넷" source=dhcp
pause
goto SEL_NW

:quit
echo.

 

위 설정은 네트워크의 이름이 "이더넷" 인 경우의 예시임.

 

네트워크 설정 - 샘플.bat
0.00MB

반응형
반응형

https://www.kyungyeon.dev/posts/66

 

Index 생성시 데이터의 중복이 적으면 적을수록 좋다. distinct foo 했을 때 랑 count(*) 가 비슷한 컬럼일수록 Index 효율이 높다.

Index의 손익분기점이라고 표현하는데, 상황에 따라 다르겠지만 보통 전체 데이터의 5~10%정도로 걸러지는 경우 Index를 사용했을 때 좋은 효율을 낼 수 있다.
이 내용은 테이블의 데이터가 100만건 정도일 때 조건이고, 1000만건~ 그 이상 많아진다면 손익분기점은 더 낮아진다. 1000만건 이상인 테이블에서는 보통 5%정도로 걸러져야 효율이 좋다.

그리고 20%가 넘어가는 경우 오히려 Table Full Scan이 더 빠를 수 있다.

그리고 당연하게도 활용도가 높은 즉, 많이 사용되는 컬럼을 Index로 사용하는게 좋을 것이다.

 

반응형
반응형

undefined는 원시값으로, 선언한 후 값을 할당하지 않은 변수 혹은 값이 주어지지 않은 인수에 자동으로 할당됩니다.

var a;

if(typeof a === 'undefined') {
        console.log('a is typeof undefined');
}

if (a === undefined) {
        console.log('a is undefined');
}

 

그렇다면 선언하지 않은 변수는 어떻게 되나???

if (b === undefined) {
        console.log('b is undefined');
}

===> ReferenceError 발생.

 

if (typeof b === 'undefined') {
        console.log('b is typeof undefined');
}

===> 오류 없이 로그 출력.

 

 

결론... typeof 를 사용하자??!!!

typeof를 사용하는 이유 중 하나는 선언하지 않은 변수를 사용해도 오류를 던지지 않기 때문이다.

 

반응형

'프로그래밍 > Javascript' 카테고리의 다른 글

prototype  (0) 2018.12.20
javascript containsAll  (1) 2016.11.04
[jquery] hide, show 함수, visibility 속성  (0) 2016.10.28
jquery crossdomain ajax jsonp  (1) 2015.10.30
한글, 영문 check  (0) 2011.12.27
반응형

// node 버전 확인
$ node -v
v7.3.0

// 캐시 삭제
$ npm cache clean -f

// nodejs 버전관리 플러그인
$ npm install -g n 

// nodejs 업데이트
$ sudo n stable

// n latest  # 최신버전
// n lts     # lts 버전
// n stable  # 안정버전


// npm 버전 확인
$ npm -v
6.14.13


// npm 업데이트(global 경로)
$ sudo npm install -g npm 


// 설치 후 버전 확인.
$ node -v
v14.17.3

$ npm -v
7.20.0

반응형

'프로그래밍 > nodejs' 카테고리의 다른 글

nodejs 설치.  (0) 2020.03.02
package.json 설명 링크.  (0) 2018.09.12
반응형

// replication 생성.
create replication [replication_name] with '[remote_ip]', [remote_port]
from [user.local_table_1] to [user.remote_table_1],
...
from [user.local_table_N] to [user.remote_table_N];


// replication host 추가.
ALTER REPLICATION [replication_name] ADD HOST ‘[remote2_ip]‘, [remote2_port];


// 등록된 호스트 개수, 이중화 테이블 개수 등 이중화 관련 정보
iSQL> SET VERTICAL ON;
iSQL> SELECT * FROM system_.sys_replications_;
REPLICATION_NAME         : REP1  
LAST_USED_HOST_NO        : 23                        // 마지막 Replication host_no
HOST_COUNT               : 2                         // Replication Host 갯수.
IS_STARTED               : 1 
XSN                      : 14919526761 
ITEM_COUNT               : 321                       // Replication Item 갯수.
CONFLICT_RESOLUTION      : 0 
REPL_MODE                : 0 
ROLE                     : 0 
OPTIONS                  : 0 
INVALID_RECOVERY         : 0 
REMOTE_FAULT_DETECT_TIME : 08-JUL-2021 
GIVE_UP_TIME             :  
GIVE_UP_XSN              :  
PARALLEL_APPLIER_COUNT   : 0

1 row selected.


// 원격 서버에 관련된 정보
iSQL> SET VERTICAL OFF;
iSQL> set colsize 15
iSQL> SELECT * FROM system_.sys_repl_hosts_;
HOST_NO     REPLICATION_NAME                HOST_IP                         PORT_NO     
---------------------------------------------------------------------------------------------
23          REP1                            10.1.3.2                        30300       
65          REP1                            10.1.4.2                        30300
2 rows selected.


// 이중화 송신 쓰레드 상태 확인.(active thread 정보)
iSQL> set colsize 15
iSQL> SELECT rep_name, status, net_error_flag, sender_ip, sender_port, peer_ip, peer_port FROM V$REPSENDER;
REP_NAME         STATUS               NET_ERROR_FLAG       SENDER_IP        SENDER_PORT PEER_IP          PEER_PORT   
-----------------------------------------------------------------------------------------------------------------------------
REP1             1                    0                    10.1.3.1         46268       10.1.3.2         30300       
1 row selected.



// Replication 테이블 정보.
iSQL> set colsize 25
iSQL> SELECT REPLICATION_NAME,LOCAL_USER_NAME, LOCAL_TABLE_NAME from SYSTEM_.SYS_REPL_ITEMS_;
...
321 rows selected.

반응형
반응형

# 80 포트 추가
firewall-cmd --permanent --add-port=80/tcp

# 80 포트 삭제(참고)
firewall-cmd --permanent --remove-port=80/tcp


# 정책 재반영 및 방화벽 정책 확인
firewall-cmd --reload;firewall-cmd --list-all

반응형

'OS > Linux' 카테고리의 다른 글

CentOS 7 에서 PHP7.4 설치하기.  (1) 2021.06.28
[linux] 디스크 읽기/쓰기 속도  (0) 2021.06.14
프로세스 thread 갯수 확인  (0) 2019.10.31
rpm 사용법  (0) 2019.05.09
[링크] 파일 권한  (0) 2019.05.09

+ Recent posts