분류 전체보기

    [JS] 모던 자바스크립트 Deep Dive - 06. 데이터 타입

    데이터 타입 (Data Type) 값의 종류 (자료형) 자바스크립트의 모든 값은 데이터 타입을 갖는다. 자바스크립트 (ES6)는 7개의 데이터타입을 제공하는데, 이는 원시 타입(primitive type)과 객체 타입(object/reference type)으로 분류할 수 있다. 숫자 타입 (Number) C나 java의 경우, 정수와 실수를 구분해서 int, long, float, double 등과 같은 다양한 숫자 타입을 제공한다. 자바스크립트는 모든 수를 실수로 처리하며, 정수를 표현하기 위한 데이터 타입이 별도로 존재하지 않는다. ECMAScript 사양에 따르면 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다. 모든 수를 실수로 처리하기 때문에 정수로 표시되는 수끼리 나누더라도 실수..

    [JS] 모던 자바스크립트 Deep Dive - 05. 표현식과 문

    값 (Value) 표현식(expression)이 평가(evaluate)되어 생성된 결과 평가: 식을 해석해서 값을 생성하거나 참조하는 것 모든 값은 데이터 타입을 가지며 메모리에 비트의 나열(2진수)로 저장된다. 데이터 타입에 관련된 설명은 다음 글에서 살펴볼 수 있다. https://billyboo.tistory.com/15 // 변수에는 10 + 20이 평가되어 생성된 숫자 값 30이 할당된다. var sum = 10 + 20; 값은 위의 코드처럼 식으로 생성할 수도 있지만 가장 기본적인 방법은 리터럴을 사용하는 것이다. 리터럴 (Literal) 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법(notation) // 아래 숫자 3은 단순한 아라비아 숫자가 아니라 "숫자 리..

    [JS] 모던 자바스크립트 Deep Dive - 04. 변수

    변수 (Variable) 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 프로그래밍 언어에서 값을 저장하고 참조하는 메커니즘 메모리 공간에 저장된 값을 다시 읽어 들여 재사용할 수 있도록 값이 저장된 메모리 공간에 상징적인 이름을 붙인 것 ✨ 변수명: 메모리 공간에 저장된 값을 식별할 수 있는 고유한 이름 ✨ 변수값: 변수에 저장된 값 ✨ 할당: 변수에 값을 저장하는 것 (a.k.a 대입, 저장) ✨ 참조: 변수에 저장된 값을 읽어 들이는 것 식별자 (Identifier) 어떤 값을 구별해서 식별할 수 있는 고유한 이름 식별자는 값이 아닌 메모리 주소를 기억한다. 즉, 메모리 주소에 붙인 이름이다. 변수, 함수, 클래스 등의 이름은 모두 식별자이다. 메..

    [C] 정적변수란? - 지역변수, 전역변수 비교

    A good start would be to know what a static variable is. C언어에서 사용되는 "정적변수(static variable)" 개념에 대해 알아보자. // static 자료형 변수명; static char*save; 위와 같은 형태로 자료형 앞에 static을 붙여 사용하는 정적변수는 다음과 같은 사전적 정의를 가진다. 정적 변수(靜的變數, static variable)는 정적으로 할당되는 변수이며, 프로그램 실행 전반에 걸쳐 변수의 수명이 유지된다. 즉, 프로그램이 종료되기 전까지 변수가 메모리에 남아있는다는 뜻인데 조금 더 자세하게 이해하기 위해 메모리 구조를 살펴보았다. 지금까지의 과제를 진행할 때 가장 자주 사용했던 지역변수는 메모리 구조에서 Stack 영역에..

    [C] printf() 구현하기 - 가변 인수 함수란?

    printf() 함수 구현 중에 마주친 가변 인수의 개념. 대충 "바뀔 수 있는 인수"라는 뜻인 것 같은데 언제 어디에서 사용되는 개념인지 알아보자. 가변 인수 (Variable Argument) 가변 인수는 미리 정해져 있지 않은 인수를 의미한다. 즉, 인수의 개수와 자료형이 따로 정해져 있지 않은 인수라는 뜻이다. 가변 인수 함수란 이러한 가변 인수를 다루는 함수이다. 이렇게 풀어쓰니 잘 와닿지 않는 것 같지만 사실 나는 이미 가변 인수 함수를 사용하고 있었다. 바로 printf() 함수가 가변 인수를 가지는 함수의 대표적인 예시이다. 먼저 아래는 오리지널 printf() 함수의 프로토타입이다. intprintf(const char *format, ...); 내가 구현해야 하는 ft_printf() ..

    [C] printf() 함수란?

    ft_printf()를 구현하기 전에 C언어의 표준 입출력 함수 printf() 함수를 알아보자. C를 배우고 난 뒤로 가장 많이 사용한 함수일텐데 함수의 서식이나 원리를 따로 공부하지는 않았다. 막연하게 출력하는 함수라고만 알고 있었기 때문에 누군가 "printf() 함수가 뭔데?" 라고 물어보면 한마디로 설명할 수가 없어서 리눅스에 printf()에 대해서 물어봤다. man printf 정리하자면 printf()는 여러 데이터를 다양한 형식에 맞추어 출력하는 함수이다. 매뉴얼의 시놉시스를 보면 함수를 아래와 같이 표현한다. printf format [arguments ... ] 위의 format 부분에는 단순 문자열(plain characters), 이스케이프 시퀀스(character escape s..

    [Python/chatGPT API] NPC 생성 함수 구현

    게임은 놀이 문화의 일종으로 "재미"라는 공통된 목적성을 가진다. 우리는 플레이어가 쉽게 몰입할 수 있는 게임이 재미있고 좋은 게임이라고 생각했고, 몰입을 위한 장치로 NPC를 활용하면 좋은 게임을 만들 수 있을 것이라고 판단했다. 게임 속 NPC는 플레이어 캐릭터와 상호작용하며 게임의 전체적인 분위기를 좌우한다. 상호작용 과정을 통해 NPC는 사용자의 몰입도를 높이고 스크립트의 세계관을 더욱 공고히 다지는 역할을 한다. 이러한 NPC의 역할을 극대화하기 위해서 스토리에 잘 녹아들면서, 동시에 실제로 존재하는 인물처럼 자연스러운 대화가 가능한 캐릭터를 구현하고자 했는데 우리는 그 방법으로 플레이어 캐릭터와 NPC 사이의 상호작용에 대한 자유도를 높이고 플레이어 캐릭터와의 대화 내용을 NPC가 기억하도록 ..

    [기획] Inkspire : NLP와 생성형 AI 기술을 사용한 텍스트 RPG

    서문 컴퓨터공학전공에 진입하고 열심히 커리큘럼을 쫓아 이런저런 과제를 청산하다 정신을 차려보니 어느덧 3학년 2학기를 수강하고 있는 빌리. 입학하고 전공을 선택하던 게 꼭 엊그제 같은데 벌써 졸업 프로젝트를 시작하게 되었다. (시간이 정말 야속하게 빠르다... 내가...3학년...?) 어차피 피할 수 없는 졸업 프로젝트라면 남들 다 하는 거 말고 개발자인 내가 흥미롭게 진행할 수 있는 프로젝트를 하고 싶었다. 동시에 최근 인공지능 분야를 뜨겁게 달군 GPT 기술에 대해서도 공부할 수 있는 프로젝트면 더할 나위 없이 좋을 것 같다고 생각했다. 그리하여 인터랙티브 콘텐츠를 주제로 힘차게 닻을 올린 스타트06 너도 멸종되지 않게 조심해 팀. 학교 졸프 주제로 게임 분야를 고른 사례가 많지 않아서 주제 선정부터..

    [백준 #1463] 1로 만들기 - C

    #include int is_min(int a, int b) { if (a

    [백준 #2747] 피보나치 수 - C

    사실 피보나치 수열과 관련된 문제는 지난 피신 때 재귀를 사용해서 푼 적이 있다. 피보나치 수열은 모든 항이 앞선 두 항의 합으로 이루어진 수열이기 때문에 일반화가 쉬워서 재귀를 사용하면 깔끔하고 짧은 코드를 짤 수 있을 것이라고 생각했다. #include int fib(int n) { if (n < 0) return (-1); if (n == 0) return (0); if (n == 1 || n == 2) return (1); return (fib(n - 2) + fib(n - 1)); } int main(void) { int n = 0; int result; scanf("%d", &n); result = fib(n); printf("%d", result); } 그래서 위와 같이 코드를 작성해서 제출..