728x90

FORMAT(숫자, 소수점 자릿수)

숫자를 지정한 소숫점 자릿수 까지만 잘라 리턴하며, 1000단위마다 콤마를 표시합니다.

이때 지정한 자리 다음 숫자에 따라 반올림 하여 표현합니다.

1

SELECT FORMAT(1000000.123456, 4);

cs

 

 

 

 

 

BIN(숫자)

숫자를 2진수로 변환합니다.

1

SELECT BIN(16);

cs

 

 

 

 

HEX(숫자 )

숫자를 16진수로 변환합니다.

1

SELECT HEX(16);

cs

 

 

 

 

OCT(숫자)

숫자를 8진수로 표현합니다.

1

SELECT OCT(16);

cs

 

 

 

 

 

ABS(숫자)

절대값을 구합니다.

1

SELECT ABS(16);

cs

 

 

 

 

CEILING(숫자)

숫자를 올림합니다.

1

SELECT CEILING(11.3);

cs

 

 

 

 

FLOOR(숫자)

숫자를 내림합니다.

1

SELECT FLOOR(11.3);

cs

 

 

 

ROUND(숫자)

숫자를 반올림합니다.

1

SELECT ROUND(11.3);

cs

 

 

 

1

SELECT ROUND(11.5);

cs

 

 

 

 

CONV(숫자, 진법, 바꿀 진법)

숫자를 기존의 진법 계산에서 바꿀 진법 계산으로 변경합니다.

1

2

SELECT CONV(111, 2, 10); -- 2진법 111을 10진법으로 변환 >> 7

SELECT CONV(11, 10, 2); -- 10진법 11을 2진법으로 변환 >> 1011

cs

 

 

 

DEGREES(숫자), RADIANS(숫자), PI()

각각 라디안 값을 각도로 변환, 각도를 라디안 값으로 변환, 파이값을 반환합니다.

1

2

3

SELECT DEGREES(3.141592653589793); -- 180

SELECT RADIANS(180); -- 3.141592653589793

SELECT PI(); -- 3.141593

cs

 

 

 

MOD(숫자1, 숫자2), 숫자1 % 숫자2, 숫자1 MOD 숫자2

세 가지 연산 모두 숫자1에서 숫자2를 나눈 나머지 값을 반환합니다.

1

2

3

SELECT MOD(5, 3); -- 2

SELECT 5 % 3; -- 2

SELECT 5 MOD 3; -- 2

cs

 

 

 

POW(숫자1, 숫자2), SQRT(숫자)

거듭제곱 및 제곱근을 구합니다.

1

2

SELECT POW(2, 3); -- 2의 3 제곱 8반환

SELECT SQRT(9); -- 루트 9 3을 반환

cs

 

 

 

RAND()

0이상 1 미만의 실수를 구합니다.

0 ~ 0.99999... 따라서 만약 0 ~ 10까지의 정수만을 구하고 싶은 경우에는 다음과 같이 FLOOR() 함수와 같이 사용합니다.

1

SELECT FLOOR(RAND() * 11);

cs

 

 

 

SIGN(숫자)

숫자가 양수인지, 0인지, 음수인지 구합니다.

양수이면 1, 0이면 0, 음수이면 -1을 반환합니다.

1

2

3

SELECT SIGN(100); -- 1

SELECT SIGN(0); -- 0

SELECT SIGN(-100); -- -1

cs

 

 

 

TRUNCATE(숫자1, 숫자2)

숫자1을 소숫점을 기준으로 숫자2 위치 이외의 값을 버립니다.

1

2

SELECT TRUNCATE(123.456, 1); -- 123.4

SELECT TRUNCATE(123.456, -1); -- 120

cs

 

 

 

ACOS(숫자), ASIN(숫자), ATAN(숫자), ATAN2(숫자), ATAN2(숫자1, 숫자2), SIN(숫자), COS(숫자), TAN(숫자)

삼각 함수입니다.

 

 

 

EXP(X), LN(숫자), LOG(숫자), LOG(밑수, 숫자), LOG2(숫자), LOG10(숫자)

지수, 로그와 관련된 함수입니다.

 

 

 

 

추가 함수 정보

https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html



출처: https://dololak.tistory.com/247 [코끼리를 냉장고에 넣는 방법]

728x90

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

