용어 정리

Ruinak·2021년 11월 1일
0

데이터 분석 및 시각화

BeautifulSoup

  • 인터넷 문서의 구조에서 명확한 데이터를 추출하고 처리하는 가장 쉬운 라이브러리입니다.

Selenium

  • 가장 유명한 브라우저 자동화도구입니다.
  • 실제 웹브라우저를 켜는 과정을 거치기 때문에 selenium을 이용하면 동적 페이지에서도 데이터를 수집할 수 있습니다.
  • 실제 웹 브라우저가 동작하기 때문에 JS로 렌더링이 완료된 후의 DOM결과물에 접근이 가능합니다.

pyplot

  • 멧플롯립 안에 포함된 서브모듈입니다.
  • 여러 기능이 존재하고, 많이 사용되는데, 간단한 시각화의 경우는 파이플롯만으로 처리하는 경우가 많습니다.
  • 주피터 노트북 화면 안에 시각화 결과가 표시되도록 설정이 가능합니다.

seaborn

  • Matplotlib을 기반으로 다양한 색상 테마와 통계용 차트 등의 기능을 추가한 시각화 패키지이다.
  • 기본적인 시각화 기능은 Matplotlib 패키지에 의존하며 통계 기능은 Statsmodels 패키지에 의존한다.

Django

  • 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework)입니다.
  • 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어진 웹 프레임워크랍니다.

Android

4대 컴포넌트

1. 액티비티(Activity)

  • Activity 클래스를 상속받아서 사용하며 UI(user interface) 화면을 구성하는 요소입니다.
  • 엑티비티란 사용자와 애플리케이션과 상호작용하는 단일화면을 말합니다(액티비티 2개 이상 display 불가능).
  • 모든 안드로이드 애플리케이션은 액티비티로 구성되어있습니다.
  • 사용하려면 무조건 manifest에 파일 선언이 필수이며 사용할때 액티비티는 생명주기(Life cycle)를 사용하여 재정의후 원하는 기능들을 새롭게 건축할 수 있습니다.

2. 서비스(Service)

  • Service 클래스를 상속받아서 사용합니다.
  • 장시간으로 지속적으로 background에서 실행되는 컴포넌트입니다.
  • 애플리케이션을 사용하면서 유투브나 음원 스트리밍 앱에서 재생하고 다른 앱을 실행해도 노래가 지속적으로 재생되는걸 생각하면 됩니다.
  • 서비스는 메인스레드에서 동작하기때문에 서비스 내에서 별도의 쓰레드를 생성하여 작업을 처리해야합니다.

3. 방송 수신자(Broadcast Receiver)

  • 방송 수신자는 안드로이드 os로부터 발생하는 각종 이벤트에 따라 원하는 작업을 수행할 수 있습니다.
  • 배터리 부족, 언어설정 변경, 문자수신,네트워크 끊김, 앱 초기화 등등 배터리가 없다면 모든 앱에 '배터리가없다!'라는 방송을 합니다.
  • 문자 수신도 동일합니다 문자를 받는다면 그 문자를 받고 브로드캐스트 리시버를 구현하면 특정 이벤트를 처리할 수 있습니다.

4. 콘텐트 제공자(Content Provider)

  • 애플리케이션 사이에서 각 데이터를 공유할수 있도록 사용되는 컴포넌트입니다.
  • 데이터베이스(DB)를 공유하기 위해 사용하며 애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공합니다.
  • SQLite DB , Web ,파일 입출력 등을 통해서 데이터를 관리합니다.
  • 기본적으로 내장되있는 DB를 읽고 쓰기에 대한 퍼미션만있다면 데이터 접근이 가능합니다.
  • 반대로 이야기하자면, 외부 애플리케이션이 현재 실행 중인 애플리케이션 안에 있는 데이터베이스(DB)에 함부로 접근하지 못하게 할 수 있으면서 내가 공유하고싶은 부분은 공유해줄 수 있게 합니다.

Intent

  • Intent는 명시적 인텐트와 암시적 인텐트로 구분됩니다.
  • 명시적 인텐트 : 인텐트에 클래스 객체나 컴포넌트 이름을 지정하여 호출될 대상을 확실히 알 수 있는 경우
  • 암시적 인텐트 : 호출될 대상의 속성들을 지정했지만 호출될 대상이 달라질 수 있는 경우
  • 어플리케이션 구성요소(컴포넌트) 간에 작업 수행을 위한 정보를 전달하는 역할을 한합니다.
  • 컴포넌트A가 컴포넌트B를 호출할 때 필요한 정보를 담고 있으며, 이 정보에는 호출되는 컴포넌트B의 이름이 명시적으로 표시되기도 하고, 속성들이 암시적으로 표시되기도 합니다.
  • 호출된 컴포넌트B가 호출한 컴포넌트A로 어떠한 결과를 전달할 때도 인텐트가 사용됩니다.

