GiantStepDEV
article thumbnail
오라클(Oracle) - TCL (트랜잭션) COMMIT, ROLLBACK
🗄️ Backend/Oracle 2023. 2. 23. 19:26

트랜잭션? '쪼갤 수 없는 업무 처리의 최소 단위' 혹은 '거래 내역'이라고도 한다. 정의만 들었을 때는 이해가 잘 안되시죠? (일단 저는 이해가 잘 안됐습니다. ^^; 가장 대표적인 예로 은행 계좌이체를 들 수 있습니다. A가 B에게 1000원을 이체하고, B가 그 돈을 받은 경우, 이 거래 기록은 더 이상 작게 쪼갤 수 없는 하나의 트랜잭션 입니다. 만약 A는 B에게 돈을 이체했으나 B는 돈을 받지 못했다면 그 거래는 성립되지 않습니다. 이 예시와 같이 A가 돈을 지불하는 행위와 B가 돈을 받는 행위는 별개로 분리될 수 없으며, 하나의 거래내역으로 처리되어야 하는 단일 거래 입니다. 이런 거래의 최소 단위를 트랜잭션이라고 합니다. 트랜잭션 처리가 정상적으로 완료된 경우 COMMIT을 하고, 오류가 발..

article thumbnail
OOP(3) 상속: 재사용과 확장 + LSP, ISP
📚 Study/OOP 2023. 2. 22. 20:41

상속은 상속이 아니다. 흔히 상속이라고 하면 부모의 유산을 상속받는다는 의미를 생각합니다. 아래 사전적 의미만 보아도 가족관계를 나타내는 단어인 것을 알 수 있습니다. 명사 2. 법률 일정한 친족 관계가 있는 사람 사이에서, 한 사람이 사망한 후에 다른 사람에게 재산에 관한 권리와 의무의 일체를 이어 주거나, 다른 사람이 사망한 사람으로부터 그 권리와 의무의 일체를 이어받는 일. 흠... 대체 객체지향과 상속이 무슨 연관이 있는 것일까요? 맞습니다. 연관이 없습니다. 앞에 객체지향의 4대 특성이 캡슐화, 상속, 추상화, 다형성 이라고 해놓고 무슨 소리냐구요? 이는 영어를 한국어로 번역하다 생긴 오해 아닌 오해라고 말씀드리고 싶습니다. 객체지향에서의 상속은 계층도(조직도)가 아닌 분류도로 이해하는 것이 맞..

OOP(2) static vs instance
📚 Study/OOP 2023. 2. 22. 14:21

지난 시간에는 '추상화'에 대해서 알아보았습니다! https://developyanggaeng.tistory.com/190 [스프링 입문을 위한 자바 객체 지향의 원리와 이해] OOP(1) 추상화는 모델링 클래스와 객체 관계의 오해에 대해서는 '팩터리 메소드 패턴' 글에 정리하여 업로드 하였습니다. 클래스와 객체의 관계는 붕어빵틀과 붕어빵이 맞나에 대한 주제 https://developyanggaeng.tistory.com/189 developyanggaeng.tistory.com 그 연장선으로 static 키워드에 대해서 자세히 알아보도록 하겠습니다. 개인적으로 객체 지향 배울 때 static이 너무 헷갈렸던.. 클래스 멤버 vs 객체 멤버 = static 멤버 vs instance 멤버 지금까지 무수..

article thumbnail
OOP(1) 추상화는 모델링
📚 Study/OOP 2023. 2. 22. 12:08

클래스와 객체 관계의 오해에 대해서는 '팩터리 메소드 패턴' 글에 정리하여 업로드 하였습니다. 클래스와 객체의 관계는 붕어빵틀과 붕어빵이 맞나에 대한 주제 https://developyanggaeng.tistory.com/189 [스프링 입문을 위한 자바 객체 지향의 원리와 이해] (1) 팩터리 메소드 패턴 + 클래스와 객체의 서론 일전에 한 블로그 글을 참고하여 팩터리 메소드 패턴 글을 올렸었는데.. 사실 당시에 내가 이해하기에는 글이 어려워서 해당 패턴에 대한 흐름을 이해하기 어려웠다. https://developyanggaeng.tist developyanggaeng.tistory.com 근데 저렇게 혼용해서 글을 작성하니 나중에 찾아볼 때 불편할 것 같아서 이번 포스팅 부터는 주제를 하나만 정하고..

article thumbnail
(JAVA자바) 팩터리 메소드 패턴 + 클래스와 객체의 관계에 대해서..
📚 Study/Design Pattern 2023. 2. 21. 20:49

서론 일전에 한 블로그 글을 참고하여 팩터리 메소드 패턴 글을 올렸었는데.. 사실 당시에 내가 이해하기에는 글이 어려워서 해당 패턴에 대한 흐름을 이해하기 어려웠다. https://developyanggaeng.tistory.com/129 3. [자바/Java] 팩토리 메소드 패턴(Factory Method Pattern) : '객체'와 '객체 생성 클래스' 분리하는 디자 해당 내용은 아래 블로그 포스팅을 참조하였습니다. https://memostack.tistory.com/61 Design Pattern - Factory Method Pattern (팩토리 메소드 패턴) Factory Method Pattern 팩토리 메소드 패턴은 '객체'와 '객체 생성 클 developyanggaeng.tistory..

오라클(Oracle) - DML(Data Manipulation Language)
🗄️ Backend/Oracle 2023. 2. 21. 18:44

예제에 앞서 연습용 테이블 생성 (기존 테이블 복사) CREATE TABLE DEPT_TEMP AS SELECT * FROM DEPT; DML? 데이터를 조회(SELECT), 삭제(DELETE), 변경(UPDATE), 입력(INSERT) 등으로 데이터를 조작하는데 사용하는 구문 📌 조회(SELECT)는 DQL 행은 객체, 열은 인스턴스 필드라고 생각하면 쉽다. 따라서, INSERT는 객체지향 문법 중 생성자를 통해 new 하여 객체 만드는 것과 유사함. 또한 접근제한자 처럼 각 열마다 제약조건 걸 수 있음(UNIQUE, NOT NULL ...) INSERT 테이블에 데이터 추가 INSERT INTO 테이블이름 (열1, 열2, ...) VALUES(열에 해당하는 데이터, ...); (1) 테이블 목록과 추..

article thumbnail
오라클(Oracle) - 종합 실습 문제(HR 계정)
🗄️ Backend/Oracle 2023. 2. 21. 18:18

1. EMPLOYEES 테이블에서 100번 부서의 최소 급여보다 최소 급여가 많은 다른 모든 부서를 출력 SELECT DEPARTMENT_ID, MIN(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT_ID HAVING MIN(SALARY) > ANY (SELECT SALARY FROM EMPLOYEES WHERE DEPARTMENT_ID = 100); SELECT DEPARTMENT_ID, MIN(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT_ID HAVING MIN(SALARY) > (SELECT MIN(SALARY) FROM EMPLOYEES WHERE DEPARTMENT_ID = 100); 2. EMPLOYEES 와 DEPARTMENTS 테..

article thumbnail
자바(Java) [백준] 25305번 : 커트라인
🔄 Algorithm/BaekJoon 2023. 2. 20. 20:08

문제 2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N명의 학생들이 응시했다. 이들 중 점수가 가장 높은 K명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라. 커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다. 입력 첫째 줄에는 응시자의 수 N과 상을 받는 사람의 수 K가 공백을 사이에 두고 주어진다. 둘째 줄에는 각 학생의 점수 X가 공백을 사이에 두고 주어진다. 출력 상을 받는 커트라인을 출력하라. import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = ne..

article thumbnail
오라클(Oracle) - (DQL) : 서브쿼리
🗄️ Backend/Oracle 2023. 2. 20. 18:34

SQL문 안에 작성하는 작은 SELECT 문, 주로 WHERE 절에서 사용 서브 쿼리는 반드시 괄호() 안에 넣어 표현 서브 쿼리 특징 조회 대상의 오른쪽에 놓이며 () 묶어서 사용 대부분의 경우 ORDER BY 절을 사용할 수 없음 메인 쿼리의 대상과 서브 쿼리의 대상은 같은 자료형이거나 같은 개수로 지정해야 함 서브 쿼리와 메인 쿼리는 연산자와 함께 상호 작용하는 방식에 따라 단일행 서브 쿼리와 다중행 서브 쿼리로 나눠짐 예제 🐸 사원의 이름으로 사원이 속한 부서 번호를 찾음(서브쿼리) - 메인 쿼리에서 부서 이름과 부서 번호를 비교해서 원하는 결과를 찾음 SELECT DNAME FROM DEPT WHERE DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME = 'KING..

article thumbnail
자바(Java) [백준] 2587번 : 대표값2
🔄 Algorithm/BaekJoon 2023. 2. 17. 20:06

문제 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다. 평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면 10 30 30 40 60 이 되고 따라서 중앙값은 30이 된다. 다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오. 입력 첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자연..