Hierarchical queries in MySQL  (0) 2019.10.04
php 시간 계산  (0) 2013.08.12
PHP $_SERVER 정리  (0) 2013.08.01
Mysql table의 AutoIncrement 값을 가져오기  (0) 2013.07.09
ORACLE, MSSQL, MYSQL 날짜함수 비교  (0) 2012.08.08
728x90

1. C:\Users\컴퓨터계정명\AppData\Roaming\Subversion\auth\svn.simple 하위 파일명 삭제 후 이클립스 재시작

   파일명 예제 : 8708e9e14ce95da2540612fdd268ee5d 

2. eclipse\configuration\org.eclipse.core.runtime 폴더를 보면 .keyring 파일 삭제 후 이클립스 재시작

728x90

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

톰켓 URL 한글 깨질 때 설정법  (0) 2019.02.25
eclipse 이미지 업로드 시 자동 새로고침  (0) 2016.05.31
web.xml error page 처리  (0) 2016.05.25
728x90

String, StringBuffer, StringBuilder의 장단점 및 차이점

자바에서 String과 StringBuffer, StringBuilder의 차이점을 알아본다.

이들의 공통점은 모두다 String(문자열)을 저장하고 관리하는 클래스들이다.

어떤 차이점이 있을까?

String과 (StringBuffer, StringBuilder)의 차이점은 String은 immutable(불변)하고 StringBuffer, StringBuilder는 mutable(가변)하다는 점이다.

쉽게 말해서 String은 new 연산을 통해 생성되면 그 인스턴스의 메모리 공간은 절대 변하지 않는다.

그래서 + 연산이나 concat을 이용해서 문자열에 변화를 줘도 메모리 공간이 변하는 것이 아니라 새로운 String객체를 new로 만들어서 새로운 메모리 공간을 만드는 것이다.

이렇게 새로운 문자열이 만들어지면 기존의 문자열은 가비지 콜렉터에 의해 제거되야 하는 단점(언제 제거될지 모름)이 있다.

또한 이러한 문자열 연산이 많아질 때 계속해서 객체를 만드는 오버헤드가 발생하므로 성능이 떨어질 수 밖에 없는 단점이 있다. (+연산에 내부적으로 char배열을 사용함)

대신 String 클래스의 객체는 불변하기 때문에 단순하게 읽어가는 조회연산에서는 타 클래스보다 빠르게 읽을 수 있는 장점이 있다. (+불변하기 때문에 멀티쓰레드환경에서 동기화를 신경쓸 필요가 없음(장점))

결론 => String 클래스는 문자열 연산이 적고 조회가 많을 때 멀티쓰레드 환경에서 사용하면 좋음.

StringBuffer와 StringBuilder 클래스는 String과 다르게 mutable(변경가능)하다.

즉 문자열 연산에 있어서 클래스를 한번만 만들고(new), 연산이 필요할 때 크기를 변경시켜서 문자열을 변경한다.

그러므로 문자열 연산이 자주 있을 때 사용하면 성능이 좋다!

심지어 StringBuffer와 StringBuilder 클래스의 메서드들이 같으므로 호환(?)이 가능하다.

그렇다면 StringBuffer와 StringBuilder의 차이는 무엇일까?

차이점은 StringBuffer는 멀티쓰레드환경에서 synchronized키워드가 가능하므로 동기화가 가능하다. 즉, thread-safe하다.

StringBuilder는 동기화를 지원하지 않기 때문에 멀티쓰레드환경에서는 적합하지 않다.

대신 StringBuilder가 동기화를 고려하지 않기 때문에 싱글쓰레드 환경에서 StringBuffer에 비해 연산처리가 빠르다.

결론 => 문자열 연산이 많을 때 멀티쓰레드환경에서는 StringBuffer, 싱글쓰레드또는 쓰레드를 신경쓰지 않아도 되는 환경에서는 StringBuilder를 사용하는 것이 적절하다.

다시 한번 정리하면,

String클래스는 불변 객체이기 때문에 문자열 연산이 많은 프로그래밍이 필요할 때 계속해서 인스턴스를 생성하므로 성능이 떨어지지만 조회가 많은 환경, 멀티쓰레드 환경에서 성능적으로 유리합니다.

