분류 전체보기 161

[Linux] 리눅스 기초

클라우드와 리눅스 Cloud 클라우드는 가상화된 환경이다. 그 종류는 aaS를 기준으로 주로 나눕니다. aaS는 as a Service (서비스를 위한)이라는 뜻 입니다. 종류에 따라 XaaS, IaaS, PaaS, SaaS로 나눌 수 있으며, 최근에는 AIaaS라는 말도 등장합니다. 각각에 대해 간단히 살펴보겠습니다. XaaS IaaS : Infra as a Service PaaS : Platform as a Service SaaS : Service(Software) as a Service AIaaS : AI as a Service Infra 인프라(IaaS) Infrastructure, 기반시설 서버, 네트워크, 등 → “하드웨어(H/W)” 키보드, 모니터 등.. IaaS: 하드웨어, 운영체제 등 P..

[Oracle] PL/SQL(2)

RECORD 레코드(RECORD)는 자바의 클래스와 동일합니다. 다양한 데이터 타입을 갖는 여러 변수를 갖는 자료형입니다. 데이터 타입은 VARCHAR2, NUMBER, DATE 등 다양하게 있습니다. 기본 데이터 타입과 테이블명.컬럼명%TYPE, 테이블명.ROW%TYPE 등 선언 가능합니다. "%TYPE"이라는 키워드를 기억합시다. 레코드의 선언방법 TYPE 레코드명 IS RECORD( 변수이름1 데이터타입[NOT NULL, DEFAULT]:=값 OR 수식; 변수이름2 테이블명.컬럼명%TYPE; .... ) 레코드가 다양한 데이터타입의 변수를 갖는 집합으로 볼 수 있고, Java의 class에서 메소드만 빠진 형태입니다. 순서가 있고 이를 파악하면 좋습니다. 레코드 선언 TYPE 레코드명 IS RECO..

[Oracle] PL/SQL (1)

PL/SQL PL/SQL(Procedural language extension to SQL) SQL 문장 안에서 변수를 만들고 조건처리, 반복처리(LOOP, WHILE, FOR)를 할 수 있는 오라클 자체 내장된 절차적인 언어입니다. PROCEDURE, FUNCTION, TRIGGER 등이 PL/SQL로 포함됩니다. PL/SQL의 장점 BLOCK 구조로 다수의 SQL문이 한번에 DB로 보낼 수 있으니, 처리속도가 향상됩니다. BLOCK 구조로 되어서 모듈화가 편합니다. 큰 BLOCK에 작은 BLOCK을 여러개 생성해서 다양하게 처리합니다. 단순하거나 복잡한 변수를 선언해서 사용할 수 있기 때문에 데이터를 계속 조회해야 하는 일이 적습니다. 예외처리가 가능하기 때문에 에러가 발생해도 다른 루틴을 생성해서 ..

[Java] 서울에서 김서방 찾기

김서방은 x에 있다를 찾습니다. 이 문제는 다시 해석해보면, seul이라는 String 배열에서 "Kim"이라는 성분의 위치(인덱스)값을 찾으면 되는 간단한 문제입니다. class Solution { public String solution(String[] seoul) { String answer = ""; for(int i = 0 ; i < seoul.length ; i++){ if(seoul[i].equals("Kim")){ answer = "김서방은 " + i + "에 있다"; } } return answer; } } 그래서 저는 for문을 활용해서 seoul 배열의 성분의 수만큼 반복해서 성분 중에 "Kim"이 있는 경우의 인덱스 값을 answer에 넣어 반환시켰습니다. 문자열을 반환해야 하므로,..

[Oracle] 다중행 함수

다중행 함수 다중행 함수는 그룹화와 관련된 함수입니다. ROLLUP, CUBE, GROUPING SETS, PIVOT, UNPIVOT 등이 있습니다. 예를 들고자, EMP라는 테이블을 사용할 것입니다. 1. ROLLUP 이 함수는 GROUP BY절에 넣어서 사용할 수 있습니다. ROLLUP(그룹화 컬럼1, 그룹화 컬럼2 ...) 결과는 다음과 같습니다. 각각 마지막 컬럼 결과가 하나씩 제거된 그룹화 결과가 출력됩니다. 컬럼1별 컬럼2별 컬럼3별 ... 컬럼n별 결과 ... 컬럼1별 컬럼2별 컬럼3별 결과 컬럼1별 컬럼2별 결과 컬럼1별 결과 전체 데이터의 결과 예를 들어, EMP 테이블에서 ROLLUP 없이 부서번호, 업무별 통계를 내볼 수 있습니다. SELECT DNO , JOB , MAX(SAL) ,..

[Oracle] 다양한 팁들

