
Gradle Gradle은 오픈소스 빌드 자동화 도구다. *빌드 도구라고 생각하면 된다. Gradle은 *Groovy를 이용한다. 🧐 Groovy Groovy는 JAVA에 파이썬 등의 특징을 더한 동적 객체 지향 프로그래밍 언어다. JAVA에 각종 언어의 특징을 모아놓은 언어로 JAVA와 아주 비슷하고 JAVA 라이브러리를 호출하여 사용한다. JAVA와 호환이 되며 JAVA 클래스 파일을 그대로 Groovy 클래스로 사용할 수 있다. 🧐 빌드 도구 빌드 도구는 소스 코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 과정을 자동으로 수행해주는 프로그램을 말한다. Groovy와 빌드 도구에 대해 알아봤으니 다시 한번 Gradle가 어떤 건지 보자. Gradle은 Groovy 기반의 오픈소스 빌드..

객체지향 데이터베이스 🤜 객체지향 데이터 모델 객체지향 개념에 기반을 둔 데이터 모델로 다양한 응용 분야의 데이터 모델링을 위한 새로운 요구 사항을 지원한다. 또한 의미적으로 관계가 있는 데이터베이스 구조를 표현하기 위한 강력한 설계 기능을 제공한다. 객체 객체지향 데이터 모델을 구성하는 기본 요소 속성 관계 데이터 모델의 속성과 같은 의미 메서드 객체에 수행할 수 있는 연산 클래스 속성과 메서드를 공유하는 유사한 성질의 객체들을 하나로 그룹화 클래스 계층 클래스 세분화 시 계층 발생 상속 상위 클래스의 속성과 메서드를 자신의 모든 하위 클래스에 물려주는 개념 복합 객체 시스템에서 기본으로 제공하지 않는 사용자 정의 클래스를 도메인으로 하는 속성을 가진 객체 🤜 객체지향 질의 모델 객체지향 데이터베이스에..

보안 물리적 환경에 대한 보안 : 자연재해 등으로부터 보호 권한 관리를 통한 보안 : 권한이 없는 사용자로부터 보호 운영 관리를 통한 보안 : 권한이 있는 사용자로부터 보호 권한 관리 계정이 발급된 사용자가 로그인에 성공했을 경우에만 데이터베이스에 접근이 가능하도록 하는 접근 제어 기능을 기본으로 제공한다. 각 사용자는 허용된 권한 내에서만 데이터베이스를 사용한다. 데이터베이스의 모든 객체는 객체를 생성한 사용자만 사용 권한을 가진다. 🎨 권한 부여 : GRANT 문 객체의 소유자가 다른 사용자에게 객체에 대한 사용 권한을 부여한다. *한 번에 여러 권한 부여 가능 📫 부여 가능한 주요 권한 INSERT DELETE UPDATE SELECT REFERENCES 🧨 기본적으로 GRANT 문으로 부여받은 권..

정규화 이상 현상을 제거하면서 데이터베이스를 올바르게 설계해 나가는 과정을 말한다. 그렇다면 이상 현상은 무엇인가? 💨 이상 현상 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 수행할 때 발생할 수 있는 부작용을 말한다. 📃 이상 현상의 종류 1️⃣ 삽입 이상 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제를 말한다. 2️⃣ 갱신 이상 릴레이션의 중복된 투플들 중 일부만 수정하여 데이터가 불일치하게 되는 모순의 문제를 말한다. 3️⃣ 삭제 이상 릴레이션에서 투플을 삭제하면 꼭 필요한 데이터까지 손실되는 연쇄 삭제 현상이 발생하는 문제를 말한다. 함수 종속 하나의 릴레이션을 구성하는 속성들의 부분 집합을 X와 Y라 할 때, 릴레이션 내의 모든 투플에서..

SQL SQL은 관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 언어다. 사용자가 처리를 원하는 데이터가 무엇인지만 제시하고 데이터를 어떻게 처리해야 하는지를 언급할 필요가 없어 비절차적 데이터 언어의 특성을 띤다고 할 수 있다. SQL은 데이터베이스 관리 시스템에 직접 접근하여 대화식으로 질의를 작성해 사용할 수도 있고, C나 C++ 또는 Java 같은 언어로 작성한 응용 프로그램에 삽입하여 사용할 수도 있다. 🖨 SQL의 분류 데이터 정의어 (DDL) 테이블을 생성하고 변경, 제거하는 기능을 제공 데이터 조작어 (DML) 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정, 삭제, 검색하는 기능을 제공 데이터 제어어 (DCL) 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별..

