초록꼬마의 devlog
article thumbnail
[KH정보교육원] 22일차_DML(INSERT, UPDATE, DELETE), DDL(ALTER, DROP)
back-end dev/database 2021. 11. 11. 00:46

2021.11.10(수) 🌿 DML DATA MANIPULATION LANGUAGE, 데이터 조작 언어 테이블에 새로운 데이터를 삽입(INSERT) + 기존의 데이터를 수정(UPDATE) + 삭제(DELETE)하는 구문 🌱 INSERT 1. INSERT: 테이블에 행 추가하는 구문; 해당 테이블의 모든 컬럼에 추가하고자 하는 값을 내가 직접 제시해서 한 행을 INSERT하고자 할 때 사용 주의할 점: 컬럼 순번을 지켜서 VALUES 괄호 안에 나열해야 함 표현법 INSERT INTO 테이블명 VALUES(값, 값, 값..); INSERT INTO 테이블명(컬럼명1, 컬럼명2, 컬럼명3, ..) VALUES(값1, 값2, 값3, ..); INSERT INTO 테이블명 (서브쿼리); : VALUES로 값을 ..

article thumbnail
[KH정보교육원] 19일차_추상클래스
back-end dev/Java 2021. 11. 9. 23:13

2021.11.5(금) 주말 숙제로 추상클래스 연습 (실습 파일 위치: 09 Polymorphism > src > com > kh > hw > practice3) package com.kh.practice3.model.vo; public abstract class Animal { private String name; private String kinds; protected Animal() { //super(); } protected Animal(String name, String kinds) { //super(); this.name = name; this.kinds = kinds; } public String getName() { return name; } public void setName(String..

article thumbnail
[KH정보교육원] 21일차_DDL(CREATE)
back-end dev/database 2021. 11. 9. 23:11

2021.11.9(화) 🌿 제약조건(constraints) 원하는 데이터값만을 유지/보관하기 위해 특정 컬럼마다 설정하는 제약 제약조건이 부여된 컬럼에 들어올 데이터에 문제가 없는지 자동으로 검사 → 데이터 무결성 보장 컬럼에 제약 조건을 부여하는 방식 컬럼 레벨: 제약조건을 부여하고자 하는 컬럼 뒤에 기술 → 컬럼명 자료형 (CONSTRAINT 제약조건명) 제약조건 테이블 레벨 CREATE TABLE MEM_CON_NM( MEM_NO NUMBER NOT NULL, MEM_ID VARCHAR2(20) NOT NULL, MEM_PWD VARCHAR2(20) NOT NULL, MEM_NAME VARCHAR2(20) CONSTRAINT MEM_NAME_NN NOT NULL, -- 컬럼레벨 방식 제약조건 GEN..

article thumbnail
[KH정보교육원] 21일차_미니팀프로젝트
back-end dev/Java 2021. 11. 9. 23:09

2021.11.9(화) 🌿 과제 내용 추상클래스, 객체 배열 활용 → 영화관 예매 앱 만들기 (+이 아이디어를 구현할 다른 팀에게 전달할 문서도 작성) 처음에 주어진 시간 = 3시간 → 결국 6시간 활동 🌿 회고 어려웠던 점 주제 선정 시 주어진 시간에 우리가 이용 가능한 기술로 실현 가능한 주제(대상 및 기능)를 정확히 파악하고 결정해야 하는 점 + 핵심 기능의 선택과 집중 원격 회의를 해야 할 때 효율적인 역할 분담 및 협업 방법 문서화의 절차 및 형식에 익숙치 않은 점 - 특히 우리가 주어진 시간에 정확히 무엇을 얼만큼 할 수 있는지 감이 없는 상태에서 프로그램 기획을 해야 하는 점이 어려웠다 깨달은 점 우리반에는 잘하는 학우분들이 많다 여러 사람이 모이면 다양하고 재미있는 아이디어가 나온다(주제 ..

article thumbnail
[KH정보교육원] 20일차_SUBQUERY, RANK, CREATE
back-end dev/database 2021. 11. 8. 22:07

2021.11.8(월) 🌿 SUBQUERY 🌱 INLINE-VIEW FROM절에 서브쿼리 제시 → 서브쿼리를 수행한 결과(RESULT SET)를 테이블 대신 사용 -- 문제 = 보너스 포함 연봉이 3천만원 이상인 사원들의 사번, 이름, 보너스 포함 연봉, 부서코드 조회 -- 방법1) SELECT EMP_ID, EMP_NAME, (SALARY * (1 + NVL(BONUS, 0))) * 12 "보너스 포함 연봉", BONUS, DEPT_CODE FROM EMPLOYEE WHERE (SALARY * (1 + NVL(BONUS, 0))) * 12 >= 30000000; -- 방법2) INLINE-VIEW(FROM절의 서브쿼리)를 사용 -> 서브쿼리의 RESULT SET을 하나의 테이블로 사용 SELECT EM..

article thumbnail
[KH정보교육원] 19일차_SUBQUERY
back-end dev/database 2021. 11. 8. 07:59

2021.11.5(금) 🌿 SUBQUERY 하나의 주된 SQL문 안에 포함된 또 하나의 SELECT문 main SQL문의 보조 역할을 하는 쿼리문 서브쿼리를 수행한 결과값이 몇 행 몇 열이냐에 따라 구분 + 서브쿼리를 수행한 결과가 몇 행 몇 열이냐에 따라 사용 가능한 연산자도 달라짐 🌱 단일행 (단일열) 서브쿼리 서브쿼리를 수행한 결과값이 오로지 1개일 때 일반 연산자(=, !=, >=, < 등) 사용 가능 -- 문제 = 부서별 급여 합이 가장 큰 부서 하나의 부서코드, 부서명, 급여 합 조회 SELECT DEPT_CODE, DEPT_TITLE, SUM(SALARY) FROM EMPLOYEE LEFT JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID) GROUP BY DEPT_CO..

article thumbnail
[KH정보교육원] 18일차_JOIN
back-end dev/database 2021. 11. 8. 07:59

2021.11.4(목) 🌿 equal(등가)/inner(내부) join 연결시키는 컬럼의 값이 일치하는 행들만 JOIN되어 조회 일치하지 않는 값/행들은 조회에서 제외 → 일치하지 않는 값들 조회하려면 포괄JOIN 등 사용 🌱 연결할 두 컬럼명이 다른 경우 -- 문제 = DEPARTMENT 테이블, LOCATION 테이블 참고해서 부서코드, 부서명, 지역코드, 지역명(LOCAL_NAME)(, 국가코드) 조회 -- ORACLE구문 SELECT DEPT_ID, DEPT_TITLE, LOCATION_ID, LOCAL_NAME, NATIONAL_CODE FROM DEPARTMENT, LOCATION WHERE LOCATION_ID = LOCAL_CODE; -- ANSI구문 SELECT DEPT_ID, DEPT_..

article thumbnail
[KH정보교육원] 17일차_SELECT 함수
back-end dev/database 2021. 11. 8. 07:58

2021.11.3(수) 함수 vs 메서드 함수: Built-in Function, 인자로 들어온 데이터에 의해 판별함 e.g. LEN(문자열), LEN(정수), LEN(실수) 등 메소드: 참조(객체가 가지고 있는 것(속성, 행위 + '자료형')을 사용하고자 함)할 객체가 필요함 → 특정 자료형(Java에서는 클래스)에만/(내가 만든) 클래스의 객체만 사용할 수 있는 함수 → 자료형/클래스가 명시되지 않으면 사용 불가능, 클래스 안에 없는 메소드는 사용 불가능 e.g. 문자열.length(), Object.toString() 등 함수 전달된 값을 읽어서 계산한 결과를 반환 단일행 함수 + 그룹 함수 🌿 단일행 함수 N개의 값을 읽어서 N개의 값을 리턴 ← 각 행마다 반복적으로 적용되어 입력받은 행의 개수만..

article thumbnail
[KH정보교육원] 16일차_환경 설정, SELECT 기본문법
back-end dev/database 2021. 11. 8. 07:58

2021.11.2(화) 🌿 환경 설정 Oracle, SQL developer 설치 Bootcamp로 설치한 Windows에서 Oracle 접속이 안 되어서, 일단 학원 컴퓨터(Windows) 원격 접속해서 사용 11월 중순 Parallels 구입해서 Windows 설치하고 Oracle 설치 계정 생성 및 접속 🌿 SQL 세미콜론 ; = 논리적인 문장의 끝 → 세미콜론이 나오기 전까지 논리적인 문장이 완성된 것이 아닌 바, 중간에 개행 들어가도 상관없음 → 처음에는 줄 바꿔서 적는 습관(+가독성 향상) 명령어, 키워드, 테이블명, 컬럼명 대/소문자 구분 없으나, 대문자로 쓰는 버릇 들이기 🌱 SELECT 기본 문법 SELECT: 데이터를 조회하거나 검색할 때 사용되는 명령어 Result Set: SELEC..

article thumbnail
[KH정보교육원] 15일차_평가 및 미니팀프로젝트
back-end dev/Java 2021. 11. 7. 15:53

2021.11.1(월) 🌿 프로그래밍언어(Java) 활용 평가 서술형 문제 해결 시나리오 🌿 미니 팀 프로젝트(다형성) (파일 위치: 09polymorphism > src > com > kh > practice > chap01_poly) 📗 소감 Java 문법 후반부 공부를 깊게 하지 못했는데, 그래서 이번 팀 프로젝트 과제가 어렵게 느껴졌다. 다형성 등 객체 지향 개념은 다 이해했다고 생각했는데, 코드로 써지지 않았다.. 또 막상 배열 초기화 등도 직접 해보려니 잘 안 써졌다. 코드는 꼭 손으로 쳐봐야겠다

article thumbnail
[KH정보교육원] 14일차_추상클래스, 인터페이스, 예외처리
back-end dev/Java 2021. 11. 7. 15:51

2021.10.29(금) 🌿 객체 지향 프로그래밍 🌱 추상클래스 표현법: 접근제한자 abstract class 클래스이름 (abstract: 예약어로써, 추상클래스, 추상메소드 선언 시 붙임) 추상메소드가 존재하는 순간 추상클래스로 정의됨 → abstract라는 예약어를 사용해서 정의해야 함 객체 생성이 불가능함 부모 클래스 구실은 가능 → 다형성 적용 가능 추상 클래스 = 미완성 설계도, 구체적인 구현을 빼버리고 추상화만 한 것 추상 클래스 = 추상메소드 + 일반필드 + 일반메소드 → 3가지 모두 생략 가능, 개발자의 역량/판단에 따라 추상 메소드가 없어도 추상 클래스로 정의 가능 사용 examples 개념적으로 개발자가 판단했을 때 해당 클래스가 아직 구체적으로 덜 구현된 상태인 것 같을 때 기술적으..

article thumbnail
[KH정보교육원] 13일차_다형성
back-end dev/Java 2021. 11. 7. 15:50

2021.10.28(목) 🌿 개념 '여러 개의 형태를 갖는다'는 의미 상속을 이용한 기술로, 부모 타입으로부터 파생된 여러 가지 타입의 자식 객체를 부모 클래스 타입 하나로 다룰 수 있는 기술 상위 타입으로 하위 타입의 객체를 사용할 수 있는 기술 🌱 Binding 다형성이 적용된 경우 메서드 오버라이딩이 되어 있으면, 정적으로 바인딩된 메서드 코드보다 오버라이딩된 메서드 코드를 우선적으로 수행 = 동적 바인딩 정적 바인딩 = 프로그램이 실행되기 전에 컴파일 되면서 모든 메서드는 정적 바인딩됨 동적 바인딩 = 컴파일 시 정적 바인딩된 메서드를 실행할 당시의 객체 타입을 기준으로 바인딩됨 🌱 활용 예시1) 상속 관계에 있는 하나의 부모 클래스 타입의 배열 공간에 여러 종류의 자식 클래스 객체를 저장할 수 ..

