본문 바로가기
반응형

개발 용어 정리23

[개발용어] Framework vs Platform 프레임워크, 플랫폼이란?, 프레임워크 vs 플랫폼 프레임워크(Framework)1. 프로그램을 개발할 때 사용할 수 있는 인터페이스 패키지2. 인터페이스: 개발의 기본 구조와 필요한 코드, 알고리즘, 암호화 체계, 데이터베이스등의 연동방식의 집합체3. 그 자체가 완벽하게 동작할 수 있는 응용프로그램4. 따로 사용자가 작성한 코드가 없더라도 동작하는데 문제가 없음5. 기본적으로 실행해야 할 일을 가지고 사용자가 작성하는 코드의 시작점이 없어 제어를 프레임워크가 전담함6. 사용자는 프레임워크가 정의한 동작을 재정의하는 형태로 코드를 추가할 수 있음(Extensible)7. 프레임워크 자체의 변경은 용납하지 않음(Non-modifiable)8. 사용자가 쉽게 코딩할 수 있는 방법을 제공하지만 의존성도 높아짐e.. 2024. 8. 3.
[알고리즘] 동적 계획법(Dynamic Programming, DP), 분할 정복(Divide and Conquer) 동적 계획법(Dynamic Programming, DP), 분할 정복(Divide and Conquer)의 차이와 정의 1. 정의 및 특징 1) 분할 정복(Divide and Conquer) 정의: 상위 문제를 나눌 수 없을 때까지 분할하여 각 하위 문제를 풀고 다시 합병하여 상위 문제의 답을 얻는 방식의 알고리즘이다. 특징 - 하향식 접근법: 상위 문제의 답을 구하기 위해, 아래로 내려가면서 하위의 해답을 구하는 방식. 즉, 상위 문제의 답을 구하기 위해 이전에 수행해야 하는 절차를 수행하는 방식이다.(재귀함수로 구현) - 문제를 쪼갤 때, 부분 문제의 중복이 없다. 예: 병합 정렬, 퀵 정렬 등 1) 동적 계획법(Dynamic Programming, DP) 정의: 하나의 큰 문제를 해결하기 위해, 큰.. 2023. 6. 17.
[알고리즘] 타뷸레이션(Tabulation) 타뷸레이션(Tabulation)의 정의와 메모이제이션(Memoization)과의 차이 타뷸레이션(Tabulation)이란? 1. 동일한 계산을 반복해야 할 경우 한 번 계산한 결과를 메모리에 저장해 두었다가 재사용하여 중복 계산을 방지할 수 있게 하는 기법이다. 2. 중복 계산을 방지하여 전체 실행 속도를 빠르게 한다. 3. 앞으로 계산할 모든 값에 대해 저장하여 초기화 오버헤드가 크다. 4. 초기화 이후에 계산해둔 값을 사용할 때 더 이상의 계산이 필요하지 않다. 5. Table + ulation으로 테이블에 미리 값을 적어놓는다고 생각하자. 차이점 1. 메모이제이션과 비슷하지만, 값을 미리 계산해둔다는 차이점이 있다. 2. 메모이제이션 결과가 필요해질 때 계산한다.(Lazy-Evaluation) - .. 2023. 6. 17.
[알고리즘] 재귀(recursion), 재귀함수(recursive function) 재귀(recursion) 및 재귀함수(recursive function), 팩토리얼을 구하는 함수 예제코드 1. 재귀 자기자신을 호출한다는 말로 자기자신을 반복해서 돌아간다라는 의미를 가지고 있다. 2. 재귀함수 재귀를 하는 함수로 정의 단계에서 자신을 재참조하는 함수를 뜻한다. 재귀함수의 예시로 팩토리얼을 구하는 함수가 있다. 예제코드 const factorial = function(number) { if (number > 0) { return number * factorial(number - 1); } else { return 1; } }; console.log(factorial(10)); 1. factorial 함수는 재귀함수로 factorial함수에서 factorial 함수를 또 호출한다. (자기.. 2023. 6. 16.
[알고리즘] 에라토스테네스의 체 에라토스테네스의 체란? 1. 수학에서 에라토스테네스의 체는 고대 그리스에서 에라토스테네스가 발견한 소수를 찾는 방법이다. 2. 소수를 찾는 알고리즘 중에 하나로 2부터 찾고자하는 숫자의 범위 n의 값이 크면 클수록 효과적이다. 3. 알고리즘은 아래 사진과 같다. 알고리즘 1. 2부터 소수를 구하고자 하는 모든 수를 나열한다. 그림에서 회색 사각형으로 다른 수들이 여기에 해당한다. 2. 2는 소수이므로 오른쪽 Prime numbers에 2를 써준다. 3. 2를 제외한 모든 2의 배수를 지운다. 4. 3은 소수이므로 오른쪽 Prime numbers에 3을 써준다. 5. 3을 제외한 모든 3의 배수를 지운다. 6. 5는 소수이므로 오른쪽 Prime numbers에 5를 써준다. 7. 5를 제외한 모든 5의 배.. 2023. 6. 14.
[알고리즘] 메모이제이션(memoization) 메모이제이션(memoization)이란? 1. 동적 프로그래밍(DP: Dynamic Programing)의 핵심이 되는 기술이다. 2. 동일한 계산을 반복해야 할 경우 한 번 계산한 결과를 메모리에 저장해 두었다가 재사용하여 중복 계산을 방지할 수 있게 하는 기법이다. 3. 중복 계산을 방지하여 전체 실행 속도를 빠르게 한다. 4. 이론적인 용어라 코딩 테스트, 알고리즘에서만 사용하는 용어이고 실제 현장에서는 캐싱(caching)이라는 단어를 더 많이 사용한다. 예) - 피보나치 수열: f(n-1), f(n-2)의 값을 메모이제이션하여 f(n)을 계산한다. - 팩토리얼을: f(n-1), f(n-2) .... 1의 값을 메모이제이션하여 f(n)을 계산한다. 2023. 6. 13.
[Next.js] CSR(Client Side Rendering), SSR(Server Side Rendering) 클라이언트사이드렌더링_CSR(Client Side Rendering), 서버사이드렌더링_SSR(Server Side Rendering) CSR Client Side Rendering의 약자이다. 렌더링이 클라이언트 사이드에서 일어난다. 1. 서버는 요청을 받으면 클라이언트에 HTML과 JS를 보내준다. 2. 클라이언트는 그것을 받아 렌더링을 시작한다. CSR 순서 1. User가 Website에 페이지에 대한 요청을 보낸다. 2. CDN이 HTML 파일과 JS로 접근할 수 있는 링크를 클라이언트 사이드로 보낸다. CDN : aws의 cloudflare와 같이 엔드 유저의 요청에 '물리적'으로 가까운 서버에서 요청에 응답하는 방식이다. 3. 클라이언트는 HTML과 JavaScript를 다운로드 받는다. (.. 2023. 5. 7.
[서버용어] 가상화(Virtualization) 용어 정리 가상머신(VM - Virtual Machine), 가상화(Virtualization), 컴퓨터 가상화(computer virtualization), 분산처리기술(distributed computing), 네트워크 가상화(network virtualization) 1. 가상머신 - 물리적 컴퓨터의 디지털 버전으로 가상 머신 소프트웨어는 프로그램 및 운영체제를 실행하고, 데이터를 저장하고, 네트워크에 연결하는 등 기타 컴퓨팅 기능을 수행할 수 있는 것을 말한다. - 컴퓨터상에 가상으로 컴퓨터를 구동시키는 것으로 물리적인 하드웨어를 가상화하여, 하나의 물리적 하드웨어 상에서 여러 컴퓨터가 구동되는 것처럼 에뮬레이션 하는 것을 칭하는 용어이다. - 에뮬레이션(Emulation)이란 한 컴퓨터가 다른 컴퓨터처럼 .. 2023. 5. 3.
[NestJS] Entity vs DTO vs VO Entity vs DTO vs VO 정리 및 차이점 정리 Entity(ORM) 1. Entity는 실제 DB 테이블과 매핑되는 핵심 클래스이다. 2. 이를 기준으로 테이블이 생성되고 스키마가 변경된다. 3. 따라서, 절대로 Entity를 요청이나 응답값을 전달하는 클래스로 사용해서는 안된다. 4. Entity는 id로 구분된다. 그리고 비즈니스 로직을 포함할 수 있다. 5. Entity는 DTO처럼 setter를 가지는 경우 가변 객체로 활용할 수 있다. DTO(Data Transfer Object) 1. 데이터 유효성 체크, 데이터를 전달하기 위한 객체이다. 2. 계층간 데이터를 주고 받을 때, 데이터를 담아서 전달하는 바구니로 여러 레이어 사이에서 DTO를 사용할 수 있지만, 주로 View와 Cont.. 2023. 3. 25.
[js] 동기적(synchronous)? 비동기적(Asynchronous)? JavaScript에서 동기적 / 비동기적의 차이 및 예제, 비동기적 실행 방식 등 자바스크립트(Javascript)는 동기적이다. 호이스팅(hoisting) 후 코드 블록을 순서대로 실행한다. 호이스팅이란? 2023.02.04 - [개발 용어 정리] - [js] hoisting(호이스팅) [js] hoisting(호이스팅) javascript_호이스팅(hoisting) 이란? = 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것이다. (var, 함수의 경우가 있다) 변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는 kfdd6630.tistory.com 동기적(Synchronous)이란? 1. 어떤 작업을 요청했을 때 그 작업이 종료되고 다음 작업을 수행하는 방식이다. 2. 프로.. 2023. 3. 21.
반응형