분류 전체보기

카테고리 없음

[11주차 - DAY2] 타입스트립트 데이터 타입

타입스크립트자바스크립트에 데이터 타입을 부여한 프로그래밍 언어이다.타입스크립트를 컴파일하면 자바스크립트 코드가 출력된다. 런타임에서는 이렇게 출력된 자바스크립트 코드를 구동시키게 된다.js 기반보다 버그를 줄일 수 있고, 유지보수가 쉬우며, 높은 퀄리티의 코드를 생산할 수 있다.  환경 세팅타입스크립트 설치터미널에서 아래의 명령어를 입력하여 타입스크립트를 설치한다.npm i -g typescript 컴파일ts 파일을 js파일로 컴파일하는 명령어는 다음과 같다.tsc 파일명다음과 같은 오류가 발생할 수 있다.tsc : 이 시스템에서 스크립트를 실행할 수 없으므로 ...그러면 vscode를 관리자 권한으로 실행하고 터미널에 다음과 같은 명령어를 실행하고 다시 컴파일하면 정상적으로 동작한다.Set-Execut..

데브코스

[10주차 - DAY5] 클래스

클래스구조체와 비슷하며, 멤버 변수와 멤버 함수로 구성된 사용자 정의 데이터 타입이다.사용자가 새로 정의한 데이터 타입이기 때문에 클래스를 추상적인 데이터 타입이라고 한다. 클래스는 아래와 같은 형태를 가진다.class 클래스 이름{ 접근 지정자 클래스 이름() { ... } // 생성자 접근 지정자 ~클래스 이름() { ... } // 소멸자 접근 지정자 데이터형 멤버 변수(필드); // 변수 선언 접근 지정자 데이터형 메서드(){ ... }; // 메서드 선언} 접근 지정자접근 지정자설명public누구나 접근 가능protected상속 관계에서 상속 받은 자식 클래스에서 접근 가능,그 외에는 접근 불가private그 클래스 내부에서만 접근 가능, 외부에서는 접근 불가 예시Dog라는 클래스를 선언하고, ..

데브코스

[10주차 - DAY4] 사용자 정의 자료형, 동적 할당, 객체 지향

함수 포인터함수도 변수에 담아서 사용할 수 있다.실행 시(런타임)에 어떤 함수를 가리키는지 결정되기 때문에 동적 바인딩 된다. 또한, 함수 포인터는 callback 함수를 구현할 수 있게 해 준다. 아래 코드의 main 함수에서 pFunc가 함수 포인터이며, add 함수를 pFunc라는 포인터 변수에 담아서 사용하고 있다.int add(int a, int b) { return a + b;}int main(void) { int a = 10, b = 20, result = 0; int (*pFunc)(int a, int b); // 함수 포인터 선언 pFunc = add; // 동적 바인딩 result = pFunc(a, b); printf("a + b = %d", result); return 0;}  구조..

코딩테스트

[JS] 마법의 엘리베이터

난이도: Lv. 2정답률: 49%문제: https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  알고리즘현재 층의 일의 자리 숫자가 5보다 크면 일의 자리 숫자가 0이 되도록 층을 올라간다. 현재 층의 십의 자리 바뀔 것이므로 현재 층에서 10으로 정수 나눗셈을 하고, 1을 더한다. 이번에 사용한 마법의 돌은 (10 - 현재 층의 일의 자리 숫자)이다.현재 층의 일의 자리 숫자가 5보다 작으면 내려간다. 현재 층을 10으로 정수 나눗셈하고, 사용한 마법..

데브코스

[10주차 - DAY2] 포인터

반복문(break & continue)break반복문을 빠져나가게 해주는 명령어다. break를 만나는 순간 반복문을 벗어난다.while (true) { ... if (a > 10) break; printf("a: %d\n", a); a++; ...} continue반복문의 맨 위로 돌아가라는 명령어이다. continue를 만나면 continue 아래에 있는 코드는 실행되지 않는다. 아래의 코드는 continue를 사용하여 짝수단만 출력하는 프로그램이다.홀수단일 경우 continue를 사용하여 구구단이 출력되지 않도록 구현했다.#include int main(void) { for (int i = 2; i   함수함수는 나누어서 처리하기 위한 목적을 가진다.코드의 가독성이 좋아지고, 코드 유지 보..

데브코스

[10주차 - DAY1] C언어 연산자, 분기문, 반복문

연산자연산자는 정적인 데이터들을 유기적으로 행동하게 하여 새로운 가치를 창출해 낸다.산술 연산자사칙 연산을 다루는 연산자이다.종류설명+왼쪽과 오른 쪽에 있는 값을 더한다.-왼쪽 값에서 오른쪽 값을 뺀다.*왼쪽 값과 오른쪽 값을 곱한다./왼쪽 값을 오른쪽 값으로 나눈다.%왼쪽 값을 오른쪽 값으로 나눈 나머지를 구한다. 대입 연산자오른쪽에 있는 값을 왼쪽에 대입하는 역할을 하며, 산술 연산자와 혼용해서 사용하기도 한다.종류설명=오른쪽 값을 왼쪽에 대입한다.+=왼쪽 값을 오른쪽 값과 더해서 다시 왼쪽 값에 대입한다.-=왼쪽 값에서 오른쪽 값을 빼고 다시 왼쪽 값에 대입한다.*=왼쪽 값에 오른쪽 값을 곱하고 다시 왼쪽 값에 대입한다./=왼쪽 값을 오른쪽 값으로 나누고 다시 왼쪽 값에 대입한다. %=왼쪽 값을 오..

데브코스

[10주차 주간 발표] 동적 라우팅과 다익스트라 알고리즘

라우팅 방식정적 라우팅목적지까지의 경로(혹은 다음 라우터)를 직접 입력하는 방식이다.장점: 동적 라우팅에 비해 속도가 빠르고 안정적이다.단점: 네트워크 상황의 변화를 반영하지 못하고, 네트워크 규모가 커질수록 작업량이 많아진다.동적 라우팅네트워크 상황을 반영하여 스스로 경로를 계산하고 변경하는 방식이다.장점: 네트워크 상황의 변화를 반영한다.단점: 변화에 적응할 때까지 시간이 필요하다.일반적으로는 동적 라우팅이 바람직하지만, 연결된 이웃 라우터가 하나밖에 없는 경우에는 정적 라우팅이면 충분하다.  라우팅 알고리즘원으로 표시된 것을 노드, 노드와 노드 사이를 잇는 선을 링크라고 한다.Link state 계열각 노드가 네트워크 전체의 형상과 모든 링크 비용을 파악한 후 목적지까지의 최단 경로를 계산하는 방식..

데브코스

[9주차 - DAY5] 프로그래밍과 C언어

프로그래밍 언어코드를 해석하는 방식에는 두 가지가 있다. 컴파일러 언어코드 전체를 한 번에 해석하여 실행할 수 있는 파일로 변환한다. 코드를 해석하는 것을 컴파일이라고 하며, 컴파일러 언어는 컴파일 단계와 실행 단계로 분리되어 있다.장점실행할 때는 컴파일 없이 실행만 하면 되므로 코드 실행 속도가 빠르다.컴파일러 언어는 개발자가 메모리 관리와 CPU 사용 같은 HW 측면에서 더 많은 제어 권한을 가진다. 따라서 자원을 효율적으로 관리할 수 있다.단점코드에 변경 사항이 있을 때마다 빌드를 다시 해야 한다. 빌드는 소스코드를 이진코드로 변환하는 컴파일 과정과 실행 파일을 만드는 과정인 링크를 묶어 부르는 말이다.컴파일러 언어는 컴파일 시 지정된 플랫폼에 최적화되도록 만들어지기 때문에 플랫폼에 제약이 있다. ..

데브코스

[9주차 - DAY3] 코드 퀄리티 & 랜덤 데이터 API

response format 바꾸기SQL 실행 결과의 pub_date 컬럼명을 pubDate로 바꿔준다.delete 연산자는 객체에 있는 프로퍼티를 제거해 준다.results.map(function (result) { result.pubDate = result.pub_date; delete result.pub_date;})mdn을 보면 위와 같은 설명이 있다. map()을 사용할 때 반환 값을 사용하지 않을 거면 forEach()나 for...of 루프를 사용하라는 말이다. 그래서 아래와 같이 작성했다.results.forEach(result => { result.pubDate = result.pub_date; delete result.pub_date;}..

데브코스

[9주차 - DAY2] jwt 확인과 pagination

장바구니 조회 장바구니는 로그인이 필요한 기능이다. 따라서 jwt를 확인하고, 해당 사용자의 장바구니에 있는 도서들을 응답으로 보내준다. jwt를 확인하는 부분은 carts.js에 미들웨어로 추가하였다. validateToken 함수 function validateToken(req, res, next) { const authorization = ensureAuthorization(req); if (authorization instanceof jwt.TokenExpiredError) { return res.status(StatusCodes.UNAUTHORIZED).json({ message: '로그인 세션이 만료되었습니다. 다시 로그인 하세요.' }); } else if (authorization inst..

미안하다 강림이 좀 늦었다
'분류 전체보기' 카테고리의 글 목록 (8 Page)