소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다. at 위키피디아프레임워크는 개발을 쉽게하도록 기본적으로 필요한 구조와
디자인패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체간의 상호관계등을 이용하여 해결 할 수 있도록 하나의 '규약'형태로 만들어 놓은 것 입니다.즉 디자인 패턴은 설계자들이 올바른 설계를 빨리 만들 수 있도록 도와줍니다.객체를 생성하고 참조하는 과정에 전체 시스템
싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴입니다. 주로 데이터베이스 연결 모듈에 많이 사용합니다.최초 한번만 메모리 할당(static)을 하고 그 메모리에 해당하는 인스턴스를 생성하여 반환하는 패턴입니다.데이터베이스 연결처럼 여러 객체 생성으로인
개발자 간의 협업을 위해 전체 개발 소스를 공유하면서 개발 파트를 나눌 수 있고 같은 모듈을 개발하더라도 소스를 공유하며 개발할 수 있기 때문! 오픈 소스 버전 관리 시스템(VCS: Version Control System)로컬에서 버전 관리소프트웨어 개발 및 소스 코
팩토리 패턴은 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴이다.추상 팩토리 패턴은 많은 수의 연관된 서브 클래
전략 패턴(strategy pattern)이란 정책패턴(policy pattern)이라고도 하며, 객체의 행위를 바꾸고 싶은 경우 '직접'수정하지않고 전략이라고 부루는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴입니다.전략 패턴의
옵저버 패턴은 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버에게 변화를 알려주는 디자인 패턴입니다.옵저버 패턴에는 주체 객체와 상태의 변경을 알아야 하는 관찰 객체(Observer Object)가 존재하
프록시 패턴이은 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 다ㅐ상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴입니다.꼭 필요로 하는 시점까지 객체의 생성을 연기하고, 해당 객체가 생성된 것 처럼 동작하도록 만들고 싶을 때 사용하는 패턴이다. 프록시 클래
행위(Behavioral) 패턴컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체안에 들어있는 모든 항목에 접근할 수 있게 해 주는 방법을 제공해 주는 패턴이터레이터 패턴을 사용하면 집합체 내에서 어떤 식으로 일이 처리되는지 몰라도 그 안에 들어있는 항목들에 대해서 반
노출모듈 패턴은 즉시 실행함수를 통해 private, public 같은 접근 제어자를 만드는 패턴을 말합니다. 자바스크립트는 private나 public 같은 접근 제어자가 존재하지않고 전역 범위에서 스크립트가 실행됩니다. 그렇기 때문에 노출모듈 패턴을 통해 priva
가장 유명하고 많이 쓰이는 디자인패턴인 MVC 패턴과 MVC 패턴에서 파생되어져 나온 MVP 패턴과 MVVM 패턴에 대해 알아보자각각의 역할을 나눠 코드 관리를 하면 유지보수와 개발효율이 줄어들기 때문MVC 패턴 = Model + View + ControllerMVC는
프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론입니다.최근의 프로그래밍 패러다임은 크게 아래와 같이 구분할 수 있다.명령형 프로그래밍: 무엇(What)을 할 것인지 나타내기보다 어떻게(How) 할 건지를 설명하는 방식절차지향
REST(Represetational State Transfer) -> 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다.HTTP URI 를 통해 자원을 명시HTTP Method(POST,GET,PUT,DELETE) 사용필요한 자원에 대해 CR
GraphQL은 API를 위한 쿼리 언어이며 이미 존재하는 데이터로 쿼리를 수행하기 위한 런타임 입니다. Facebook에서 만든 애플리케이션 레이어 쿼리 언어입니다.api를 위한 쿼리 언어이며, 타입시스템을 사용하여 쿼리를 실해하는 서버사이드 런타임이며, 특정한 데이
절차지향(procedural programming)이란, 순차적인 처리가 우선시되며, 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법입니다.초기 프로그래밍 언어로, 컴퓨터 처리구조와 비슷해 실행속도가 빠르다.유지보수의 어려움하나가 고장나면 시스템 전체가 고
어셈블리어로 작성된 어셈블리어 소스 코드를 기계어로 변환(변역)해주는 프로그램입니다.하드웨어와 소프트웨어의 가장 밑 부분에 있는 저급 언어(Low Language)기계와 1:1로 대화하는 언어 => binary로 소통이 힘들기 때문에 어셈블리어를 이용해킹, 운영체제,
프로세스 간에 데이터를 교환할 때 사용되는 통신방법 중에 하나이다. 더 큰 개념으로는 MOM(Message Oriented Middleware: 메세지 지향 미들웨어)를 의미한다. MOM이란 비동기 메세지를 사용하는 프로그램 간 데이터 송수신을 의미하며, MOM을 구현
애자일은 1970년대 윌리엄 로이스가 대형 소프트웨어 시스템 개발에 관해 제출한 논문에서 처음 등장했으며, '스프린트'(sprint)라는 짧고 점진적인 개발 주기로 구성된 프로젝트 관리 방법론이다.애자일 방법론은 애자일 선언의 4가지 기본 가치와 12가지 원칙에 바탕을
테스트 주도 개발기조의 개발 프로세스그림1과 다음과 같은 차이가 있다. 이런이유로 test first development라고도 한다.TDD는 작가가 책을 쓰는 과정과 유사하다. 책을 쓸 때는 목차를 처음 구성한다. 이후 각 목차에 맞는 내용을 구상하여 초안을 작성하고
도메인 주도 설계사용자가 사용하는 것 , 소프트웨어로 해결하고자하는 문제 영역비지니스 영역도메인을 중심으로 하는 개발 방식 -> 도메인에 관련된 문제를 해결하는 것복잡한 도메인을 해결하는 것을 높은 우선순위로 생각해서 서비스를 만들어 나가는 방법이다.\-> 도메인의 복
웹 서버는 파일 경로 이름을 받고, 경로와 일치하는 file contents를 반환함항상 동일한 페이지를 반환함인자의 내용에 맞게 바뀌는 페이지 -> 동적인 contents를 반환웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .c
도커란 '컨테이너 기반의 오픈소스 가상화 플랫폼'입니다.컨테이너란?'애플리케이션과 애플리케이션을 구동하는 환경을 host OS로 부터 격리한 공간을 의미합니다.컨테이너는 보통 마이크로서비스로 사용됩니다.마이크로서비스란, 거대한 어플리케이션을 기능별로 나누어, 변경/조합
HTTP 프로토콜의 특징으로 인해 필요하다.비연결성클라이언트가 서버에 요청을 하고나서 그에 걸맞는 응답을 보낸 후 서버와 클라이언트의 연결을 끊는 방식무상태 (Stateless)커넥션이 끊는 순간 이후로 어떠한 상태정보를 유지하지않는 특성 클라이언트와 첫 번째 통신에서
DOM은 웹 페이지에 대한 인터페이스입니다. 기본적으로 여러 프로그램들이 페이지의 콘텐츠 및 구조, 그리고 스타일을 읽고 조작할 수 있도록 API를 제공합니다. 첫번째 과정브라우저는 읽어들인 문서를 파싱하여 어떤내용을 페이지에 렌더링을 할지 결정합니다.두번째 과정브라우
DOM이란? https://velog.io/@narangke3/DOM Virtual DOM의 등장배경 브라우저 동작원리 위처럼 브라우저가 html을 받으면 이를 파싱하고 돔 트리를 만든다. 그리고 css 파싱을 통해 결과적으로 렌더트리를 만들게 된다. 렌더트리가