본문 바로가기

공부50

SQL옵티마이저 힌트, 조인방식(NL JOIN, SORT MERGE JOIN, HASH JOIN) SQL옵티마이저란? 사용자가 원하는 작업을 가장 효율적으로 수행할 수 있는 최적의 데이터 액세스 경로를 선택해주는 DBMS의 핵심엔진이다. SQL옵티마이저 힌트 사용법 주석 기호에 '+'를 붙인다. select /*+ INDEX(A 사원_PK)*/ 이름, 나이 FROM 사원 A WHERE 이름 = '홍길동' 아래와 같은 방식도 적용가능하다. (하지만 쿼리의 statement를 하드코딩해야하는 상황이라면 줄바꿈 오류가 발생할 수 있어 사용을 지양해야함.) select --+ INDEX(A 사원_PK) 이름, 나이 FROM 사원 A WHERE 이름 = '홍길동' 힌트 사용시 주의사항 1,2) 힌트안의 인자를 나열할 때 ','(콤마) 사용가능, 단 힌트와 힌트 사이에는 사용불가능 3) 스키마명 명시 하지 않을.. 2023. 7. 31.
[안드로이드/코틀린] MainActivity 초기 구성 기초 MainActivity.kt 는 메인 액티비티의 동적 코드를 작성하는 파일입니다 MainActivity클래스는 Activity클래스를 상속 받습니다. AppCompatActivity 클래스는 오래된 안드로이드 버전과 호환성을 유지하고 새로운 기능이 추가된 액티비티 클래스 입니다. AppCompatActivity의 특징 1. setSupportActionBar(Toolbar): API를 사용하여 action item, navigation mode 등을 포함하는 action bar를 지원합니다. 2. Theme.AppCompat.DayNight: AppCompatDelegate.setDefaultNightMode(int) API를 사용하여 다크 모드를 지원합니다. 3. getDrawerToggleDelega.. 2022. 4. 25.
[오라클 DB] 현재 세션의 날짜 형식 확인하는 방법, 논리 연산자 진리표 나라마다 날짜 형식이 다르기 때문에 날짜를 검색하기전 현제 접속한 세션의 날짜 형식을 확인해주어야 합니다. 현재 세션의 날짜 형식 확인하기 select * from nls_session_parameters where parameter='NLS_DATE_FORMAT'; 날짜 형식 정의 형식 정의 형식 정의 YYYY 연도 4자리 HH24 시간 (0~24) YY 또는 RR 연도 2자리 MI 분 (0~59) MM 달의 2자리 값 SS 초 (0~59) MON 달의 영문 약어 WW 연의 주 DD 숫자 형식의 일 IW ISO 표준에 따는 년의 주 DAY 요일 W 월의 주 DY 요일 약어 YEAR 영어 철자로 표기된 년도 D 요일의 숫자 MONTH 양어 철자로 표기된 달 YY와 RR의 차이? 이 둘은 서로 다르다. 예.. 2022. 2. 13.
[Oracle] order by와 rownum (feat. 프로그래머스 SQL) 프로그래머스의 오랜기간 보호한 동물(1) 문제를 풀며 궁금한게 생겼었다. 문제는 아래와 같다. 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FA.. 2022. 2. 3.
[Java] 컬렉션 프레임 워크 (List 인터페이스, Stack, Queue) 컬렉션 프레임 워크란? 프로그램 구현에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리이다. java.util 패키지에 구현되어 있다. 개발에 소요된느 시간을 절약하고 최적화된 라이브러리를 사용할 수 있다. Collection 인터페이스와 Map 인터페이스로 구성됨. Collection 인터페이스 하나의 객체 관리를 위해 선언된 인터페이스로 필요한 기본 메서드가 선언되어 있다. 하위에 List, Set 인터페이스가 있다. Map 인터페이스 쌍으로 이루어진 객체를 관리하는데 필요한 여러 메서드가 선언되어 있다. Map을 사용하는 객체는 Key-Value 쌍으로 되어 있고, Key는 중복될 수없다. List 인터페이스 Collection 하위 인터페이스이다. 객체를 순서에 따라 저장하고 관리하는데 필요한.. 2022. 1. 6.
[Java] 제네릭 프로그래밍 제네릭 프로그래밍이란? 변수의 선언이나 메서드의 매개변수를 하나의 참조 자료형이 아닌 여러 자료형으로 변환 될 수 있도록 프로그래밍 하는 방식이다. 실제 사용되는 참조 자료형으로의 변환은 컴파일러가 검증하므로 안정적인 프로그래밍 방식이다. 자료형 매개 변수 T 여러 참조 자료형으로 대체 될 수 있는 부분을 하나의 문자로 표현한것. (Type의 약자 T를 사용) 사용 예) 다른 타입에 대한 프린터(다른 재료 사용) 더보기 클래스 옆에 를 표시해준다. (임시 객체) public class GenericPrinter { private T material; public T getMaterial() { return material; } public void setMaterial(T material) { this... 2022. 1. 6.
[Java] String 클래스, StringBuilder와 StringBuffer, Wrapper 클래스 String 클래스 선언하기 String str1 = new String("abc");//인스턴스로 생성된다. String str2 = "abc";//상수풀에 있는 문자열을 가리킴 public class StringTest { public static void main(String[] args) { String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1 == str2); //결과는 힙메모리에 할당되어 메모리 위치가 다르기 때문에 false String str3 = "abc"; String str4 = "abc"; System.out.println(str3 == str4); //결과는 상수풀에 같은 값.. 2022. 1. 5.
[Java] JPA, MySQL연동 (Entity), JPA를 통한 CRUD JPA (Java Persistence API)? ORM(Object Relational Mapping)으로 인터페이스의 모음이다. RDB 데이터베이스의 정보를 객체지향으로 손쉽게 활용할 수 있도록 도와주는 도구이다. Object(객체)와 Relation(관계형 DB) 둘 간의 맵핑을 통해서 보다 손쉽게 적용할 수 있는 기술을 제공해준다. 또한 쿼리에 집중하기 보다는 객체에 집중함으로써, 조금 더 프로그래밍 적으로 많이 활용할 수 있다. MySQL연동하기 mysql.server start 의존성 추가 jpa, mysql dependencies { implementation('org.springframework.boot:spring-boot-starter-data-jpa') implementation('m.. 2021. 12. 31.
[Java] Lombok(롬복)이란? Lombok설치 Lombok(롬복) 이란? Java 라이브러리로 반복되는 getter, setter, toString .. 등의 반복 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리 이다. Lombok은 여러 어노테이션(@)을 제공하고 이를 기반으로 반복 소스코드를 컴파일 과정에서 생성해주는 방식으로 동작하는 라이브러리이다. Lombok 장점 어노테이션 기반의 코드 자동생성을 통한 생산성 향상 반복코드 다이어트를 통해 가독성 및 유지보수성 향상 Getter/Setter외 빌더 패턴이나 로그생성 등 다양한 방면으로 활용가능 Lombok 적용 방법 Intellij 기준 Preferences-Plugins-Marketplace lombok 검색 (이미 설치 되어 있을 수 있음) lombok라이브러리를 Gradle에 의존.. 2021. 12. 30.
[Java] Object 클래스 & Class 클래스 - toString(), equals(), hashCode(), clone(), forName() 모든 클래스의 최상위 클래스이다. java.lang.Object 클래스 (따로 import하지 않아도 된다.) 모든 클래스는 Object클래스에서 상속 받는다. 모든 클래스는 Object클래스의 메소드를 사용할 수 있다. 모든 클래스는 Object클래스의 일부 메서드를 재정의 하여 사용할 수 있다. (final로 정의된 메서드가 있기 때문) Object클래스의 toString메서드 toString()메서드의 원형: getClass().getName() + '@' + Integer.toHexString(hashCode()) 객체의 정보를 String으로 바꾸어 사용할 때 유용하다. package Object; class Book{ String title; String author; public Book(S.. 2021. 12. 29.
[백트래킹] N-Queen문제 백트래킹이란? 해를 찾기 위해 DFS방식으로 탐색하다가 해당 루트가 유망한지(Promising) 검사하여 조건이 맞지 않다면 가지치기(Pruning)하고 다른 루트로 돌아가 최적의 해를 찾는 방법이다. 상태 공간 트리(State Space Tree) 문제 해결 과정의 중간 상태를 각각의 노드로 나타낸 트리이다. N-Queen문제 대표적인 백트레킹 문제이다. 백준 9663번 문제: https://www.acmicpc.net/problem/9663 n = int(input()) row = [250] * n answer = 0 #현재 레벨에서 놓을 수 있는지 없는지 체크하는 함수 (행[자동 생략], 열, 대각선) def can(level): for i in range(level): if row[level] =.. 2021. 12. 28.
[Java] 인터페이스, 추상클래스 인터페이스 차이 인터페이스는 객체에 대한 명세이다. (어떤 메소드를 제공할건지, 어떤 역할은 하는 객체인지에 대한 설명서라고 본다.) 인터페이스의 요소 추상메서드: 모든 메서드는 추상메서드이다. 상수: 선언된 모든 변수는 상수로 처리 됨 디폴트 메서드: 기본 구현을 가지는 메서드(재정의 가능) 정적 메서드: 인스턴스 생성과 상관없이 인터페이스 타입으로 호출하는 메서드 private메서드: 인터페이스 내에서 사용하기 위해 구현한 메서드(재정의 x) 인터페이스 선언과 구현 public interface Calc { double PI = 3.14; int ERROR = -99999999;//인터페이스에서 선언한 변수는 컴파일 과정에서 상수로 변환된다.(public static final) int add(int a, int b.. 2021. 12. 27.