WHERE과 ON의 상호 사용 --WHERE절로 빼도 되고, AND절로 바로 조건을 더 넣어도 된다!! Q1. 송강 교수가 강의하는 과목을 검색한다 ON절에 AND로 조건 추가 SELECT C.* , P.PNAME FROM COURSE C JOIN PROFESSOR P ON C.PNO = P.PNO AND P.PNAME = '송강'; ON절 뒤에 WHERE절로 조건 추가 SELECT C.* , P.PNAME FROM COURSE C JOIN PROFESSOR P ON C.PNO = P.PNO WHERE P.PNAME = '송강'; Q2. 화학과 1학년 학생이 수강하는 과목 검색 --DISTINCT로 하나씩만 출력하게 한다. --STUDENT에서는 가져오는 내용이 없어야 DISTINCT가 가능하다!!! S..

[Java] 스트림 (Stream)

1. 스트림이란? 컬렉션이나 배열의 요소를 반복해서 처리하는 하나의 방식입니다. 컬렉션에 .stream() 메소드가 있어서 컬렉션을 스트림형식으로 변경해서 사용 가능합니다. 2. 스트림 선언 컬렉션 list => Stream typeStream = list.stream(); 3. 스트림의 forEach 람다식을 활용합니다. 컬렉션 요소 하나씩 담는 변수명을 아무거나 지정합니다. 내부에는 처리할 내용이 한 줄이면, 중괄호{} 없이 작성하고, 두 줄 이상이면 중괄호{} 내에 작성합니다. typeStream.forEach(컬렉션 요소 하나 담은 변수명 -> {처리할 내용}); 내부반복자로, Iterator보다 빠른 처리속도를 가지며, 람다식으로 다양한 작업이 가능합니다. 파이프 라인 혹은 체이닝 기법으로 중간..

[Java] 멀티스레드

Thread(스레드) - 영어 사전으로는 실, 흐름 등을 의미합니다. - 프로그램의 흐름으로 생각해볼 수 있습니다. - OS는 프로그램 하나를 처리할 때 프로세스라는 단위로 처리합니다. 멀티태스킹 멀티스레드 프로그램을 동시에 여러 개 사용할 때 프로세스가 각각의 프로그램에 하나씩 배정되어 멀티 프로세스로 처리합니다. 프로그램의 내부에서 멀티태스킹이 이루어질 때 사용. - 멀티태스킹 ≠ 멀티프로세스? 1) 하나의 프로긂이 동시에 두 작업을 합니다. 2) 단일 프로세스만 할당이 되고, 두 작업을 동시에 진행 가능하게 해주는 개념은? "멀티 스레드" 프로세스 vs 스레드 프로세스 스레드 여러 개가 독립적으로 존재합니다. 프로세스 내에 포함되어 있습니다. 하나가 문제되어도 다른 프로그램에 영향을 주지 않습니다...

[Java] 상수의 할당

☑️하나만 할당 상수는 선언시 모든 상수가 동일한 타입을 가져야 합니다. 지정된 상수 값의 타입이 있다면, 변수를 생성할 때 아래처럼 생성할 수 있습니다. private static final + 정해진 타입 + 변수명; 기본 생성자를 하나 추가해서, 위에서 만든 변수에 호출된 상수의 값을 대입합니다. 변수가 private로 선언되므로, 접근하려면 getter 와 setter를 사용해야합니다. 값의 할당은 상수명(모두 동일한 타입을 갖는 상수값) 의 형식으로 수행됩니다. 상수명1(상수값), 상수명2(상수값), ... ☑️ 여러개 할당 여러개 상수값 중 첫째 상수와 나머지 상수는 각각의 상수값 수가 동일해야 합니다. 상수값이 선언된 위치별로 타입을 다르게 하지만, 같은 위치의 상수는 모두 같은 타입을 가져..

[Java] enum 열거형 정리

Enum 열거형? 1) 이넘(enum)은 열거형을 의미합니다. 상수를 모아서 클래스같이 만들어주는 멋진 기능입니다. 상수가 가지는 특징이 값이 한번 정해지면 변하지 않는 것입니다. 따라서, 열거형에 있는 상수도 값의 변경이 불가능합니다. 2) 인터페이스와 클래스의 중간 단계 형태를 가집니다. 인터페이스 : 추상자료형으로 구현할 동작을 지정합니다. 클래스 : 객체들을 모은 설계도이고, 실제 구현이 이루어집니다. 3) 객체처럼 선언하고 사용가능합니다. 4) 열거형을 사용하지 않는다면? - 관련된 상수를 하나씩 모두 정의해야하고, 사용하더라도 Value로서 역할만 합니다. - 가령 1년에 속한 월 이름에 대해 상수로 값을 넣어준다고 하면, 아래와 같이 코드를 작성합니다. - 번거롭고 불편합니다. public ..