RecyclerView

  • 목록을 화면에 출력해주고 동적으로 표현해주는 컨테이너입니다.
  • 리사이클러뷰는 간단한 코드만으로 ListView, GridView로 바꿀 수 있습니다.
  • 가장 복잡한 컨테이너지만 가장 많이 사용되는 것이 바로 리사이클러뷰입니다.

Fragment

  • 앱 UI의 재사용 가능한 부분을 나타냅니다.
  • 프래그먼트는 자체 레이아웃을 정의 및 관리하고 자체 수명 주기를 보유하며 자체 입력 이벤트를 처리할 수 있습니다.
  • 프래그먼트는 독립적으로 존재할 수 없고 활동이나 다른 프래그먼트에서 호스팅되어야 합니다.
  • 프래그먼트의 뷰 계층 구조는 호스트 뷰 계층 구조의 일부가 되거나 여기에 연결됩니다.

HTML / CSS / JavaScript

HTML

  • Hyper Text Markup Language 약어로 HyperText(웹 페이지에서 다른 페이지로 이동할 수 있도록 하는 것) 기능을 가진 문서를 만드는 언어입니다.
  • 다시 말해, 구조를 설계할 때 사용되는 언어로 hyper link 시스템을 가지고 있으며, 흔히 말하는 웹 페이지를 위한 마크업 언어라고 할 수 있습니다.

CSS

  • Cascading Style Sheets 약자로 HTML, XHTML, XML 같은 문서의 스타일를 꾸밀 때 사용하는 스타일 시트 언어입니다.
  • HTML로 문서의 뼈대를 만들면 CSS는 이 문서의 화장을 맡고 있는 셈입니다.
  • 글꼴이나, 배경색, 너비와 높이, 위치 등을 지정하거나, 웹 브라우저, 스크린 크기, 장치에 따라서 화면을 다르게 표시될 수 있도록 지정할 수도 있습니다.

JavaScript

  • HTML과 CSS로 만들어진 웹페이지를 동적으로 변경해주는 언어입니다.
  • 경고창을 띄우고, 탭인터페이스를 만들고, Drag & Drop 기능의 웹에플리케이션을 만들 수 있습니다.

Spring Framework

MyBatis

  • 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크입니다.
  • JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거 합니다.
  • Mybatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점을 가지고 있습니다.

JPA

  • JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준입니다.
  • JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 됩니다.
  • JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동으로 Mapping 해줍니다.
  • JPA는 내부적으로 JDBC API를 활용하는데 개발자가 직접 JDBC API를 활용하면 패러다임 불일치, SQL 의존성 등으로 인해 효율성이 떨어집니다.
  • JPA를 활용한다면 모든 SQL에 대해 개발자 대신 JPA가 자동으로 해결해 준다는 점에서 생산성을 크게 높입니다.

MVC 패턴

  • MVC패턴은 디자인패턴 중 하나로 Model, View, Controller의 약자 입니다.
  • 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다.
  • 모델은 컨트롤러에 컨트롤러는 뷰에 뷰는 다시 유저 유저는 다시 컨트롤러를 향해서 갑니다.

모델

  1. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
  2. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
  3. 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.

  1. 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
  2. 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 된다.
  3. 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.

컨트롤러

  1. 모델이나 뷰에 대해서 알고 있어야 한다.
  2. 모델이나 뷰의 변경을 모니터링 해야 한다.

Spring AOP

  • Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불립니다.
  • 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말합니다.
  • 로직을 모듈화한다는 것은 코드들을 부분적으로 나누어서 모듈화하겠다는 의미입니다.

AOP의 주요 개념

  • Aspect : 위에서 설명한 흩어진 관심사를 모듈화 한 것. 주로 부가기능을 모듈화함.
  • Target : Aspect를 적용하는 곳 (클래스, 메서드 .. )
  • Advice : 실질적으로 어떤 일을 해야할 지에 대한 것, 실질적인 부가기능을 담은 구현체
  • JointPoint : Advice가 적용될 위치, 끼어들 수 있는 지점. 메서드 진입 지점, 생성자 호출 시점, 필드에서 값을 꺼내올 때 등 다양한 시점에 적용가능
  • PointCut : JointPoint의 상세한 스펙을 정의한 것. 'A란 메서드의 진입 시점에 호출할 것'과 같이 더욱 구체적으로 Advice가 실행될 지점을 정할 수 있음

스프링 AOP 특징

  • 프록시 패턴 기반의 AOP 구현체, 프록시 객체를 쓰는 이유는 접근 제어 및 부가기능을 추가하기 위해서입니다.
  • 스프링 빈에만 AOP를 적용 가능합니다.
  • 모든 AOP 기능을 제공하는 것이 아닌 스프링 IoC와 연동하여 엔터프라이즈 애플리케이션에서 가장 흔한 문제(중복코드, 프록시 클래스 작성의 번거로움, 객체들 간 관계 복잡도 증가 ...)에 대한 해결책을 지원하는 것이 목적입니다.

