전체 글 105

[42일차]타입스크립트: 언어 개념과 기본 설정.

1. 언어 개요 (타입스크립트란?)타입스크립트(TypeScript)는 Microsoft가 개발한 오픈소스 프로그래밍 언어이다. 이는 자바스크립트의 슈퍼셋(Superset)으로, 자바스크립트의 모든 기능을 포함하면서 정적 타입(Static Type) 문법을 추가한 것이 가장 큰 특징이다.역사 및 등장 배경: 초기의 웹과 달리 현대의 웹 애플리케이션은 규모가 매우 커지고 복잡해졌다. 순수 자바스크립트는 동적 타입 언어이므로, 코드가 실행되는 시점(런타임)에야 타입 오류를 발견할 수 있었다. 이러한 대규모 프로젝트의 안정성과 유지보수성을 높이기 위해 2012년 타입스크립트가 등장했다. 컴파일 단계에서 미리 오류를 잡아낼 뿐만 아니라, 코드 자동 완성(IntelliSense), 안전한 리팩토링 등 강력한 도구를..

Programmers 2025.11.10

[과제] Book Market 프로젝트 결과 보고서

1. 프로젝트 개요https://github.com/JHParrrk/book_market GitHub - JHParrrk/book_marketContribute to JHParrrk/book_market development by creating an account on GitHub.github.com Book Market은 사용자가 도서를 검색하고, 장바구니에 담아 주문하며, 리뷰를 작성하고 다른 사용자와 소통할 수 있는 기능을 갖춘 온라인 서점 플랫폼입니다. 이 프로젝트는 백엔드 시스템을 중심으로 견고한 데이터베이스 구조와 확장성을 고려한 아키텍처 설계를 목표로 진행되었습니다.주요 기능으로는 사용자 인증 및 권한 관리, 계층형 카테고리, 도서 관리, 장바구니, 주문 처리, 리뷰 및 좋아요 기능 등이 ..

Programmers 2025.11.06

[41일차]프로그래밍 패러다임과 객체 지향 개념의 TS에서의 활용

1. 함수 포인터 (Function Pointers)C/C++의 함수 포인터는 함수의 메모리 주소를 저장하여 호출하는 방식입니다. TypeScript(및 JavaScript)에는 직접적인 포인터 개념이 없지만, 함수를 일급 객체(First-class Citizen)로 취급하므로 유사한 기능을 구현할 수 있습니다.개념: 함수를 변수에 할당하거나, 다른 함수의 인자로 전달하거나, 함수의 반환 값으로 사용할 수 있습니다.TS에서의 사용: 함수 시그니처를 타입으로 정의하여 변수에 할당하거나 매개변수 타입을 지정합니다.// (a: number, b: number) => number 라는 타입 시그니처를 정의type MathOperation = (a: number, b: number) => number;// 이 타..

Programmers 2025.11.06

[40일차] C언어와 JavaScript의 메모리 관리 및 포인터

1. 포인터(Pointer)란 무엇인가? (C언어)컴퓨터의 메모리는 데이터가 저장되는 수많은 ‘번지수’로 구성되어 있습니다. 포인터란, 일반적인 데이터(값) 대신 이 메모리의 번지수(주소)를 값으로 저장하는 특별한 변수입니다.즉, 포인터는 데이터가 어디에 있는지를 가리키는 ‘지시자’ 역할을 합니다. 이를 통해 데이터에 직접 접근하는 대신, 데이터의 위치를 참조하여 간접적으로 값을 읽거나 수정할 수 있습니다.C언어에서 포인터를 다루기 위해 다음과 같은 핵심 연산자가 사용됩니다.주소 연산자 (&): 변수 앞에 붙여 해당 변수의 메모리 주소값을 가져옵니다.역참조 연산자 (*): 포인터 변수 앞에 붙여, 포인터가 가리키는 주소에 저장된 실제 데이터 값에 접근합니다.포인터 예시 코드#include int main..

Programmers 2025.11.05

[39일차]프로그래밍 기초 개념, 컴파일 언어, 메모리 구조, 변수와 상수

컴파일 언어와 인터프리터 언어프로그래밍 언어는 코드를 실행하는 방식에 따라 컴파일 언어와 인터프리터 언어로 나눌 수 있다. JavaScript(JS)와 같은 인터프리터 언어를 사용하는 개발자일지라도, 컴파일 언어의 동작 원리를 이해하는 것은 매우 중요하다. 특히, 현대 웹 개발에서 널리 사용되는 TypeScript(TS)가 컴파일(정확히는 트랜스파일) 방식을 채택하고 있기 때문이다.인터프리터(Interpreter) 언어인터프리터 언어는 소스 코드를 한 줄씩 읽어 내려가며 즉시 기계어로 번역하고 실행하는 방식이다. 대표적으로 JavaScript, Python이 여기에 속한다.장점: 별도의 컴파일 과정이 없어 개발 중 빠른 코드 수정과 테스트가 가능하며, 디버깅이 용이하다.단점: 런타임(실행 시점)에 매번 ..

