목록전체 글 (86)
undefined
Model 컨트롤러가 호출 시 요청에 맞는 역할을 수행 비즈니스로직의 구현영역 *비즈니스 로직 : 업무에 필요한 데이터를 처리하는 응용프로그램의 일부 상태가 변하면 컨트롤러와 뷰에 다음 명령을 요청한다. View 컨트롤러로부터 받은 모델의 결과값을 유저에게 출력하는 화면을 만든다. 뷰가 화면을 만들고 브라우저에 보내면 브라우저는 해당 화면을 출력한다. 사용자와 상호작용하는 영역 Controller 클라이언트로부터 요청을 받으면 그 요청을 수행하는 모델을 호출한다. 모델에 보낼 데이터를 가공한다. 모델이 업무를 마치면 컨트롤러를 통해 뷰로 결과를 전달한다.
Test Driven Development 테스트가 주도하는 코드 작성 방식 자동화된 테스트케이스를 생성하고 그 테스트를 통과하는 코드를 작성한다. 기능을 추가하기 전에 테스트를 작성한다 장점 1. 테스트를 작성하기 위해서 개발자는 요구사항을 분명히 이해하고 있어야 하므로 결과적으로 개발자는 코드작성 이전에 요구사항이 무엇인지 명확히 이해할 수 있다. 2. 새로운 기능을 추가한 후 테스트를 작동함으로써 새로운 기능과 기존의 기능이 잘 작동하는지 확인할 수 있다. 3. 코드 리팩토링시에 테스트를 거쳐가면서 진행할 수 있다. 단점 1. 코드량의 증가로 인해 시간이 많이 소요될 수 있다. 2. 테스트 코드를 작성함에 진입장벽이 존재한다. 3. 테스트가 필요한 부분때문에 메인코드를 변경하는 경우가 발생할 수 있..

문제 설명 문제 풀이 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; let count = 0; let expression = ''; rl.on('line', function (line) { if (!count) { } else if (count === 1) { expression = line; } else { input.push(+line); } count++; }).on('close', function () { solution(input); process.exit(); }); const soluti..
Representational State Transfer 디자인패턴X vs 아키텍쳐O 아키텍쳐란? 최적화를 위하여 시스템을 설계하는 설계도 Rest의 특징 1. 유니폼 인터페이스 통일된 인터페이스로 실행되는 아키텍쳐 스타일 2. 무상태성 불필요한 세션 쿠키등을 따로 저장하지않고 api로 들어오는 요청만 처리하기에 간단함 3. 캐시 가능 기존의 HTTP환경을 활용하기에 HTTP기능인 캐시를 활용가능 4. 자체표현구조 Rest API의 메세지를 보고도 구조를 쉽게 이해 가능한 자체표현구조 5. 클라이언트-서버구조 서버는 데이터를 제공 클라이언트는 데이터를 관리함으로서 각각의 역할이 구분되고 의존성이 줄어듬 6. 계층형구조 API의 서버를 다중계층으로 구성가능, 구조상의 유연성이 높고 프록시, 게이트웨이등의 ..
인간 중심적 프로그래밍 (Object Oriented Programming) 현실의 객체에서 특징들을 뽑아와서 프로그래밍하는것 ⇒ 추상화 코드의 재사용성이 높고 잘만들어 놓으면 버그의 발생률이 줄어든다 객체간에 메세지 교환을 통해 정보교환이 이루어지므로 시스템에 overhead가 발생할 수 있지만 하드웨어가 발전해나가면서 그점이 보완 되어왔다 치명적 단점 ⇒ 객체가 상태를 갖는 것 .. / 상태때문에 변수가 생성되고 이러한 변수 때문에 버그를 일으킨다. 이를 해결하기 위하여 함수형 프로그래밍이 등장하게 되었다. 1. 단일 책임의 원칙 하나의 클래스는 하나의 책임을 진다. 또한 클래스를 변경하는 이유는 하나의 이유여야 한다. 2. 개방-폐쇄의 원칙 확장에는 개방, 변경에는 폐쇄 3. 리스코프 치환의 원칙 ..
문제 설명 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 문제 풀이 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; let count = 0; let day = 0; let n = 0; rl.on('line', function (line) { if (!count) { n = +line.spli..