트랜잭션

  • 트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다.

트랜잭션의 특징

  1. 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위입니다.
  2. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위입니다.
  3. 하나의 트랜잭션은 Commit되거나 Rollback 됩니다.

인터셉터

  • 특정 URI로 요청시 Controller로 가는 요청을 가로채는 역할을 합니다.

Ajax

  • Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자입니다.
  • 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능입니다.
  • 브라우저가 가지고있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법입니다.
  • 쉽게 말하자면 자바스크립트를 통해서 서버에 데이터를 비동기 방식으로 요청하는 것이다.

OpenAPI

  • 오픈 API 또는 공개 API는 개발자라면 누구나 사용할 수 있도록 공개된 API를 말하며, 개발자에게 사유 응용 소프트웨어나 웹 서비스의 프로그래밍적인 권한을 제공합니다.

Database

DML(Data Manipulation Language) : 데이터 조작어

  • SLECET, INSERT, UPDATE, DELETE
  • SLECET : 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것으로 RETRIEVE 라고도 합니다.
  • INSERT, UPDATE, DELETE : 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류(데이터 삽입, 수정, 삭제)의 명령어들을 말합니다.

DDL(Data Definition Language) : 데이터 정의어

  • CREATE, ALTER, DROP, RENAME, TRUNCATE
  • 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 (생성, 변경, 삭제, 이름변경) 데이터 구조와 관련된 명령어들을 말합니다.

DCL(Data Control Language) : 데이터 제어어

  • GRANT, REVOKE
  • 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어들을 말합니다.

TCL(Transaction Control Language) : 트랜잭션 제어어

  • COMMIT, ROLLBACK, SAVEPOINT
  • 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어를 말합니다.

JSP / SERVLET

서블릿

Life Cycle

Session

EL표현식

JSTL

스크립트릿 선언

Bean

액션 태그

JDBC

Java

객체지향 프로그래밍의 특징

  • 우리가 실생활에서 쓰는 모든 것을 객체라 하며, 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말합니다.
  • 객체는 클래스라는 틀에서 생겨난 실체(instance)입니다.
  • 객체 지향 프로그램은 객체와 객체 간의 연결로 되어 있으며 각각의 객체 안에 자료구조와 알고리즘이 들어있는 것입니다.
  1. 추상화(abstraction)
  • 객체들의 공통적인 특징(기능, 속성)을 도출하는 것
  • 객체지향적 관점에서는 클래스를 정의하는 것을 추상화라고 할 수 있다.(클래스가 없는 객체지향 언어도 존재 ex.JavaScript)
  1. 캡슐화(encapsulation)
  • 실제로 구현되는 부분을 외부에 드러나지 않도록 하여 정보를 은닉할 수 있다.
  • 객체가 독립적으로 역할을 할 수 있도록 데이터와 기능을 하나로 묶어 관리하는 것
    코드가 묶여있어서 오류가 없어 편리하다.
  • 데이터를 보이지 않고 외부와 상호작용을 할 때는 메소드를 이용하여 통신을 한다. 보통 라이브러리로 만들어서 업그레이드해 사용할 수 있다.
  1. 상속성(inheritance)
  • 하나의 클래스가 가진 특징(함수, 데이터)을 다른 클래스가 그대로 물려받는 것
  • 이미 작성된 클래스를 받아서 새로운 클래스를 생성하는 것
  • 기존 코드를 재활용해서 사용함으로써 객체지향 방법의 중요한 기능 중 하나에 속한다.
  1. 다형성(polymorphism)
  • 약간 다른 방법으로 동작하는 함수를 동일한 이름으로 호출하는 것
  • 동일한 명령의 해석을 연결된 객체에 의존하는 것
  • 오버라이딩(Overriding), 오버로딩(Overloading)
    - 오버라이딩(Overriding) : 부모클래스의 메소드와 같은 이름을 사용하며 매개변수도 같되 내부 소스를 재정의하는 것
    - 오버로딩(Overloading) : 같은 이름의 함수를 여러 개 정의한 후 매개변수를 다르게 하여 같은 이름을 경우에 따라 호출하여 사용하는 것
  1. 동적바인딩(Dynamic Binding)
  • 가상 함수를 호출하는 코드를 컴파일할 때, 바인딩을 실행시간에 결정하는 것.
  • 파생 클래스의 객체에 대해, 기본 클래스의 포인터로 가상 함수가 호출될 때 일어난다.
  • 함수를 호출하면 동적 바인딩을 통해 파생 클래스에 오버라이딩 된 함수가 실행
  • 프로그래밍의 유연성을 높여주며 파생 클래스에서 재정의한 함수의 호출을 보장(다형 개념 실현)

추상 클래스

인터페이스

캐스팅

오버로딩

오버라이딩

객체 생성

메서드

예외 처리

컬렉션

제네릭

profile
Nil Desperandum <절대 절망하지 마라>

0개의 댓글