타입 타입은 어떤 값의 유형 및 종류를 의미한다. 타입에 따라 값이 차지하는 메모리 공간의 크기와 값이 저장되는 방식이 결정된다. 타입은 저장하고자 하는 값을 그대로 저장하는 기본타입과, 저장하고자 하는 값을 임의의 메모리 공간에 저장한 후, 그 메모리 공간의 주소
제어문 조건문 if 문 , switch 문 if 문 if else 문 Switch 문 switch문은 if문처럼 조건식이 true일 경우에 블록 내부의 실행문을 실행하는 것이 아니라, 변수가 어떤 값을 갖느냐에 따라 실행문이 선택됩니다. switch문은 변수
객체는 클래스에 정의되고 설계된 내용 그대로 생성이 된다. 이렇게 생성된 객체를 해당 클래스의 인스턴스(instance)라고 부른다. 객체는 모든 인스턴스를 포괄하는 넓은 의미를 가지고 있는 반면, 인스턴스는 해당 객체가 어떤 클래스로부터 생성된 것인지를 강조한다는 데
생성자는 인스턴스 변수들을 초기화하는 데 사용되는 특수한 메서드이다.생성자의 이름은 반드시 클래스의 이름과 같아야 한다. 만약 클래스 이름과 생성자의 이름이 다르다면 그 메서드는 더이상 생성자로서의 기능을 수행할 수 없다.생성자는 리턴 타입이 없다. 하지만 메서드와 같
상속은 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소이다.상위 클래스 - 하위 클래스는 서로 상속 관계에 있다고 하며, 하위 클래스는 상위 클래스가 갖고 있는 모든 멤버를 상속한다. 상속을 통해 클래스를 작성하면 코드를 재사용하여 보다 적은 양의
다형성은 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미한다. \-> 상위 클래스 타입의 참조변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 허용한 것 GirlFriend 를 참조변수의 타입으로 지정해주어야 하지만, 그러지 않고
열거형은 여러 상수들을 보다 편리하게 선언할 수 있도록 만들어진 자바의 문법요소이며, 몇 가지로 한정된 변하지 않는 데이터를 다루는데 사용한다.enum 을 사용하면 코드를 단순하고 가독성이 좋게 만들 수 있다는 장점이 있다. 또한 enum 으로 정의한 상수는 switc
컬렉션 프레임워크 컬렉션 프레임워크는 특정 자료 구조에 데이터를 추가하고, 삭제하고, 수정하고, 검색하는 등의 동작을 수행하는 편리한 메서드들을 제공해준다. 주요 인터페이스 List, Set, Map 을 제공한다. List는 데이터의 순서가 유지되며, 중복 저장
애너테이션은 특정 코드를 사용하는 프로그램 에게 정보를 전달한다.애너테이션의 주요한 역할컴파일러에게 문법 에러를 체크하도록 정보를 제공한다.프로그램을 빌드할 때 코드를 자동으로 생성할 수 있도록 정보를 제공한다.런타임에 특정 기능을 실행하도록 정보를 제공한다.두 개의
람다식(Lambda Expression)은 함수형 프로그래밍 기법을 지원하는 자바의 문법요소람다식은 메서드를 하나의 ‘식(expression)’으로 표현한 것으로, 코드를 매우 간결하면서 명확하게 표현할 수 있다는 큰 장점이 있다.기본적으로 반환타입과 이름을 생략할 수
스트림을 이용하면, 선언형으로 데이터 소스를 처리할 수 있다.람다식으로 요소 처리 코드를 제공한다.Stream 이 제공하는 대부분의 요소 처리 메서드는 함수형 인터페이스 매개타입을 가지기 때문에 람다식 또는 메서드 참조를 이용해서 요소 처리 내용을 매개값으로 전달할 수
JVM(Java Virtual Machine) 은 자바 프로그램을 실행시키는 도구다. 즉, JVM은 자바로 작성한 소스 코드를 해석해 실행하는 별도의 프로그램이다.자바는 JVM을 매개해서 운영체제와 소통한다. 즉, JVM이 자바 프로그램과 운영체제 사이에서 일종의 통역
프로세스는 데이터, 컴퓨터 자원, 그리고 스레드로 구성되는데, 스레드는 데이터와 애플리케이션이 확보한 자원을 활용하여 소스 코드를 실행한다. 즉, 스레드는 하나의 코드 실행 흐름이라고 볼 수 있다.작업 스레드를 활용한다는 것은, 다시 말해 작업 스레드가 수행할 코드를
자기 자신을 호출하는 함수재귀함수의 장점불필요하게 여러개의 반복문을 사용하지 않기 때문에, 코드가 간결해지고, 수정이 용이하다.변수를 여러개 사용할 필요가 없다.재귀함수의 단점반복문과 달리, 코드의 흐름을 직관적으로 파악하기 어렵다.반복하여 매서드를 호출하며 지역변수,
Stack : 데이터(data)를 순서대로 쌓는 자료구조Stack 의 특징은 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근에 있다. 이런 Stack 자료구조의 정책을 LIFO(Last In First Out) 라고 부르기도 한다. Stack에 데이터를 넣는 것을
시간복잡도 알고리즘 문제를 풀다 보면 문제에 대한 해답을 찾는 것이 주요 관건이다. 문제를 풀다가, 효율적인 방법을 고민한다는 것은 시간 복잡도 를 고민한다는 것과 같은 말이다. 시간 복잡도를 표기하는 방법은 다음과 같다. Big-O(빅-오) Big-Ω(빅-오메
Greedy Algorithm(탐욕 알고리즘) 은 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법이다. 탐욕 알고리즘으로 문제를 해결하는 방법은 다음과 같은 단계로 구분한다.선택 절차(Selection Procedure) : 현재
Binary Search Algorithm 은 데이터가 정렬된 상태에서 절반씩 범위를 나눠 분할 정복기법으로 특정한 값을 찾아내는 알고리즘이다.알고리즘이 동작하는 단계는 아래와 같다.정렬된 배열의 가장 중간 인덱스를 지정한다.찾으려고 하는 값이 지정한 중간 인덱스의 값
완전 탐색 알고리즘(Brute-Force Algorithm) Brute Force Algorithm 은 무차별 대입 방법을 나타내는 알고리즘이다. 순수한 컴퓨팅 성능에 의존하여 모든 가능성을 시도하여 문제를 해결하는 방법이라 할 수 있다. Brute Force는 최적
순열 : 요소 n개 중에 m개를 선택하여 순서에 상관 있게 뽑는 경우의 수.조합 : 순서에 상관없이 요소 n개 중에 m개를 뽑는 경우의 수.! (factorial, 팩토리얼) : n! 은 n에서부터 1씩 감소하여 1까지의 모든 정수의 곱. (n 보다 작거나 같은 모든
웹 애플리케이션 핸드폰을 사용하면서 모바일용 애플리케이션을 다운받아 설치해 사용해본 경험이 한번씩은 있을 것이라 생각합니다. 이러한 특정기기에 설치해서 사용하는 애플리케이션을 네이티브 애플리케이션(Native-application) 이라고 부릅니다. 네이티브 애플리
네트워크 TCP/IP 기본 LAN 과 WAN 좁은 범위에서 연결된 네트워크를 LAN(Local Area Network)라고 부릅니다. 그래서 LAN을 연결하는 선을 우리는 LAN 케이블 이라고 부릅니다. 이러한 수많은 LAN 들이 모여 세계의 네트워크를 구성하는
웹 인터넷에서 제공되는 하이퍼텍스트 시스템 >하이퍼텍스트: 문서안에 다른 문서의 위치정보 등을 포함하여 문서 간의 정보를 서로 연관 지어 참조 할 수 있는 문서. 최초에는 문자정보 전달에만 초점이 맞춰져 있었으나, 웹은 오늘날 게임, 동영상 서비스, 전자상거래,
HTTP는 HyperText Transfer Protocol의 줄임말로, HTML과 같은 문서를 전송하기 위한 Application Layer 프로토콜입니다. HTTP는 웹 브라우저와 웹 서버의 소통을 위해 디자인되었습니다. 전통적인 클라이언트-서버 모델에서 클라이언트
REST API에서 REST는 “Representational State Transfer”의 약자로, 로이 필딩의 박사학위 논문에서 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처로써 처음 소개되었습니다. REST API는 웹에서 사용되는 데이터나 자원(Reso
In-MemoryJavaScript 에서 변수를 만들어 저장한 경우, 프로그램이 종료될 때 해당 프로그램이 사용하던 데이터도 사라진다. 예기치 못한 상황으로부터 데이터를 보호할 수 없고, 프로그램이 종료된 상태라면 데이터를 원하는 시간에 받아올 수 없으며, 데이터의 수
스키마(Schema) 는 데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명이다. 즉, "데이터베이스의 청사진"과 같다. 엔티티는 데이터베이스에서 테이블로 표시할 수 있다. 각 엔티티에는 해당 엔티티의 특성을 설명하는 필드(Field
데이터베이스 정규화는 데이터베이스의 설계와 연관 있다. 그 이유는 데이터베이스 설계가 결론적으로 데이터가 어떻게 저장될 지 구조를 정해주기 때문이다.이를 위해서 아래의 내용들이 중요하다 :Data redundancyData integrityAnomaly데이터 중복 (d
SQL에는 데이터를 조회하고 테이블을 만드는 등 다양한 문법이 있다. 그리고 쿼리문을 어떻게 작성하느냐에 따라, 그 기능이나 작업이 달라진다. 영어나 한국어 등과 같은 언어에서 주어나 동사 등을 구분하는 것처럼 SQL에서도 역할에 따라 문법이 다양하게 존재한다.일반적으
JDBC(Java Database Connectivity)는 Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터를 데이터베이스에 저장 및 업데이트 하거나 반대로 데이터베이스에 저장된 데이터를 Java 코드 레벨에서 사용할 수 있도록 해주는 Java에서 제공하는