전체 글

배우고 성찰한 것을 기록하는 블로그입니다.
Javascript

변수(Variables)의 원시타입과 객체타입의 메모리 할당

변수(Variables)란 자료를 저장할 수 있는 공간이라고 정의할 수 있다. 즉 변수란 메모리의 기억장소이다. 프로그램은 인풋받은 데이터를 처리해야 하는데 이 때 데이터들을 임시로 보관할 수 있어야 프로세스를 정상적으로 실행할 수 있다. 이를 위해 변수를 선언한다. 이 때, 변수는 원시타입(Primitive)과 객체타입(Object)으로 나뉜다. 원시타입(Primitive) 객체타입(Object) 숫자형(number) 객체(object) 문자열(string) 함수(function) 불린(boolean) 빈 값(null, undefined) symbol 두 타입이 다른 결정적인 요소는 메모리의 사용에 있다. 원시타입 변수 선언 및 데이터 할당시 데이터의 할당은 해당 메모리에 직접적으로 일어난다. 객체타입..

Javascript

(함수) 이름짓기

함수는 어떤 동작을 수행하기 위해 코드를 모아놓은 것이다. 따라서 함수의 이름은 대개 동사이다. 함수 이름은 가능한 한 간결하고 명확하게 해야한다. 코드를 읽은 사람은 함수 이름만 보고도 함수가 어떤 기능을 하는지 힌트를 얻을 수 있어야 한다. 함수가 어떤 동작을 하는지 축약해서 설명해주는 동사를 접두어로 붙여 함수 이름을 만드는게 관습이다. 다만 팀 내에서 그 뜻이 반드시 합의된 접두어만 사용해야 한다. show - 대개 무언가를 보여주는 함수 get - 값을 반환함 calc - 무언가를 계산함 create - 무언가를 생성함 check - 무언가를 확인하고 불린값을 반환함 showMessage() //메세지를 보여줌. getAge() // 나이를 나타내는 값을 얻고 그 값을 반환함. calcSum()..

Javascript

(함수) 기본값, 반환값

기본값 매개변수에 값을 전달하지 않으면 그 값은 undefined가 된다. function showMessage(from, text) { alert( from + ': ' + text ); } showMessage("Ann"); 매개변수에 값을 전달하지 않아도 그 값이 undefined가 되지 않게 하려면 기본값(default value)을 설정해주면 된다. 매개변수 오른쪽에 =을 붙이고 undefined 대신 설정하고자 하는 기본 값을 써준다. function showMessage(from, text = 'no text given') { alert( from + ': ' + text ); } showMessage("Ann"); 매개변수 기본값을 설정할 수 있는 또 다른 방법 가끔은 함수 선언부에서 매개..

Javascript

(함수) 선언, 지역변수, 외부변수, 전역변수, 매개변수

함수 선언(function declaration) function showMessage() { alert('함수 선언!'); } showMessage(); // 선언된 함수를 호출 showMessage(); // 선언된 함수를 호출 함수 선언은 함수 키워드(function) + 함수 이름 + 매개변수 괄호를 입력함으로써 할 수 있음. 위에서는 showMessage를 두 번 호출했으므로 얼럿 창이 2번 뜨게 됨. (위에서 볼 수 있듯, 함수의 주요 용도 중 하나는 중복코드 피하기) 지역 변수(local variable) function showMessage() { let message = '안녕하세요!'; alert( message ); showMessage(); // 호출됨. alert( message ..

Javascript

(while과 for 반복문) 소수(prime number) 출력하기

출처 : https://ko.javascript.info/while-for while과 for 반복문 ko.javascript.info 나의 답 소수를 구하는 로직을 알아야 하고 조건에 해당할 경우, 반복문을 어떻게 빠져나올지 알아야하는 문제였다. continue 레이블;

Javascript

(논리 연산자) 로그인 구현하기

