JSON(JavaScript Object Notation)은 Javascript 객체 문법으로 구조화된 데이터 교환 형식이다. Python, JavaScript, Java 등 여러 언어에서 데이터 교환 형식으로 쓰이며, 객체 문법 말고도 단순 배열, 문자열도 표현 가능
XML(Extensible Markup Language)은 마크업 형태를 사용하는 데이터 교환 형식이다.마크업(markup)은 태그 등을 이용해 문서나 데이터의 구조를 나타내는 방법이다. 속성 부여도 가능하다.프롤로그: 버전과 인코딩 정보를 담는다.루트 요소: 문서에서
API (Application Programming Interface)는 두 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중계 계층을 의미한다.예를 들어, A라는 컴퓨터가 요청을 하고, B라는 컴퓨터가 응답을 한다고 했을 때, 어떻게 통신할 것인
클라우드 #1: 가상머신 클라우드 기술을 배워보기 전에 클라우드의 기반 기술 중 하나인 가상머신을 먼저 알아본다. 전통적 배포 방식 전통적인 배포 방식은 물리적인 컴퓨터 한 대에 하나의 OS를 설치하고 여러 가지 프로그램을 설치하는 방식이다. 계정을 나눠 여러 명
개발자가 코드를 작성한 후 해야 할 일은 코드를 계속해서 통합하고 배포하는 것이다. 이 과정을 CI/CD(연속 통합/배달 및 배포)라고 한다.여러 개발자가 함께 일하는 환경에서 코드를 통합하고 배포하는 일을 시스템 없이 수동으로 진행한다면 다음과 같은 문제가 발생할 수
프로그래밍을 배우면서 자주 마주치는 용어들인 클래스, 객체, 그리고 인스턴스에 대해 간단히 알아보자.클래스는 객체를 만들어 내기 위한 틀이다. 만들어낼 객체의 속성(attribute)과 메서드(method)의 집합을 담고 있다. 즉, 객체의 설계도라고 할 수 있다.객체
static 키워드는 프로그래밍 언어에서 클래스 레벨의 속성과 메서드에 사용되며, 이를 통해 인스턴스 간에 공유될 수 있는 변수나 메서드를 정의한다. 주로 Java에서 static의 개념을 배우며, JavaScript에서도 유사한 방식으로 사용될 수 있다.클래스 소속:
오버로딩은 이름이 같아도 매개변수 개수, 타입, 순서를 다르게 해서 같은 이름으로도 여러 개의 함수를 정의할 수 있는 것을 말한다. 이는 프로그램의 유연성을 높이고 결과적으로 코드를 깔끔하게 하는 효과가 있으며 같은 클래스 내에서 사용한다. ex1)ex2)ex3) C+
프로그래밍에서의 추상화는 복잡한 데이터, 구조, 시스템 등으로부터 핵심만을 가려내 덜 자세하게 만드는 것 또는 세부사항, 절차 등을 감추고 인터페이스 등을 만드는 것으로 복잡도를 낮추는 방법이다.크게 데이터, 프로세스 2가지로 나뉜다.어떤한 데이터들의 공통점을 모으로
컴파일러와 인터프리터는 프로그래밍 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정에 관여하는 프로그램이다.참고기계어 코드는 컴퓨터 프로세서가 직접 이해하고 실행할 수 있는, 가장 기본적인 형태의 명령어 집합이다. 이러한 코드는 0과 1, 즉 이진수
디자인 패턴은 프로그래밍 설계할 때 발생하는 문제점들을 객체 간의 상호 작용 등을 활용해 해결할 수 있도록 '규약' 형태로 만들어 둔 것을 말한다. 이는 라이브러리나 프레임워크를 만드는 기초 원리로 활용되며, 현재도 많은 라이브러리와 프레임워크가 어떤 디자인 패턴을 기
라이브러리: 공통으로 사용될 수 있는 특정 기능들을 모듈화한 것으로, 프레임워크에 비해 자유롭다. 예: chart.js, axios프레임워크: 공통으로 사용될 수 있는 특정 기능들을 모듈화한 것이지만, 라이브러리에 비해 좀 더 엄격한 규칙을 가진다. 예: vue.js,
싱글톤 패턴은 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 데이터베이스 연결 모듈 같이 인스턴스 생성에 많은 비용이 드는 곳에 주로 쓰이며, 인스턴스 생성을 효율적으로 할 수 있다는 장점이 있다. 하지만 의존성이 높아지고 TDD를 할 때 불편한 단점이 있다.이와
팩토리패턴이란 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고,하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴이다.상위 클래스에서는 객체 생성방식에 대해 알 필요가 없어져 유연성을 갖게 되며 객체 생성로직은 하위클래스에서만 관리 되
이터레이터패턴은 이터레이터(iterator)를 사용하여 컨테이너의 요소들에 접근하는 디자인패턴이다. 각기 다른 자료구조들을 똑같은 인터페이스로 순회를 쉽게 할 수 있다는 장점이있다. 컨테이너란 동일한 요소들을 담아놓는 집합을 말한다. 배열, 맵 등이 있다.
옵저버패턴이란 주체가 어떤 객체(subject)의 상태 변화를 관찰하다가 상태 변화가 있을때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려 주는 디자인패턴이다.트위터의 메인 로직, 그리고 MVC패턴에도 적용되었다.프록시패턴이란 객체가 어떤 대상 객체
프록시패턴이란 객체가 어떤 대상 객체에 접근하기 전, 그 접근에 대한 흐름을 가로채서 해당접근을 필터링하거나 수정하는 등의 역할을 하는 계층이 있는 디자인패턴이다.서버 앞단에 두어 캐싱, 로깅 등에 활용하는 프록시 서버가 대표적인 예이다.보통은 서비스 앞단에 프록시 서
MVC패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 디자인 패턴이다.모델(model)은 애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻한다.뷰에서 데이터를 생성하거나 수정할 때 컨트롤러를 통해 모델이 생성 또는 업데이트
Spring은 자바기반으로 애플리케이션 개발을 할 때 많은 기능들을 제공하는 프레임워크다. 다음과 같은 아키텍처를 가진다. 이 중 mvc패턴이 적용된 web모듈의 spring web mvc를 살펴보자 디스패처 서블릿의 요청 처리과정 Spring Web MVC의 MVC패턴은 디스패처 서블릿의 사용자 요청처리과정을 통해 알 수 있다. 클라이언트가 요청을 ...