728x90 반응형 Computer Science/용어정리5 TDD(Test Driven Development) 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복 및 구현한다. Red 단계에서는 실패하는 테스트 코드를 먼저 작성한다. Green 단계에서는 테스트 코드를 성공시키기 위한 실제 코드를 작성한다. Blue 단계에서는 중복 코드 제거, 일반화 등의 리팩토링을 수행한다. [일반적] 보통의 개발 방식은 '요구사항 분석 -> 설계 -> 개발 -> 테스트 -> 배포'의 형태의 개발 주기를 갖는데 이러한 방식은 소프트웨어 개발을 느리게 하는 잠재적 위험이 존재한다. 왜냐하면, 소비자의 요구사항이 처음부터 명확하지 않을 수 있다. 따라서 처음부터 완벽한 설계는 어렵다. 자체 버그 검출 능력 저하 또는 소스코드의 품질이 저하될 수 있다. 자체 .. 2024. 3. 4. Graceful Shutdown 프로그램이 종료될 때 최대한 side effect가 없도록 하고 있던 작업을 마무리한 뒤 종료하는 것을 말한다. ( Hard Shutdown) ex ) http요청을 처리하는 웹서버의 경우 : 서버가 종료되기 전 기존 처리 중이던 요청을 모두 처리한 뒤 종료시킴 Ctrl+c 또는 exception으로 서버가 종료될 때 보내는 시그널로 SIGINT, SIGTERM, SIGKILL이 있다. 1. SIGINT : 유저가 직접 프로그램을 종료(interrupt의 int) - catch하여 시그널 핸들러 만들 수 있음 2. SIGTERM : 프로그램을 종료하는 일반적인 방법 - catch하여 시그널 핸들러 만들 수 있음 3. SIGKILL : 프로세스를 무조건 Kill - catch하여 시그널 핸들러 만들 수 없.. 2023. 12. 21. Native programming 컴퓨터의 특정한 플랫폼 또는 운영 체제에 최적화된 프로그램을 개발하는 것 기계어 또는 특정 플랫폼의 어셈블리 언어를 사용하여 프로그램을 작성하는 것 예를 들어, 특정 운영 체제에서 실행되는 프로그램을 개발할 때, 해당 운영 체제의 API (Application Programming Interface)와 라이브러리를 사용하여 프로그램을 작성하는 것으로, 프로그램이 해당 운영 체제에서 최적으로 작동하고 성능이 최대화될 수 있다. C나 C++ 등으로 코딩한 것은 바로 실행할 수 없고, 어셈블리로 변환이 되어 (컴파일) 기계어로 변환되어 실행 가능하다. 3층 - C/C++ 2층 - 어셈블리 2023. 10. 26. 콜백함수, Promise, async/await 예제 1) function printMe(){ console.log('Hello world!') } setTimeout(printme, 3000); console.log('대기중~'); ------------------------------ 대기중~ Hello world! setTimeout이 사용되는 시점에서 코드가 3초동안 멈추는 것이 아니라, 위에서 아래로 코드가 다 호출되고 3초 뒤에 printMe가 호출된다. js에서 비동기 작업을 사용할 때 가장 흔히 사용하는 방법으로 setTimeout 함수의 인자로 전달하고 있는 printMe 함수 자체를 콜백함수라고 한다. 예제 2 ) number 값이 주어지면 1초 뒤에 10을 더한 값을 반환하는 함수가 있다. function increase(numbe.. 2022. 9. 12. 동기 / 비동기 동기적 처리 : 요청이 끝날 때까지 기다리는동안 중지 상태가 되기 때문에 다른 작업을 할 수 없다. 비동기 처리 : 웹app을 멈추지 않기 때문에 동시에 여러 가지 요청을 처리할 수도 있고, 기다리는 과정에서 다른 함수도 호출할 수 있다. - 서버 API 호출 - setTimeout 함수를 사용한 특정 작업 예약 function printMe(){ console.log('Hello world!') } setTimeout(printme, 3000); console.log('대기중~'); ------------------------------ 대기중~ Hello world! setTimeout이 사용되는 시점에서 코드가 3초동안 멈추는 것이 아니라, 위에서 아래로 코드가 다 호출되고 3초 뒤에 printMe.. 2022. 9. 11. 이전 1 다음 728x90 반응형