공부중인 사이트 : https://ko.javascript.info/logical-operators 논리 연산자 ko.javascript.info 프롬프트(prompt) 대화상자를 이용해 간이 로그인 창을 구현해보세요. 사용자가 "Admin"를 입력하면 비밀번호를 물어보는 프롬프트 대화상자를 띄워주세요. 이때 아무런 입력도 하지 않거나 Esc를 누르면 "취소되었습니다."라는 메시지를 보여주세요. 틀린 비밀번호를 입력했다면 "인증에 실패하였습니다."라는 메시지를 보여주세요. 비밀번호 확인 절차는 다음과 같습니다. 맞는 비밀번호 "TheMaster"를 입력했다면 "환영합니다!"라는 메시지를 보여주세요. 틀린 비밀번호를 입력했다면 "인증에 실패하였습니다."라는 메시지를 보여주세요. 빈 문자열을 입력하거나 입력..

C, C++

C언어 코딩도장(2차원 배열을 포인터에 넣기)

1차원 배열은 단일 포인터에 넣을 수 있었다. 그렇다면 2차원 배열은 이중 포인터에 넣을 수 있을까? 컴파일을 하면 오류는 안나지만 아무 값도 안나온다. 2차원 배열을 포인터에 담으려면 다음과 같은 특별한 방법이 필요하다. 자료형(*포인터이름)[가로크기]; 즉, 포인터를 선언할 때 *와 포인터 이름을 괄호로 묵어준 뒤 []에 가로 크기를 지정한다. int (*numPtr)[4];​ 풀어서 설명하면 가로 크기가 4인 배열을 가리키는 포인터라는 뜻이다. int *numPtr[4]는 int형 포인터 4개를 담을 수 있는 배열이라는 뜻이다. 즉, 괄호가 있으면 배열을 가리키는 배열 포인터, 괄호가 없으면 포인터를 여러개 담는 포인터 배열이다. int num1, num2, num3, num4; int *numPt..

C, C++

C언어 코딩도장(2차원 배열 사용하기)

평면 구조의 2차원 배열에 대해 알아보자. 2차원 배열은 가로x세로 형태로 이루어져있으며, 행과 열 모두 0부터 시작한다. 2차원 배열을 선언하고 요소에 접근하기 2차원 배열은 [ ] (대괄호)를 두번 사용하여 선언하며 첫번째 가로에는 세로 크기, 두번째 대괄호에는 가로크기를 지정한다. 일반적으로 2차원 공간은 가로x세로로 표기하지만 배열로 만들때는 세로x가로로 표현한다. 자료형 배열이름[세로크기][가로크기]; 자료형 배열이름[세로크기][가로크기] = {{값, 값, 값}, {값, 값, 값}}; 아래는 세로크기가 3, 가로크기가 4인 int형 2차원 배열을 선언하는 방법이다. #include int main() { int numArr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9..

C, C++

C언어 코딩도장(배열: 가장 작은 수 출력하기)

더보기를 누르시면 정답이 나옵니다. 더보기 #define _CRT_SECURE_NO_WARNINGS #include int main() { int numArr[5]; int smallestNumber; scanf("%d %d %d %d %d", &numArr[0], &numArr[1], &numArr[2], &numArr[3], &numArr[4]); smallestNumber = numArr[0]; for (int i = 0; i numArr[i]) smallestNumber = numArr[i]; } printf("%d\n", smallestNumber); return 0; } 나중에 알고리즘 ..

C, C++

C언어 코딩도장(배열 사용하기) / 2진수 계산기

배열을 쓰는 이유 배열은 같은 자료형의 변수를 일렬로 늘어놓은 형태이며, 반복문과 결합하면 연속적이고 반복되는 값을 쉽게 처리할 수 있다. 배열을 선언하고 요소에 접근하기 배열은 변수 이름 뒤에 []를 붙인 뒤 크기를 설정한다. 그리고 배열을 선언하면서 값을 초기화할때는 {}를 사용한다. 자료형 배열이름[크기]; 자료형 배열이름[크기] = {값, 값, 값}; 여기서 배열 크기와 배열 인덱스가 다르다. 배열 인덱스가 0부터 시작하는 이유는 메모리 주소가 0부터 시작하기 때문이다. 배열의 이름도 포인터이므로 인덱스가 0부터 시작하면 요소 접근과 포인터 연산이 일치하게 된다. 하지만 배열의 인덱스는 절대적인 기준은 아니며 언어의 구현에 따라 달라질 수 있다. 배열을 0으로 초기화하기 배열의 모든 요소들을 간단..

2DC
2DC