분류 전체보기
-
-
알고리즘 공부 시작 방법 및 순서JavaScript/알고리즘 2020. 3. 22. 19:53
알고리즘이란? - 어떠한 문제를 해결하기 위한 일련의 절차를 공식화한 형태로 표현한 것 - 프로그래밍에서 알고리즘은 input값을 통해서 output값을 얻기 위한 계산 과정을 의미한다. 이러한 과정을 수행할 때, 정확하고 효율적으로 결과값을 얻기 위해서 알고리즘이 필요하다. 알고리즘의 조건 1. 외부에서 제공되는 자료(입력, input)가 0개 이상 존재해야 한다. 2. 최소 2개 이상의 서로 다른 결과값을 가져야 한다. (모든 입력에 대해 동일한 하나의 출력이 나오면 안된다.) 3. 수행 과정은 명확하고 모호하지 않은 명령어로 구성되어야 한다. 4. 유한번의 명령어를 수행 후 유한시간 내에 종료하여야 한다. 5. 모든 과정은 명백하게 실행 가능(검증 가능)한 것이여야 한다. 알고리즘에 필요한 기본 개..
-
파이썬(Python) 개요Python 2020. 3. 22. 18:31
파이썬(Python) 개요 파이썬은 인터프리터 언어 소스 코드를 기계어로 컴파일해서 실행파일을 만들고 실행하는 컴파일 언어와는 다르게 인터프리터 언어는 코드를 한 줄씩 읽어 내려가며 실행하는 프로그래밍 언어. 인터프리터 언어의 장점 인터프리터는 실행 시마다 소스 코드를 한줄씩 기계어로 번역하는 방식이기 때문에 실행 속도는 컴파일 언어보다 느리다. 하지만, 인터프리터 언어는 프로그램 수정이 간단하다는 장점이 있다. 컴파일러는 소스코드를 번역해서 실행 파일을 만들기 때문에 프로그램에 수정 사항이 발생하면 소스 코드를 다시 컴파일해야 한다. 하지만 인터프리터는 소스 코드를 수정해서 바로 실행시킬 수 있다. Python 장점 - 배우기 쉬워서 학습용으로 조음 - 공동 작업과 유지보수가 아주 쉽고 편해서 생산성이..
-
프레임워크(Framework)와 라이브러리(Library) 차이점고급 JAVA 2020. 3. 22. 17:39
프레임워크(Framework)와 라이브러리(Library) 차이점 1. 프레임워크(Framework) - 뼈대나 기반구조를 뜻함 - Application 개발 시 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능을 위해 어느정도 뼈대(구조)를 제공해주는 것 그러므로, 그러한 뼈대 위에 프로그래머가 코드를 작성하여 Application을 완성시켜야 함 - 어느정도 뼈대를 제공해주기 때문에, 객체지향 개발을 하면서 일관성 부족 등의 문제를 해결해줌 ==> 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스 2. Libray (라이브러리) - 라이브러리는 특정 기능에 대한 도구나 함수들을 모은 집합 즉, 프로그래머가 개발하는데 필요한 것들을 모아둔 것 => 단순 활용이 가능한..
-
Framework (프레임워크)란?고급 JAVA 2020. 3. 21. 22:25
Framework (프레임워크)란? 사전적 의미로는 '복잡한 문제를 해결하거나 서술하는데 사용되는 기본 개념 구조'라고 정의 정의에 따르면 '특정한 목적으로 사용되는 사용체계' 라는 뜻으로 소프트웨어 개발에 해당하는 것은 공통으로 사용하는 라이브러리, 공통으로 사용하는 개발도구, 공통으로 사용하는 인터페이스 등이 있다. 프레임 워크가 중요한 이유는 객체 지향 개발을 하게 되면서 개발자의 취향에 따라 다양한 프로그램이 나오게 되었는데 프로그램 개발에 투입되는 개발자도 점점 늘어남에 따라 전체 시스템의 통합성, 일광선이 부족하게 되었기 때문 그래서 개발자의 자유를 제한하기 위해 프레임 워크를 도입하게 되었다. - 전체 시스템의 통합성, 일관성을 유지하기 위해 개발자의 자유를 제한 * 개발에 대한 방법론을 강..
-
Wrapper(래퍼) 클래스카테고리 없음 2020. 3. 21. 21:24
Wrapper(래퍼) 클래스 - 8개의 기본 타입에 해당하는 데이터를 객체로 포장해주는 클래스 - 래퍼 클래스는 각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어줌 박싱(Boxing)과 언방싱(UnBoxing) - 래퍼 클래스는 산술 연산을 위해 정의된 클래스가 아니므로, 인스턴스에 저장된 값을 변경할 수 없음 - 단지, 값을 참조하기 위해 새로운 인스턴스를 생성하고, 생성된 인스턴스의 값만을 참조 가능 위의 그림같이 기본 타입의 데이터를 래퍼 클래스의 인스턴스로 변환하는 과정을 박싱(Boxing) 래퍼 클래스의 인스턴스에 저장된 값을 다시 기본 타입의 데이터로 꺼내는 과정을 언박싱(UnBoxing) 오토 박싱(AutoBoxing)과 오토 언박싱(AutoUnBoxing) ..
-
Generics (제네릭스)고급 JAVA/Generics 2020. 3. 21. 21:13
Generics (제네릭스) 해당 클래스나 메소드가 다룰 객체를 미리 명시해줌으로써 형변환을 하지 않고 사용하는 것 사용하는 이유 - 타입의 안정성 제공 - 타입체크와 형변환을 생략 - 클래스와 인터페이스, 메소드를 정의할 때 타입(Type)을 파라미터(Parameter)로 사용할 수 있도록 함 장점 1. 컴파일 시 강한 타입 체크를 할 수 있다. - 실행 시 타입 에러가 나는 것보다 컴파일 시에 미리 타입을 강하게 체크해서 에러를 사전에 방지 2. 타입 변환(Castring)을 제거 - 비제네릭 코드는 불필요하게 타입 변환을 하기 때문에 프로그램 성능에 악양향을 미침 List list = new ArrayList(); list.add("hello") String str = (String) list.ge..
-
동기(synchronous)화와 비동기(Asynchronous)화카테고리 없음 2020. 3. 21. 20:36
동기(synchronous)화와 비동기(Asynchronous)화 1. 동기화 - 동기화는 말 그대로 동시에 일어난다는 뜻 - 클라이언트와 서버개념에서 클라이언트가 서버에 request을 보내면 서버에서 respone하는 것이 동시에 일어난다. 즉, 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 함 => 요청과 결과가 한자리에서 동시에 일어남 => A노드와 B노드 사이의 작업 처리 단위(transaction)을 동시에 맞춰주겠다. 2. 비동기화 - 동시에 일어나지 않는다는 뜻 - 요청과 결과가 동시에 일어나지 않는다. => 요청한 그자리에서 결과가 주어지지 않음 => 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다. 동기화와 비동기화의 장단점 장점 - 동기 방식 : 설계가 ..