ES6에서는 함수를 사용 목적에 따라 일반 함수, 메서드, 화살표 함수 세 가지 종류로 구분했다. ES6 함수의 구분 constructor prototype super arguments 일반 함수 O O X O 메서드 X X O O 화살표 함수 X X X X 메서드 ES6 사양에서 메서드는 메서드 축약 표현으로 정의된 함수만을 의미한다. const obj = { x: 1, // foo는 메서드다. foo() { return this.x; }, // bar에 바인딩된 함수는 메서드가 아닌 일반 함수다. bar: function() { return this.x;} }; console.log(obj.foo()); // 1 console.log(obj.bar()); // 1 📢ES6 메서드는 생성자 함수로서 호..

클래스 자바스크립트에서 클래스를 한 문장으로 종결시키겠다. 클래스는 함수이다. 자바스크립트에서 클래스는 생성자 함수와 매우 유사하게 동작하지만 몇 가지 차이가 있다. 클래스를 new 연산자 없이 호출하면 에러가 발생한다. 클래스는 상속을 지원하는 extends와 super 키워드를 제공한다. 클래스는 호이스팅이 발생하지 않는 것처럼 동작한다. 클래스 내의 모든 코드는 암묵적으로 strict mode가 실행된다. 클래스는 열거되지 않는다. 생성자 함수와 클래스는 프로토타입 기반의 객체지향을 구현했다는 점에서 매우 유사하다. 하지만 클래스는 생성자 함수 기반의 객체 생성 방식보다 견고하고 명료하다. 따라서 클래스를 새로운 객체 생성 메커니즘으로 보면 된다. 🎢 클래스는 함수로 평가되어 호이스팅이 발생한다. ..

클로저 외부 함수보다 중첩 함수가 더 오래 유지되는 경우 중첩 함수는 이미 생명 주기가 종료한 외부 함수의 변수를 참조할 수 있다. 이러한 중첩 함수를 클로저라 한다. 📌 const x = 1; // ① function outer() { const x = 10; const inner = function () { console.log(x); }; // ② return inner; } // outer 함수를 호출하면 중첩 함수 inner를 반환한다. // 그리고 outer 함수의 실행 컨텍스트는 실행 컨텍스트 스택에서 팝되어 제거된다. const innerFunc = outer(); // ③ innerFunc(); // ④ 10 위 예시 코드를 보면 outer() 함수는 inner() 함수를 반환(retur..

실행 컨텍스트 실행 컨텍스트는 소스코드를 실행하는 데 필요한 환경을 제공하고 코드의 실행 결과를 실제로 관리하는 영역이다. 식별자를 등록하고 관리하는 스코프와 코드 실행 순서 관리를 구현한 내부 메커니즘으로, 모든 코드는 실행 컨텍스트를 통해 실행되고 관리된다. 전역 코드 함수 코드 eval 코드 모듈 코드 소스코드의 평가와 실행 모든 소스코드는 실행에 앞서 평가 과정을 거치며 코드를 실행하기 위한 준비를 한다. 평가 과정 소스코드의 평가 실행 컨텍스트를 생성하고 변수, 함수 등의 선언문만 먼저 실행하여 생성된 변수나 함수 식별자를 키로 실행 컨텍스트가 관리하는 스코프에 등록한다. 소스코드의 실행 런타임이 시작되고 이때 소스코드 실행에 필요한 정보를 실행 컨텍스트가 관리하는 스코프에서 검색해서 취득한다...

strict mode 자바스크립트 언어의 문법을 좀 더 엄격히 적용하여, 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 에러를 발생시킨다. strict mode 적용 전역의 선두 또는 함수 몸체의 선두에 'use strict'; 를 추가한다. 1️⃣ 'use strict'; // 전역의 선두에 추가 function foo() { x = 10; // ReferenceError: x is not defined } foo(); 전역의 선두에 추가하면 스크립트 전체에 적용된다. 2️⃣ function foo() { x = 10; // 에러를 발생시키지 않는다. 'use strict'; } foo(); 코드의 선두에 위치시키지 않을 시 제대로 동작하..
- Total
- Today
- Yesterday
- 정렬
- java
- 문자열
- 정답
- CPP
- 우종정
- 알고리즘
- BFS
- 운영체제
- OS
- C++
- JS
- 풀이
- 답
- 쉽게배우는자바프로그래밍
- 구현
- 프로그래머스
- py
- 파이썬
- 해답
- 자바
- 쉽게 배우는 자바 프로그래밍
- 정리
- Web
- Python
- 자바스크립트
- 그리디
- 연습문제
- 백준
- 쉽게배우는
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |