일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- GDSC
- 모던자바스크립트
- 우선순위상속프로토콜
- 모던 자바스크립트
- 확인문제
- 부스트컨퍼런스
- js
- 변수
- 부스트캠프
- DB #데이터베이스
- 놀러와요_해커톤
- 우선순위역전
- 렌더 트리
- 회고
- CSSOM
- CRDT
- 부스트캠프웹모바일
- 상태관리
- 타입
- Java
- 그룹프로젝트
- OS
- 데이터독립성
- 운영체제
- 인프콘
- 멤버십
- GDSC_PKNU
- 브라우저 렌더링
- 부스트캠프7기
- javascript
- Today
- Total
목록Study (28)
dohun.log
아기 돼지 삼 형제가 있다. (서열: 첫째 > 둘째 > 셋째) 셋째 돼지가 배가 고파서 부엌으로 갔다. 프라이팬을 꺼내 요리를 시작한다. 그리고 첫째 돼지도 배가 고파 부엌으로 왔다. 첫째 돼지도 프라이팬을 사용하려고 하는데 프라이팬이라는 공유자원은 셋째 돼지가 이미 사용하고 있다. 첫째 돼지는 어쩔 수 없이 셋째 돼지가 프라이팬 사용이 끝날 때까지 기다려야 한다. 셋째 돼지는 다시 부엌으로 가 마저 요리를 한다. 이때 둘째 돼지도 배가 고파 부엌으로 왔다. 둘째 돼지는 냄비를 사용해서 국물 요리를 먹으려고 한다. 프라이팬은 사용하지 않아 셋째 돼지를 기다릴 필요가 없고, 셋째 돼지보다 서열도 높기 때문에 당당하게 셋째 돼지를 내쫓을 수 있다. 그래서 둘째 돼지는 셋째 돼지의 자리를 차지해 맛있는 요리를..
참조에 의한 전달 이전 글에서도 말했듯이 원시 값은 call by value이고, 객체 값은 call by reference이다. function changePersonName(person) { person.name = 'hodun'; } let person = { name: 'dohun', age: 22 }; console.log(person); // {name: 'dohun', age: 22} changePersonName(person); console.log(person); // {name: 'hodun', age: 22} changePersonName함수에 매개변수로 person을 전달했을 때 person은 충분히 변경 가능하다는 얘기이다. 이처럼 객체가 변경되면 그 객체를 참조하는 모든 이들에게..
1. 원시 값 변경 불가능한 값 원시 타입의 값은 변경 불가능한 값이다. (only 읽기 모드) 어? 그럼 내가 사용했던 변수는 뭐야...(예나, 선정이 딸이에요 "변수, 원시 딸이에요..") 다시 개념을 정리하면 변수는 메모리 공간에 저장된 값을 식별하는 "식별자"이고, 값은 메모리 공간에 저장된 "값"이다. 그럼 앞의 말은 다음과 같은 의미이다. 메모리 공간에 저장된 원시 타입의 값은 변경 불가능한 값이다. 메모리 공간에 저장된 값을 변경하지 않으면 된다! 그러면 변수의 재할당은 어떻게 가능한걸까? 이전에 값의 재할당에서도 봤듯이 새로운 메모리 공간에 재할당하려는 값을 저장하고 변수가 새로운 메모리 공간을 가리키게 하면 된다. 상수는 이러한 재할당이 금지된 변수이다. (const!!) 문자열과 불변성..
구분 데이터 타입 설명 원시 타입 숫자 타입 (Number Type) 숫자, 정수와 실수 구분없이 하나의 숫자 타입만 존재 문자열 타입 (String Type) 문자열 불리언 타입 (Boolean Type) 논리적 참(true)과 거짓(false) undefined 타입 값이 없다는 것을 의도적으로 명시할 때 사용하는 값 null 타입 값이 없다는 것을 의도적으로 명시할 때 사용하는 값 심벌 타입 (Symbol Type) ES6에서 추가된 7번째 타입 객체 타입 객체, 함수, 배열 등 6.1 숫자 타입 var integer = 10; // 정수 var double = 10.12; // 실수 var negative = -20; // 음의 정수 var binary = 0b01000001; // 2진수 var..
5.1 값 값은 표현식이 평가되어 생성된 결과를 말한다. 평가: 식을 해석해서 값을 생성하거나 참조하는 것 5.2 리터럴 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다. 리터럴 예시 비고 정수 리터럴 100 부동소수점 리터럴 10.5 2진수 리터럴 0b01000001 0b로 시작 8진수 리터럴 0o101 ES6에서 도임. 0o로 시작 16진수 리터럴 0x41 ES6에서 도입. 0x로 시작 문자열 리터럴 "Dohun" 불리언 리터럴 true, false 객체 리터럴 { name: 'Dohun', address: 'Busan' } 5.3 표현식 표현식은 값으로 평가될 수 있는 문이다. 즉, 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다. var ..
4.1 변수란 무엇인가? 왜 필요한가? 모든 애플리케이션은 데이터를 입력하고 출력하는 것이 전부다. 변수는 프로그래밍 언어에서 데이터를 관리하기 위한 핵심 개념이다. 사람은 계산과 기억을 모두 두뇌에서 하지만, 컴퓨터는 계산과 기억을 수행하는 부분이 다르다. (계산: CPU, 기억: 메모리) 10 + 20 10과 20은 메모리 상의 임의의 위치(메모리 주소)에 기억(저장)되고 CPU는 이 값을 읽어 들여 연산(+)을 수행한다. 연산 결과로 생성된 숫자 30도 메모리 상의 임의의 위치에 저장된다. 연산의 결과를 재사용하려면 30이 저장된 메모리 위치를 알아내서 메모리 공간에 직접 접근하는 것 외에는 방법이 없다. ⚠️ 메모리 주소를 통해 값에 직접 접근하는 것은 치명적 오류를 발생시킬 가능성이 매우 높음!..
배열 배열이란 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해 놓은 자료구조 다음과 같은 4명의 학생의 점수를 담은 score 배열이 있다고 하자. 인덱스 0 1 2 3 데이터 83 90 87 93 score 배열의 각 인덱스는 각 항목의 데이터를 읽거나, 저장하는데 사용되고 다음과 같이 배열 이름 옆에 대괄호 []에 기입된다. score[인덱스] 이렇게 성적을 배열로 만들면 평균값은 for문을 사용하여 쉽게 구할 수 있다. int sum = 0; for(int i = 0; i < 4; i++) { sum += score[i]; } int avg = sum / 4; ❓ 배열은 같은 타입의 데이터만 저장할 수 있다. → 다른 타입의 값을 저장하려고 하면 타입 불일치..
1.1 프로그래밍 언어란? ❓ 컴퓨터가 이해할 수 있는 언어 → 기계어 ❓ 기계어 → 0과 1로 이루어진 이진 코드 ❓ 고급언어(c++, java …) → 컴파일러 → 기계어 1.2 자바란? 자바의 특징 이식성이 높은 언어이다. ❓ 이식성 → 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것 자바 언어로 개발된 프로그램은 소스 파일을 다시 수정하지 않아도 자바 실행 환경이 설치되어 있는 모든 운영체제에서 실행 가능하다. 객체 지향 언어이다. ❓ OOP(객체 지향 프로그래밍) → 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법 자바는 100% 객체 지향 언어 → 캡슐화, 상속, 다형성 기능 완벽하게 지원 함수적 스타일 코딩을 지원한다. ❓ ..
4.1 코드 실행 흐름 제어 4.2 조건문 4.2.1 if문 if문 if문은 조건식의 결과에 따라 블록 실행 여부가 결정된다. if(조건식) { // 조건식이 true } // 조건식이 false 조건식이 true일 경우 if문 내부의 실행문을 실행하고, false일 경우 if문 내부의 실행문을 실행하지 않는다. int a = 1; if(a < 10) { System.out.println("a는 10보다 작아요."); } if-else문 if 문은 else 블록과 함께 사용되어 조건식의 결과에 따라 실행 블록을 선택한다. if(조건식) { // 조건식이 true } else { // 조건식이 false } 조건식이 true일 경우 if문 내부의 실행문을 실행하고, false일 경우 else문 내부의 실행..
3. 연산자 3.1 연산자와 연산식 연산(operations): 프로그램에서 데이터를 처리하여 결과를 산출하는 것 연잔자(operator): 연산에 사용되는 표시나 기호 피연산자(operand): 연산되는 데이터 연산식(expressions): 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것 // operand operator operand => 연산식 x + y 연산식은 반드시 하나의 값을 산출한다. 따라서 하나의 값이 올 수 있는 곳이면 어디든지 값 대신 연산식을 사용할 수 있다. int result = x + y; 3.2 연산의 방향과 우선순위 단항, 이항, 삼항 연산자 순으로 우선순위를 가진다. 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다. 단항과 대입 연산자를 제외한 모든 연..