2022-08-05

강아람·2022년 8월 5일
0

Kakao Cloud School

목록 보기
19/30
post-thumbnail

Front-end

TypeScript

객체 지향적 Javascript (MicroSoft - 2012)

  • npm
  • webpack
  • babel
  • gulp

    등 라이브러리에 대한 지식이 요구됨



ES6

Javascript

= ECMAScript + Client API(BOM, DOM, Dnd, web storage) or ServerAPI(Node.js)

문제점

  • 자유로운 프로그래밍이 가능하지만 구현이 어렵고, 언어의 모호성이 존재
  • cross-browsing (브라우저 종류, 버전마다 JS 코드 구현 방식이 달라짐)

▶ JQuery로 해결 ▶ HTML5 개발 ▶ ECMAScript가 발전됨 (🌟ES6)

1) 변수

  • var, let, const 차이
  • hoisting : JS Engine의 작동 방식으로 인해 hoisting
  • immutable vs mutable
    • primitive type value vs object
  • literal이란?
  • data type 종류와 특징

2) 함수

  • 함수 정의 4가지
    • 함수 선언문
    • 함수 표현식
    • Function 생성자
    • Arrow Function (ES6)
  • 함수의 hoisting
  • IIFE (즉시 실행 함수, Immedietly Invoke Function Expression)
  • 중첩 함수
  • callback 함수, 고차 함수(High-order function)

3) Scope

  • function level scope
  • block level scope
  • 🌟 lexical scope
  • 전역 변수 (가능한 한 사용하지 않는 것이 좋은데 그 이유는?)

4) 생성자 함수

  • 일반 함수와 생성자 함수
  • 생성자 함수 : instance(객체)를 만들 수 있는 함수
  • Built-in 생성자 함수
  • 생성자 함수 정의
  • constructor vs non-constructor

5) 일급 객체 (First-class citizen)

  • 일급 객체란?
  • 함수 = 일급 객체
  • 함수 객체의 기본 property
    • 함수는 객체임 -> 여러 개의 property를 가지는데 모든 함수는 name, length ... 을 가진다.
    • prototype, __proto__

6) Prototype (for Inheritance)

  • prototype chain 을 통해 상속하는 방법
  • prototype을 변경할 수 있음 (동적 상속 가능)

7) Closure (🌟)

  • Closure의 개념과 사용 방법, 효과
  • lexical context

8) Class

9) Array

  • 특징(dense array X, 스파서 어레이??), 자주 사용되는 method (map, filter, splice, push, ...)



Java

  • JDK, JRE, JVM
  • 절차적 언어 vs 객체지향 언어
    • 차이, 객체지향 방법, 이점
  • Data type(8개) : primitive data type, reference data type

객체지향 개념

1) Class

2) Instance

3) contructor

ex. 다음 중 constructor의 특징이 아닌 것은?

4) JVM 메모리 구조 (Method Area, Stack, Heap)🌟

  • 각각의 메모리에 어떤 데이터가 언제 들어가는지

5) static keyword

  • 어디에 사용하고 어떤 동작을 하는지

6) method overloading

7) package, import

8) Access modifier

:public, protected, default, private

  • private : information hiding

9) Inheritance

상속 관계에 있을 때 객체 생성 : 객체 생성 과정과 메모리 구조 변화

  • super() : 상속 관계에 있는 class의 instance를 만들기 위해 호출 가능해야 함, 상위 클래스의 생성자
  • this()
  • method overriding
  • is-a relationship : 상위 클래스 타입으로 class 형변환 가능(polymorphism)
  • final keyword의 의미
  • 시나리오를 통해 이해
    • abstract keyword의 의미
    • interface 필요한 이유, 사용 방법
  • dynamic binding

주요 Class

Object Class

  • 자바의 모든 class의 ..

String Class

  • 특별한 특징 : literal (String pool)
  • 다른 클래스의 객체들은 new 키워드로 만드는데 얘만 다름

자료구조 Generic

  • List
  • Map
  • Set

Exception

try-catch

Thread

  • process, multi processing, multi threading
  • 만드는 방법

Deamon Thread

상태 전이도

method

  • sleep()
  • interrupt() : exception을 발생시켜서 interrupt
  • yield()
  • join()

동기화 (공용 객체의 동기화)

  • 의미, 필요한 이유, 조심해야 할 사항
    1) synchronized - 동기화 블록, 동기화 메서드
    - critical sector(임계 구역)
    2) wait(), notify() : 공용객체 동기화를 위핸 method
       notifyAll()

Java IO

  • 일반 IO : 쉽게 사용 가능(기본적인 입출력 방법), 효율이 떨어짐(단방향 통신이기 때문에 입력과 출력에 대한 stream이 각각 필요)
  • NIO : channel을 이용해 stream 하나로 입출력이 가능함 (복잡하지만 효율 상승)

Java Network

(code로 socket, ServerSocket을 이용해 c/s 구조로 채팅 구현)

  • IP
  • port
  • protocol
    ...

JDBC

  • pure JDBC : 쉽지만 관리 어렵고 효울이 높지 않음
    1) Driver Loading
    2) DBMS 연결
    3) statement
    4) query 실행
    5) resultset 처리
    6) 자원 해제

    단계별로 어떤 작업을 수행하는지 알아둘 것

  • spring에서의 DB 처리 : Mybatis, Hibernate(ORM)
  • connection pool : 수동 설정으로 사용했었으나 편리하게 사용 가능

DAO를 만들어 시나리오를 이용해 구조 변경

SoC(Separation of Concern)

  • 관심사의 분리 (관련있는 것끼리 묶어 분리시킴)

Refactoring

  • method extraction 기법 존재

Inheritance 문제점

  • Template Method Pattern, Factory Method Pattern

Interface 등장

  • DI(Dependency Injection) : Object 의존 관계 생성



Web

Terminology 용어

C/S 구조

Servlet

  • Dynamic web 구현

Request

  • Get
  • Post

HttpSession

JSP

  • servlet 결과를 쉽게 출력하는 방법

▶ MVC Pattern Web Program 구현

Transaction




Database

DBMS의 특징

Database 구성요소

  • table, view, key, index, stored procedure, trigger

SQL

🌟Transaction (ACID)

  • Transaction으로 보장받을 수 있는 것

MySQL 데이터 타입, 형변환, 주요 내장함수

Join

연습 문제

0개의 댓글