StringBuffer클래스와 StringBuilder클래스는 문자열 연산이 자주 발생할 때 문자열이 변경가능한 객체기 때문에 성능적으로 유리합니다.

StringBuffer와 StringBuilder의 차이점은 동기화지원의 유무이고 동기화를 고려하지 않는 환경에서 StringBuilder가 성능이 더 좋고, 동기화가 필요한 멀티쓰레드 환경에서는 StringBuffer를 사용하는 것이 유리합니다.

* StringBuffer와 StringBuilder는 성능으로 따졌을 때 2배의 속도차이가 있다고 하지만 참고사이트의 속도 차이 실험 결과 append()연산이 약 1억6천만번 일어날 때 약 2.6초의 속도차이를 보인다고 합니다.

(String은 +연산이 16만번이상 넘어가게 되면 10초이상 걸리면서 못 쓸정도의 성능을 보입니다.)

따라서 문자열연산이 많지만 엄청나게 일어나지 않는 환경이라면 StringBuffer를 사용해서 thread-safe한 것이 좋다는 생각입니다.

* JDK1.5이상부터 String에서 +연산으로 작성하더라도 StringBuilder로 컴파일하게 만들어 놨다지만 여전히 String클래스의 객체 생성하는 부분을 동일하므로 StringBuffer,StringBuilder 사용이 필요함.

+ StringBuffer, StringBuilder의 경우 buffer size를 초기에 설정해야하는데 이런 생성, 확장 오버로드가 걸려 버퍼사이즈를 잘못 초기화할 경우 성능이 좋지 않을 수 있음.

+ String클래스가 컴파일러분석단계에서 최적화될 가능성이 있기때문에 간혹 성능이 잘나오는 경우도 있음. 문자열 연산이 많지 않은 경우는 그냥 사용해도 무방.

런타임에서 문자열조합이 많아질 경우 String은 여전히 성능이 아주 안좋기 때문에!

+, concat을 사용하는 사고(?)를 치면 안된다. 특히 현업에서....



출처: https://jeong-pro.tistory.com/85 [기본기를 쌓는 정아마추어 코딩블로그]

728x90

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

SVN 락 풀기  (0) 2020.03.12
인터넷이 끊겼을 때 spring xsd 관려  (0) 2020.01.14
poi cell Number 포맷 문자로 읽기  (0) 2016.11.04
에러코드 정리  (0) 2016.05.25
스프링 DI  (0) 2016.03.29

728x90

기다리는 마음은
땅거미지는 오렌지빛 
그라이데이션에 그려지는 해질녘 
바람소리에 실려서 
대지에 펼쳐지는 멜로디가 되어 울립니다.

잠들기 전 햇살은 
곱게 수놓은 마음과 닮아서 
밤이 찾아들면
지긋하게 뜨고 있는 
눈망울에 젖어드는 별빛 깃듭니다.

별을 세어 봅니다.

가슴을 타고 빛나는 별은 당신,
그 별 사이를 돌고도는 유성 별이 되어 
당신을 위해 노래 합니다.

잠에서 깨면 창을 열어
창을 타고 들어오는 새들의 노래 소리에 
마주하며 속삭이던 세레나데를 실어 보냅니다.
환한 미소를 지어 보세요.
그 노래소리는 당신에게 보내는 편지이니,
약속했던 굳은 맹세를 
피어오르는 꽃봉오리에 새깁니다.

이제 겨울이 지났으니, 
꽃봉오리는 붉게 피어나,
환하게 빛나는 꽃 잎되어
당신의 가슴에 부서져 내릴 것입니다.

728x90

'에세이' 카테고리의 다른 글

  (0) 2020.03.20
별이 아스라이 떨어지면  (0) 2016.04.10
봄비  (0) 2016.04.07
공백  (0) 2016.04.06
삭제  (0) 2016.04.06
728x90

STS에서 사용하는 메모리 설정 

 

이클립스가 설치된 폴더에 보면 STS.ini 라는 파일이 있다 (이클립스의 경우는 eclipse.ini 이다.)

해당하는 파일을 열어보면 열러가지 STS 혹은 이클립스에 관련된 설정을 볼 수 있다.

주요 내용은 아래와 같다.(다른 곳의 내용을 참조하기도 함)

 

1) -Dosgi.requiredJavaVersion=1.6

      ==> 현재 사용할 자바 버전

