본문 바로가기

STUDY

(287)
거품 정렬(Bubble sort) / 선택 정렬(Selection sort) / 삽입 정렬(Insertion sort) 1. 거품정렬(Bubble sort) 인접한 두 원소를 비교해 조건에 따라 자리를 교환(swap)하여 정렬하는 방법. 안정 정렬(stable sort)이며 구현이 간단하고 소스 코드또한 직관적이므로 자주 사용되지만 시간 및 공간복잡도가 모두 O(n²)로 비효율적임. Java구현 코드(오름차순) 내림차순 정렬은 조건을 반대로 해주기만 하면 됩니다. static void bubblesort(int []arr) { System.out.println("정렬 전 : " + Arrays.toString(arr)); // 배열 원소를 담아둘 변수 int temp; for (int i = 0; i < arr.length; i++) { for (int j = 1; j < arr.length-i; j++) { // 앞의 ..
JS | ECMA Script? / ES6 살짝 알아보기 순수 자바스크립트는 바닐라 스크립트(Vanilla JS)고... es5, es6..은 또 뭘까 싶어 이참에 다 알아보기로 했습니다. ECMA Script는 ECMA International이라는 표준화 기구에 의하여 표준화된 스크립트 언어라는 뜻입니다. 표준화, 규격화된 스크립트 언어가 ECMA Script이고, 이의 약자가 ES이며 ES뒤에 붙는 숫자들은 버전, 사양 정도라고 이해하면 쉽습니다. ES6?ES6는 ECMA Script 2015와 같은 말입니다. 물론 ES5, ES4 등 이전 버전도 있고(ES3가 가장 흔히 알고있는 자바스크립트) 현재 ES10까지 나왔는데 ES6가 아직까지도 가장 많이 언급되는 이유는 아무래도 가장 큰 변화가 있었기 때문인듯합니다.어디선가 들어봤을 '모던 자바스크립트', ..
JS | 바닐라 자바스크립트? (Vanilla JS) 바닐라 자바스크립트(Vanilla JS)의 공식 홈페이지(?)는 바닐라 자바스크립트를 빠르고, 가벼운 크로스 플랫폼 프레임워크라고 소개합니다. 바닐라 자바스크립트란 어떠한 라이브러리나 프레임워크를 사용하지 않고 오직 자바스크립트만 사용하는 것을 말합니다. 즉, jQuery, React, Vue, Angular등을 사용하지 않고 순수 자바스크립트 코드만 작성하는 것이 바로 바닐라 자바스크립트입니다. +) 공식 홈페이지 Vanilla JS Vanilla JS Vanilla JS is a fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications. Introduction The Vanil..
NoSQL(비관계형 데이터베이스) 알아보기 NoSQL은 비관계형 데이터베이스 입니다. NoSQL에 대해 No + SQL혹은 Not only SQL 등 의견이 분분하지만 현재는 'Not only SQL'의 약자라는 의견이 우세하다고 합니다. 하지만 어떤 의견이든 NoSQL이 관계형 데이터베이스가 아닌 비관계형 데이터베이스로 보는 시각은 동일합니다. 2000년대 까지만 해도 Oracl, MySQL, MS-SQL등과 같은 관계형 데이터베이스를 대부분 사용했었으나 2000년대 후반 인터넷의 발달과 여러 소셜 미디어 매체가 등장하면서 비정형 데이터의 폭발적인 증가로 인해 비관계형 데이터베이스가 주목받기 시작했다고 합니다. 더보기 관계형 데이터베이스(Relational Database)? 수십년간 가장 대중적으로 사용되고 있는 관계형 데이터베이스의 가장 큰..
Java | 추상클래스(abstract class) / 인터페이스(Interface) 객체를 직접 생성할 수 있는 클래스는 실체 클래스라 하고, 이러한 클래스들의 공통적 특성을 추출해 선언한 클래스는 추상 클래스라고 합니다. 추상 클래스는 실체 클래스의 공통되는 필드와 메서드를 추출해서 만들기 때문에 객체를 직접 생성하지 못합니다. 즉, new연산자를 사용해 인스턴스를 생성하지 못합니다. 추상 클래스는 실체 클래스에 상속하기 위한 부모 클래스로 사용됩니다. 쉽게 말해 클래스 선언 시에 extends뒤에 오는 클래스입니다. 추상 클래스 선언 abstract키워드를 이용해 클래스를 작성합니다. 추상 클래스도 일반 클래스처럼 필드, 생성자, 메서드를 선언할 수 있습니다. 접근제어자 abstract class 추상클래스명 { } //예시 public abstract class Animal { }..
Java | 접근 제어자/접근 제한자 ( Access Modifier ) 자바에서는 객체 지향 프로그래밍(OOP)의 가장 큰 특징 중 하나인 캡슐화, 정보은닉(data hiding)을 위해 접근 제어자/접근 제한자(Access Modifier)를 제공합니다. 1. public public은 말 그대로 어디에서든 접근이 가능합니다. 같은 클래스, 부모클래스, 자식클래스 그리고 다른 패키지에서도 접근이 가능합니다. 2. default default는 기본값으로, 아무런 접근 제어자를 명시하지 않는 경우 자동으로 default가 적용됩니다. default는 같은 패키지에 존재하는 모든 멤버가 접근 가능합니다. (외부 패키지에서 접근 불가) 3. protected protected는 부모 클래스(parent class / super class)에 대해 public과 같은 효과를 발휘..
Java | 객체 지향 프로그래밍(OOP : Object Oriented Programming)의 주요 개념 1. 캡슐화(Encapsulation) 캡슐화란 객체의 필드(field)와 메서드(method)를 하나의 클래스로 묶는 것을 말합니다. 이를 통해 외부 객체로부터 필드와 메소드를 보호할 수 있으며 외부의 잘못된 사용으로 객체가 손상되지 않도록 합니다. 자바에서는 접근 제한자(Access Modifier)를 이용해 객체의 필드와 메소드의 사용 범위(접근 여부)를 제한합니다. 캡슐화는 프로그램의 구성요소를 분리하는 데 도움이 되며 개발, 디버깅 및 테스트가 용이해집니다. 2. 상속(Inheritance) 객체 지향 프로그래밍의 주요 특징 중 하나인 상속은 상위클래스(super class)의 필드와 메소드를 하위클래스(sub class)가 물려받아 새로운 클래스를 정의할 수 있는 것을 의미합니다. 상위클래스는..
Java | 컬렉션 프레임워크 Collection Framework ( List / Set / Map ) 컬렉션은 객체를 수집해서 저장하는 역할을, 프레임워크는 사용방법을 미리 정해놓은 라이브러리를 말합니다. 자바의 컬렉션 프레임워크는 인터페이스를 통해 다양한 컬렉션 클래스를 이용할 수 있도록 합니다. 컬렉션 프레임워크는 아래 그림과 같이 계층구조로 구성되어있습니다. Collection이라는 가장 상위 인터페이스를 상속받는 List, Set, Queue가 있으며, Map은 key와 value값을 하나의 쌍으로 묶어 관리하는 구조로 되어있기 때문에 Collection인터페이스와 별도로 정의됩니다. 1. List List는 객체를 일렬로 늘어놓은 구조를 가지고 있으며 객체를 인덱스로 관리하기 때문에 인덱스로 객체를 검색, 삭제할 수 있습니다. Collection인터페이스를 상속받기 때문에 Collection인터..