뇌운동일지

개념정리 본문

purple duck 일지

개념정리

purpleduck 2021. 12. 14. 23:04

1. 

로보어드바이저 : 미리 프로그램된 알고리즘을 통해서 프로그램이 투자결정 및 자산배분을 하는 행위 또는 그 프로그램 자체

투자자문업 : 투자자문자산의 가치 또는 투자자문자산에 대한 투자판단에 관하여 구술·문서 그 밖의 방법으로 조언을 하는 영업

투자일임업 : 고객으로부터 투자자문자산의 가치 등의 분석에 기초한 투자판단의 전부 또는 일부를 일임받아 그 자를 위하여 투자하는 영업

 

2. JAVA 

이식성이 높은 언어 : JVM(Java Virtual Machine)위에서 돌아가기 때문에 운영체제 종류와 상관없이 잘 돌아간다

ex) C언어의 경우, 운영체제 종류에 따라 int형의 크기가 달라지기도 하지만, JAVA는 그렇지 않음 -> 동일한 JVM 환경에서 돌아가기 때문

-> MS 윈도우, 리눅스, 맥 OS등 여러 운영체제에서 동일하게 실행 가능 

 

객체지향언어(OOP : Object Oriented Programming)

: 하나의 기능을 객체로 만들어서, 이러한 객체들을 결합해서 하나의 프로그램을 만든다

함수적 코딩 방식 (람다식) : 코드 간결하게 작성 가능. 대용량 데이터 처리 가능 

메모리 자동 관리 : C언어는 메모리 직접 관리 필요. JAVA는 garbage collector 에 의해 사용하지 않는 객체는 자동으로 메모리에서 제거 (컴퓨터에게 자원 반납)

다양한 어플리케이션 개발가능 : 콘솔프로그램, UI 어플리케이션, 서버 어플리케이션, 모바일 앱 등 다양한 프로그램 개발 가능

다양한 프로그램 개발하기위한 개발도구, API 제공

 

Java SE 

기본 에디션 

자바 프로그램을 실행시키는 최소한의 JVM 정의

구현체 : JDK(Java Development Kit)

 

Java EE

서버 어플리케이션 개발을 위한 에디션

웹 어플리케이션, 웹 서비스, 분산 컴포넌트 등 개발을 위한 도구와 API 정의 

구현체 : WAS(Web Application Server) - Tomcat 등

 

Java ME 

임베디드, 모바일 장비 개발을 위한 도구와 API 정의 

 

멀티 스레드 쉽게 구현 가능 

: 동시에 여러 작업 하는 경우, 대용량 작업을 빨리 처리하는 경우 -> 병렬처리 필요 = 멀티스레드 필요

운영체제마다 멀티스레드 이용하는 API 다름. Java 의 경우, Java API 를 이용하기 때문에, 일관된 생성 및 관리 가능

 

동적 로딩

미리 객체를 만들지 않고, 필요한 시점에 동적으로 로딩해서 객체 생성 가능 -> 유지 보수 시, 특정 객체만 쉽게 수정 및 교체해서 사용 가능

 

풍부한 오픈소스 라이브러리

자바는 오픈소스 언어, 자바를 이용해서 만들어진 라이브러리가 많다. 라이브러리를 이용하여, 시간·비용을 줄이고 어플리케이션을 만들기 편리

 

3. 객체 지향 언어 (Object-oriented Language)

소프트웨어를 객체 지향 방식으로 설계한 후, 객체 지향의 특성(클래스, 객체, 상속, 추상화 등)을 잘 구현하는 데 사용되는 컴퓨터 프로그래밍 언어 

 

캡슐화

서로 연관있는 데이터와 알고리즘을 하나로 묶어서 하나의 캡슐과 같은 형태로 만드는 것

이 때, 서로 연관이 없는 다른 객체의 접근을 제한하기 위해서 접근 제한 수식자의 기능 제공

데이터와 알고리즘이 다른 정보로 인해서 손상되거나 오류 발생할 가능성 최소화

데이터가 바뀌더라도 사용법이 바뀌지 않아 다른 객체에 영향을 끼치지 않음

독립성이 유지되면서 객체 간 결합도가 낮아져서 인터페이스가 간단해지는 효과

 

상속

개발자들이 클래스 간 관계 정립 시, 상위 클래스와 하위 클래스를 구분하게 되는데, 이 때 상위 클래스의 모든 것을 하위 클래스가 이어받는 것을 상속이라고 표현

 

다형성

하나의 객체가 다른 여러 객체로 재구성 되는 것을 의미

다형성을 나타내는 예시 : 메소드 오버로딩(중복정의), 베소드 오버라이딩(재정의)

메소드 오버로딩 : 이름이 동일한 메소드가 하나의 클래스 안에서 중복해서 정의되어 있는 경우. 매개변수를 다르게 해서 구분.

메소드 오버라이딩 : 상위 클래스에서 정의 한 메소드를 하위 클래스에서 상속 받아왔을 때, 상위 클래스의 정의를 무시하고 다시 재정의해서 사용하는 것

 

추상화

공통된 속성이나 기능을 묶어서 이름을 붙이는 것 (클래스 정의)

 

4. 인터프리터 언어 VS 컴파일 언어

인터프리터 언어 

윈시코드(프로그래머가 작성한 소스코드)를 기계어로 변환하는 과정없이 한줄 한줄 해석하여 바로 명령어를 실행하는 언어

ex) R, Python, Ruby

인터프리터가 직접 한 줄씩 읽고 따로 기계어로 변환하지 않기 때문에 빌드 시간이 없음

Runtime 상황에서는 한 줄씩 실시간으로 읽어서 실행하기 때문에 컴파일 언어에 비해 속도가 느림

실행속도는 느리지만 코드 변경 시 빌드 과정없이 바로 실행 가능

 

컴파일 언어

원시코드를 모두 기계어로 변환한 후 기계(JVM 같은 가상 머신)에 넣고 기계어 코드 실행

소스코드를 기계어로 번역하는 빌드 과정에서는 인터프리터 언어에 비해 시간 소요 

런타임 상황에서는 이미 기계어로 모든 소스코드가 변환되어 있기 때문에 빠르게 실행 가능 

ex) C, C++

 

빌드 과정

빌드 : 소스코드파일을 실행파일로 생성하는 과정

고급언어 -> (변환) -> 저급언어(기계어) 과정을 거쳐 실행파일 생성

인터프리터 언어는 빌드과정 없이 고급언어에서 한줄 씩 읽어서 실행. 컴파일 언어 C, Java 는 .class 파일 등과 같이 변환하여 실행

 

 

 

참고자료)

https://hongku.tistory.com/171

https://blog.naver.com/xihye_0613/222559807501

https://jhkang-tech.tistory.com/136

 

 

'purple duck 일지' 카테고리의 다른 글

Google Sheets for Developers > Sheets API  (0) 2021.11.29
bootstrapVue + Vue.js + node.js + mongoDB : 2  (0) 2021.11.24
bootstrapVue + Vue.js + Node.js + mongoDB  (0) 2021.11.21
bootstrapVue Vue.js  (0) 2021.11.12
Vue.js bootstrap  (0) 2021.11.11
Comments