2) -vm c:\test\java\jdk1639\bin\javaw.exe​ 

    ==> 자바 파일의 위치

3) -Xverify:none

    ==> 초기 실행시 클래스의 유효성 검사 생략 설정

4) -XX:+UseParallelGC

    ==> 병렬 가비지 컬렉션 사용 설정

5) -XX:+AggressiveOpts

    ==> 컴파일러의 소수점 최적화 기능 작동 설정

6) -XX:-UseConcMarkSweepGC

    ==> 병행 Mark-Sweep GC 수행하여 이클립스 GUI의 응답 최적화 설정

7) -XX:+CMSIncrementalMode=true

    ==> 점진적인 GC 설정

8) -Xms512m

    ==> 이클립스가 사용하는 최소 Heap 메모리

 9) -Xmx512m

    ==> 이클립스가 사용하는 최대 Heap 메모리 - 최소와 최대를 같은 값으로 설정하면 

          힙메모리 영역의 변경이 없어 속도 향상

 10) -XX:PermSize=128m

      ==> Permanent Generation(JVM 클래스와 메서드를 위한 공간) 의 크기

 

-XX:MaxPermSize=128m (Permanent Generation(JVM 클래스와 메서드를 위한 공간)의 최대 크기 설정 ? Out Of Memory Error가 자주 발생하면 이 부분을 늘려 해결할 수 있음)

 

-XX:NewSize=128m (New Generation(새로 생성된 객체들을 위한 공간)의 기본 크기)

 

-XX:MaxNewSize=128m (New Generation(새로 생성된 객체들을 위한 공간)의 최대 크기)

 

http://wiki.eclipse.org/Eclipse.ini



출처: https://skycow79.tistory.com/26 [스스로 똑바로 서서 걸어가는 그날까지...]

728x90
728x90

특정 IP만 SSH 접속 허용하기특정 IP만 SSH 접속할 수 있도록 제한하기

목차

1 방법: hosts.allow, hosts.deny 설정[편집]

 리눅스 로그인 성공한 아이피 목록 보기 문서를 참고하십시오.

[root@zetawiki ~]# cat /var/log/secure* | grep Accepted | awk '{print $9"\t"$11"\t"$14}' | sort | uniq root 113.157.124.168 ssh2 root 135.79.246.217 ssh2 root 135.79.246.54 ssh2 root 135.79.246.80 ssh2

→ 113.157.124.168와 135.79.246.XXX 대역에서 로그인 성공한 기록이 있다...

# # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # sshd: 113.157.124.168, 135.79.246.

→ 113.157.124.168와 135.79.246.XXX 대역을 허용

위와 같이 한줄에 적어도 되지만, 아이피가 많아지면 관리가 어렵다. 아래와 같이 여러줄로 나누어 적어도 된다.

sshd: 113.157.124.168 sshd: 135.79.246.

# # hosts.deny This file describes the names of the hosts which are # *not* allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # The portmap line is redundant, but it is left to remind you that # the new secure portmap uses hosts.deny and hosts.allow. In particular # you should know that NFS uses portmap! sshd: ALL

→ 나머지는 모두 ssh 접근 불가

sshd를 재시작해야 적용된다.

[root@zetawiki ~]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]

2 테스트[편집]

허용되지 않은 IP에서 접속시도시 아래와 같이 접속 실패

[root@zetawiki ~]# ssh root@example.com ssh_exchange_identification: Connection closed by remote host

3 같이 보기[편집]

4 참고[편집]

728x90

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

도커 개념 정리  (0) 2022.05.24
리눅스 파일명으로 검색  (0) 2020.03.12
GREP 활용  (0) 2019.04.24
리눅스 파티션 관리  (0) 2016.01.14
apache server 버전 확인  (0) 2015.09.14
728x90

파일 내 내용 검색시

grep -i '찾고자하는내용' file명

ex) grep -i 'fileupload.jsp' localhost_access_log.20190425

728x90

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

리눅스 파일명으로 검색  (0) 2020.03.12
특정 IP만 ssh 접속 허용하기  (0) 2019.05.21
리눅스 파티션 관리  (0) 2016.01.14
apache server 버전 확인  (0) 2015.09.14
리눅스 언어 설정  (0) 2015.07.24

+ Recent posts