devnoong.log
article thumbnail
[SPRING] 싱글톤에 대해서
WEB/BACKEND 2022. 7. 28. 08:41

싱글톤이란? 소프트웨어 디자인 패턴에서 사용하는 패턴으로 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 즉, 클래스의 인스턴스가 하나만 생성되는것을 보장하며 인스턴스에 접근할 수 있는 전역적인 접촉점 을 제공해 하나의 인스턴스를 통해서만 접근이 가능하도록 제어하는 패턴이다. 싱글톤 사용 이유 요청이 엄청나게 많은 트래픽 사이트에서는 계속 객체를 생성하게 되면 메모리 낭비가 심하기 때문에 대규모 트래픽과 요청을 처리 할 수 있도록 사용한다. 사용 전 public class AppConfig { public SingleTone singleToneTest(){ return new SingleTone(); } } @Te..

article thumbnail
[JAVA] Stack 과 Heap에 대해서
JAVA 2022. 7. 27. 16:50

JVM 메모리 영역 https://devnoong.tistory.com/5 [JAVA] JVM 구조 JVM 이란? JavaVirtualMachine의 줄임말로 OS에 종속되지 않고 CPU가 JAVA를 인식 및 실행 할 수 있게 도와주는 가상 장치를 뜻한다. 자바 소스 코드로 작성된 자바 파일은 Javac라는 Java 컴파일러에 의해 JVM devnoong.tistory.com JVM구조에 대해서 이전 시리즈로 글을 올린 적이 있었다. JVM의 자세한 구조는 위의 링크를 참조하면 되고 Stack과 Heap에 대해 자세하게 알아보기 위해 기록한다. 간략하게 JVM에 할당된 메모리 영역을 보면 아래와 같다. Code 영역 실행할 프로그램의 코드가 저장되는 영역으로 ClassLoader에 의해 배치된 코드들을 ..

article thumbnail
[JAVA] JVM 구조
JAVA 2022. 7. 27. 16:40

JVM 이란? JavaVirtualMachine의 줄임말로 OS에 종속되지 않고 CPU가 JAVA를 인식 및 실행 할 수 있게 도와주는 가상 장치를 뜻한다. 자바 소스 코드로 작성된 자바 파일은 Javac라는 Java 컴파일러에 의해 JVM이 해석 할 수 있도록 바이트 코드 형태인 클래스 파일로 변환됨. 바이트코드 형태인 class파일은 ClassLoader를 통해 JVM 메모리에 할당 되고 실행 엔진에 의하여 기계어(바이너리코드)로 변환 된다. CPU는 바이너리코드를 읽어 컴퓨터가 이해하고 수행 할 수 있도록 Runtime Data Area에 배치되어 실질적인 수행을 처리해준다. 즉, 컴파일과 실행이 동시에 일어나는 것이 아닌 ① 컴파일 과정 ② 실행 과정 이렇게 분리돼서 수행된다. ① 컴파일 과정은 ..

article thumbnail
[DB] 힌트에 대해서
DB/Oracle 2022. 7. 27. 16:26

힌트(Hint)란? 오라클 옵티마이저(Optimizer) 대신 개발자가 직접 최적의 실행 경로를 작성해 주는 것이다. 단, 힌트, 인덱스, 조인의 개념을 정확히 알고 사용하지 않은 무분별한 힌트의 사용은 성능의 저하를 초래하기 때문에 최적의 실행 경로를 알고 있을 경우 적절하게 사용하여야 한다. 사용이유 Select 조회 컬럼이 인덱스 컬럼으로만 구성되어 있을 경우, 인덱스 영역에서 스캔하기때문에 조회 속도도 빠르고 인덱스 컬럼이 설정된 대로 정렬이 돼서 조회가 된다. 하지만 인덱스컬럼뿐만 아니라 다른 컬럼도 포함되어 있을 경우 FullTableScan을 시도하기때문에 조회 속도가 느리고 정렬이 되지 않는다. 하지만 힌트절을 사용한다면, 인덱스 영역에서 인덱스가 생성된 순서대로 스캐닝을 시도하고 정의 해..

article thumbnail
[DB] INDEX에 대해서
DB/Oracle 2022. 7. 27. 16:13

INDEX란? RDBMS에서 대용량의 데이터가 존재할 때, 특정 데이터를 검색하기 위해 테이블을 FullScan하는것이 아니라 Range Scan을 통해 빠르게 검색할 수 있도록 도와주는 자료구조이다. 정렬 된 구조로 ROWID가 존재하기 때문에 별도의 정렬이 필요없어서 ORDER BY를 사용하는것보다 훨씬 효율적이다. 데이터를 찾은 후 ROWID를 이용하여 테이블 레코드를 찾아간다. 인덱스의 자료구조 인덱스의 자료 구조 종류는 다양하게 존재한다. 그중에서 B-Tree구조 , B+Tree , B*Tree 구조와 HashTables 구조를 많이 사용한다. ▶ B-Tree 구조 자식의 노드 개수가 2개이상인 트리구조를 뜻한다. B-Trees는 이진트리에서 발전되어 모든 리프노드들이 같은 레벨을 가질 수 있도..

article thumbnail
[DB] Oracle 바로 사용하기
DB/Oracle 2022. 7. 27. 15:46

Oracle이란? RDBMS 종류에 해당하는 데이터베이스를 지칭합니다. Oracle 데이터베이스를 생성 및 사용하기 위해서는 두가지 작업이 필요합니다. ① Oracle 다운로드 우선 Oracle 데이터베이스가 생성이 되어야 사용을 할 수 있기때문에 데이터베이스를 생성할때 필요한 Oracle 소프트웨어를 다운받아야합니다. https://www.oracle.com/tools/downloads/sqldev-v192-downloads.html ② sql developer 다운로드 데이터베이스를 생성했으면 해당 DB를 DDL,DML,DCL 하기 위한 개발툴이 필요합니다. 무료 개발툴 sql developer를 다운받아서 사용 후 필요에 따라 명령어를 수행합니다. https://www.oracle.com/tools..