article thumbnail
[KH정보교육원] 12일차_상속
back-end dev/Java 2021. 11. 7. 15:49

2021.10.27(수) 🌿 개념 기존의 클래스(부모 클래스)를 재사용하여 새로운 클래스(자식 클래스)를 작성하는 것 기존 클래스를 확장/특화하는 것 → 자식 클래스 extends 부모 클래스 코드의 중복을 줄이고 프로그램의 확장성 향상 "자식 is-a 부모" 관계 클래스의 상속은 단일 상속만 가능 인터페이스 상속/구현은 다중 상속 가능 🌿 오버라이딩 부모 클래스로부터 상속받은 메서드의 몸체를 자식 클래스에서 재정의하는 것(o) 그대로 사용(x) 부모-자식 클래스에서 같은 이름의 메서드가 다른 기능을 수행하게 됨 접근 제어자의 가시성/접근 범위는 같거나 커져야 함 Overloading vs Overriding (메서드)Overloading = 한 클래스 내에서 같은 이름의 메서드를 여러 개 정의하는 것 ..

article thumbnail
[KH정보교육원] 11일차_클래스, 객체 배열
back-end dev/Java 2021. 11. 7. 15:48

2021.10.26(화) 🌿 클래스 MVC 패턴 = Model + View + Controller 기능에 따라 서브시스템들을 구분 = 도메인 지식 관리하는 Model + 사용자에게 보여주는 View + 사용자와의 상호작용 제어하는 Controller 🌱 생성자 표현법 목적/기능 → 객체 생성 시, 기본 생성자 사용해서 객체 생성 후 setter를 이용해서 필드값 초기화, 또는 객체 생성과 동시에 필드값을 초기화 public class User { /* User 클래스의 객체 생성: User go = new User(); * 객체 생성 시 new(새로 만든다)라는 키워드 뒤 '클래스명()' 이게 생성자(constructor) * * 대입연산자(=): 우항의 값을 좌항의 공간에 대입 -> User 클래스의 ..

article thumbnail
[KH정보교육원] 10일차_캡슐화, 클래스
back-end dev/Java 2021. 11. 7. 15:47

2021.10.25(월) 🌿 캡슐화 public class Run { /* 캡슐화 과정을 통해 완벽한 클래스의 형태를 갖추게 하자 * 캡슐화를 하지 않으면 외부로부터 직접 접근이 가능하기 때문에 함부로 값이 변질되거나 조회를 막지 못하는 문제가 발생 * cf. 정보 보안 3요소: 기밀성, 무결성, 가용성 * * 캡슐화 작업 = 정보 은닉 기술 중 하나; 정보 보안의 기밀성과 무결성을 지킬 수 있게 함; 캡슐 안에 숨기는 것 -> 데이터의 접근 제한( 외부에서 접근할 수 없도록) * 1. 값 숨기기: 멤버변수의 접근제한자 public 대신 private으로 바꿔서/사용해서 외부(다른 패키지)에서의 접근을 막음 * 2. 클래스 외부에서 간접적으로 값을 처리할 수 있는 메소드(getter(값 가져오기), se..