Programmers 2025.11.04

[38일차]JavaScript 기본 개념 정리 2일차

1. 제어 흐름 (Flow Control)제어 흐름이란 코드의 실행 순서를 개발자가 의도적으로 제어하는 것이다. 이를 통해 프로그램은 특정 조건에 따라 다른 코드를 실행하거나, 특정 코드를 반복적으로 실행할 수 있다.표현식과 문 (Expression vs. Statement)표현식 (Expression): 값으로 평가될 수 있는 모든 식이다. 표현식은 하나의 값으로 귀결되므로, 변수에 할당되거나 다른 표현식의 일부가 될 수 있다.5 // 리터럴 표현식x + 10 // 연산자 표현식myFunction() // 함수 호출 표현식const name = "Park"; // 할당 자체도 하나의 표현식이다.문 (Statement): 프로그램을 구성하는 기본 ..

카테고리 없음 2025.11.03

[37일차]프론트엔드 커리큘럼의 시작, JS 기초

JavaScript 핵심 개념 리포트1. 브라우저와 개발자 도구브라우저의 역할브라우저는 단순히 웹 페이지를 보여주는 프로그램을 넘어, 그 자체가 하나의 거대한 API 요청 프로그램이다. 사용자가 주소창에 URL을 입력하고 엔터를 치는 순간, 브라우저는 해당 주소의 서버에 콘텐츠를 요청(Request)한다. 서버는 이 요청에 응답(Response)하여 데이터를 보내주는데, 브라우저가 다른 API 클라이언트(Postman 등)와 다른 가장 큰 특징은 주로 HTML 형식의 데이터를 리턴받아 사용자에게 시각적인 형태로 렌더링한다는 점이다. 이 과정에서 HTML은 문서의 뼈대를, CSS는 디자인을, JavaScript는 동적인 상호작용을 담당한다.개발자 도구(Developer Tools) 활용법console.lo..

Programmers 2025.11.02

[36일차]Book Market API 인증 모듈 및 주요 기능 분석

** 인증 로직 모듈화: 유틸과 미들웨어의 역할 분리**프로젝트의 인증 로직은 toker.utils.js와 authorize.middleware.js 두 파일로 명확하게 분리되어 있다. 이는 단일 책임 원칙(Single Responsibility Principle)에 따라 코드의 재사용성과 유지보수성을 높이기 위한 설계이다.** toker.utils.js: 토큰 생성의 책임 (도구의 역할)**역할: Access Token과 Refresh Token을 생성(Generation)하는 책임을 가진다.분리 이유:순수 함수: 토큰 생성 로직은 사용자 정보를 입력받아 JWT 문자열을 반환하는 순수 함수에 가깝다. 이는 HTTP 요청-응답 사이클(req, res, next)에 의존하지 않는다.재사용성: 로그인(log..

Programmers 2025.10.30

[과제]Express Book Market API: JWT 인증 기능 테스트 시나리오

시나리오 1: 정상적인 인증 흐름 (Happy Path)사용자가 회원가입 후 로그인하여 발급받은 accessToken으로 보호된 API에 성공적으로 접근하는 가장 기본적인 흐름입니다.실행 간단 흐름도클라이언트 → 서버 (회원가입): POST /users/register클라이언트 → 서버 (로그인): POST /users/login → accessToken, refreshToken 수신클라이언트 → 서버 (장바구니 추가): POST /carts (헤더에 accessToken 포함)미들웨어 (authenticateJWT): 토큰 검증 성공 → req.user에 사용자 정보 저장 후 next()Controller: req.user.id를 사용하여 장바구니 추가 로직 실행Service & Repository: ..

Programmers 2025.10.29

[35일차]Node.js 에러 핸들링: 기본부터 실전 프로젝트 적용까지

자바스크립트의 기본적인 에러 객체와 처리 방식(try-catch)부터, 실제 Express 프로젝트에서 JWT 인증 에러와 비즈니스 로직 에러를 어떻게 효과적으로 관리하는지에 대해 설명한다.1. 자바스크립트 에러의 기본에러 객체의 종류자바스크립트는 다양한 유형의 내장 에러 객체를 제공하여, 에러의 원인을 명확히 알려준다.Error(): 가장 일반적인 런타임 에러 객체이다. 개발자가 직접 에러를 생성할 때 주로 사용된다.SyntaxError(): 코드의 구문이 자바스크립트 문법에 맞지 않을 때 발생한다. (예: 괄호 불일치)ReferenceError(): 존재하지 않는 변수나 함수를 참조하려고 할 때 발생한다.TypeError(): 값이 예상된 타입이 아닐 때 발생한다. (예: null의 프로퍼티에 접근 ..

Programmers 2025.10.29