CS(Computer Science) 관련 지식

조영문·2023년 4월 7일
0

개념정리

목록 보기
2/3

Restful API

  • RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스입니다. 대부분의 비즈니스 애플리케이션은 다양한 태스크를 수행하기 위해 다른 내부 애플리케이션 및 서드 파티 애플리케이션과 통신해야 합니다. 예를 들어 월간 급여 명세서를 생성하려면 인보이스 발행을 자동화하고 내부의 근무 시간 기록 애플리케이션과 통신하기 위해 내부 계정 시스템이 데이터를 고객의 뱅킹 시스템과 공유해야 합니다. RESTful API는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준을 따르므로 이러한 정보 교환을 지원합니다.

풀스택 개발자

  • 클라이언트 및 서버 사이드 코드를 학습하고 웹 사이트가 작동하도록 해주는 모든 기술군에 대해 이해하고 있는 개발자입니다
  • 풀스택 개발자란 GUI 프론트엔드부터 데이터베이스 백엔드에 이르는 모든 소프트웨어 스택으 이해하는 개발자를 말한다.

기술 스택

  • 웹사이트나 웹 앱을 만들기 위한 언어, 데이터베이스, 프레임워크의 집합입니다. 일반적인 웹 개발 스택은 다음을 포함한 프론트엔트, 백엔드 기술이 혼합되어 있습니다.

DataBase

In-Memory Database

  • 인메모리 데이터베이스는 컴퓨터의 주 메모리에 모든 조직 또는 개인의 데이터를 저장합니다.
    인메모리 데이터베이스에 대한 데이터 분석은 보조 기억 장치를 사용하는 기존 데이터베이스에 비해 빠릅니다. 이러한 보조 기억 장치에는 하드 디스크 또는 솔리드 스테이트 장치(SSD)가 포함됩니다. 컴퓨터의 중앙 처리 장치(CPU)는 주 메모리에 저장된 데이터에만 직접 접속할 수 있습니다. 따라서 컴퓨터는 보조 기억 장치의 데이터보다 훨씬 빠르게 주 메모리의 데이터를 읽고 쓸 수 있습니다. 이로 하여 인메모리 데이터베이스 처리가 엄청나게 빠르게 됩니다.

Docker

  • 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있습니다.

Framework vs Library

Framework

  • 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미한다.

Library

  • 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임, 즉 특정 기능을 모아둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미

Devops

  • 애플리케이션 개발의 품질과 속도를 개선하고 신규 또는 수정된 소프트웨어 기능이나 제품의 릴리즈 주기 단축을 장려하는 새로운 철학이자 프레임워크
  • 애플리케이션 개발 팀(Dev)과 해당 IT 운영 팀(Ops) 팀 간의 원활하고 지속적인 커뮤니케이션, 협업, 통합, 가시성 및 투명성을 장려

방법

  • 스크럼
  • 칸반
  • 애자일

Spring IoC / DI

DI(Dependency Injection; 의존성 주입)

  • 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식
  • DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다.

IoC(Inversion of Control; 제어의 역전)

  • 메소드나 객체의 호출 작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다.
  • 스프링이 모든 의존성 객체를 스프링이 실행될때 다 만들어주고 필요한곳에 주입시켜줌으로써 Bean들은 싱글턴 패턴의 특징을 가지며, 제어의 흐름을 사용자가 컨트롤 하는 것이 아니라 스프링에게 맡겨 작업을 처리하게 된다.

추상 클래스 vs 인터페이스의

  • 자바는 다중상속을 지원하지 않는다.

추상 클래스

  • 클래스 내 '추상 메소드'가 하나 이상 포함되거나 abstract로 정의된 경우
  • 클래스는 다중 상속이 불가하다.

인터페이스

  • 모든 메소드가 추상 메소드인 경우
  • 인터페이스는 여러개를 상속할 수 있다.

디지털 트윈(Digital Twin)

  • 라이프사이클 전반에 걸쳐 실시간 데이터를 사용하여 업데이트되고, 시뮬레이션, 머신 러닝, 추론을 통해 의사 결정을 돕는 객체 또는 시스템의 가상 모델

JPA(Java Persistence API)

  • 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음
  • 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
  • Hibernate, OpenJPA 등이 JPA를 구현함

    반복적인 CRUD SQL을 처리해준다.

ORM(Object-Relational Mapping)

  • 애플리케이션 class와 RDB의 테이블을 매핑한다는 뜻, 기술적으로 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이다.

개발상식

좋은 코드란 무엇인가?

객체 지향 프로그래밍이란 무엇인가?

RESTFul API 란?

MVC 패턴이란 무엇인가?

Git 과 GitHub 에 대해서

자료구조

Array vs Linked List

네트워크

GET, POST 방식의 차이점

데이터베이스

정규화에 대해서

정규화 탄생 배경
정규화란 무엇인가
정규화의 종류
정규화의 장단점

NoSQL

Java

JVM 에 대해서 / GC 의 원리
Collection
Annotation
Generic
final
Overriding vs Overloading
Access Modifier
Wrapper class
Multi-Thread 환경에서의 개발

0개의 댓글