일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- JWT
- OOP
- logger
- winston
- Interceptor
- 알고리즘
- Deep Dive
- nestjs
- REST API
- java
- MySQL
- node.js
- dfs
- typescript
- bean
- html
- 탐욕법
- TIL
- css
- 인접행렬
- 변수
- GraphQL
- 코딩테스트
- javascript
- queue
- 자료구조
- LifeCycle
- Spring
- 인접리스트
- Today
- Total
목록Language (51)
처음부터 차근차근
연산자는 쉬우니 코드를 통해 간단하게 넘어가겠습니다. 자바 연산자 우선순위 암기법 참고 : 연산자 우선순위를 외우려고 하지 마세요. 아무도 외우지 않습니다. 다만, 코드를 작성할 때 주의할 것이 있습니다. 1. 상식선에서 우선순위를 사용하자. 우리는 덧셈보다 곱센이 우선순위인 것을 기초수학을 통해 배웠습니다. 이런것을 통해 상식선에서 우선순위를 사용하는게 개발자들끼리 코드를 리뷰하는데도 도움이 되고, 알아보기도 수월합니다. 2. 애매하면 괄호()를 사용하자. 우선순위를 고민할 것 같으면, 괄호를 사용하세요. 괄호는 가장 첫번째 우선순위입니다. 괄호 () 단항 연산자 (예: `++` , `--` , `!` , `~` , `new` , `(type)` ) 산술 연산자( `*` , `/` , `%` 우선, 그..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vtTeq/btsB17uwVIy/fIkFBiM7KgQNlvTJRg1oY1/img.png)
변수 프로그래밍을 하다 보면 값을 저장해 둘 공간이 필요한데, 그 공간을 변수라고 합니다. 변수(variable)는 이름 그대로 변할 수 있다는 뜻을 의미하며, 공간에 들어간 값은 변할 수 있습니다. 변수 선언 저장공간, 즉 변수가 필요하다면 먼저 변수를 선언해야합니다. // 변수를 선언하는 방법 // 변수타입 변수이름; int a; 숫자 정수( `integer` )를 보관할 수 있는 이름이 `a` 라는 데이터 저장소를 만든다. 이것을 변수라 한다. 이렇게 변수를 만드는 것을 변수 선언이라 한다. 이제 변수 `a` 에는 숫자 정수를 보관할 수 있다. 정수 뿐만 아니라 문자, 소수와 같이 다양한 종류의 값을 저장할 수 있다. 변수를 선언하면, 메모리의 빈 공간에 '변수타입'에 알맞은 크기의 저장공간이 확보..
Java는 Class 기반 객체 지향 프로그래밍 언어이기 때문에, 모든 코드는 반드시 클래스 안에 존재해야 합니다. 그리고 서로 관련된 코드들을 구럽으로 나누어 별도의 클래스를 구성하고, 이 클래스들이 모여 하나의 Java Application을 이룹니다. Java application 만들어보기 Java가 어떻게 구동되는지 알기 위해서 코드를 직접 한번 작성해보았습니다. 먼저 intelliJ를 통해 Java project를 만들게 되면, 하나의 main.java 파일이 만들어지고, 그 안에는 이러한 코드가 들어있습니다. public class HelloJava { // 프로그램 시작 시점 public static void main(String[] args) { // 내부에 실행할 코드를 작성한다. Sy..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/899jE/btsBXKfTujW/RTwsVETrKE8SFeC6XBzR81/img.png)
JVM(Java virtual machine) 간단히 직역하면 자바를 실행하기 위한 가상 기계라고 할 수 있습니다. 자바로 작성된 애플리케이션은 모두 이 JVM에서만 실행되기 때문에 JVM은 필수적입니다. Java는 OS에 종속적이지 않다는 특징을 가지고 있는데, 이는 JVM을 통해서 가능합니다. Java의 소스코드는 CPU가 인식하지 못하므로 기계어로 컴파일 해줘야 합니다. 하지만 Java는 JVM이라는 가상 머신을 거쳐서 OS에 도달하기 때문에 OS가 인식할 수 있는 기계어로 바로 컴파일 되는게 아니라 JVM이 인식할 수 있는 Java bytecode(*.class)로 변환됩니다. 이렇게 변환된 bytecode는 기계어가 아니기 때문에 바로 OS에서 실행되지 않습니다. 대신 JVM이 OS가 bytec..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/drM5JV/btsBSaGsD7z/f25sjF4DhTCwIT4OIuNLsK/img.png)
Java란? 자바는 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다. 1991년 Green Project라는 이름으로 시작해 1995년에 발표되었습니다. 처음에는 가전제품 내에 탑재해 동작하는 프로그램을 개발하기 위해 C++을 확장해서 사용하려 했지만, 그들의 목적을 이루기에는 부족했습니다. 그래서 C++의 장점을 도입하고 단점을 보완한 새로운 언어를 개발했습니다. 이 프로젝트 초기에는 가전제품이나 PDA와 같은 소형기기에 사용될 목적이였으나, 여러 종류의 운영체제를 사용하는 컴퓨터들이 통신하는 인터넷이 등장하자 운영체제에 독립적인 자바가 적합해졌으며, 현재는 웹 애플리케이션 분야에 가장 많이 사용되는 언어 중 하나입니다. Java의 특징 1. 운영체제에 독립..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/XJLht/btsAcQ9PapK/bEK9qgI87kuqTl5QipeT31/img.png)
Prototype의 사전적 의미 prototype : 무언가 제품을 만드는 과정에서 시험용으로 미리 만들어보는 물건을 의미. ※ 시제품이나, Test를 진행하기 위한 Prototype 제작 등 Javascript에서 Prototype 의미 자바스크립트는 프로토타입 기반 언어이다. 프로토타입 기반 언어에서는 어떤 객체를 원형으로 삼고 이를 복제(참조)함으로써 상속과 비슷한 효과를 얻는다. ES5까지 자바스크립트는 Class라는 개념이 없었다. 기본적으로 프로토타입 언어이기 때문에 어떠한 Object를 원형(시제품)으로 삼고 이를 복제함으로써 Class와 비슷한 효과를 얻었다. 먼저 예제와 도식을 보자. var instance = new Constructor(); 어떤 생성자 함수(Constructor)를 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tTRZw/btszcRWDH4a/vn8KGmIKTukPAqADbt8DHK/img.png)
1. 숫자 타입 Javascript는 독특하게 하나의 숫자 타입만 존재한다. 정수, 실수, 2진수, 8진수, 16진수 리터럴은 모두 메모리에 배정밀도 64비트 부동소수점 형식으로 2진수로 저장된다. Javascript는 2진수, 8진수, 16진수를 표현하기 위한 데이터 타입을 제공하지 않기 때문에 이들 값을 참조하면 모두 10진수로 해석된다. var integer = 10; // 정수 var double = 10.12; // 실수 var negative = -20; // 음의 정수 var binary = 0b01000001; // 2진수, 65 var octal = 0o101; // 8진수, 65 var hex = 0x41; // 16진수, 65 console.log(binary === octal); /..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dO78i9/btszdhAUjsn/i286kQOjWcKPeyMrJLmND0/img.png)
1. 값 값(value) : 식(표현식)이 평되어 생성된 결과를 말한다. // 변수에는 10 + 20이 평가되어 생성된 숫자 값 30이 할당된다. var sum = 10 + 20; 모든 값은 데이터 타입을 가지며, 메모리에 bit의 나열로 저장된다. 변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름. 따라서, 변수에 할당되는 것은 값이다. 2. 리터럴 리터럴 : 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법(notation)을 말한다. 위 그림의 3은 단순한 아라비아 숫자가 아니라 숫자 리터럴이다. 사람이 이해할 수 있는 아라비아 숫자를 사용해 숫자 리터럴 3을 코드에 기술하면, 자바스크립트 엔진은 이를 평가해 숫자..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b2DBqf/btszfJXK3C9/Y1s2lb8EuiLufpJr9cY5JK/img.png)
1. 변수는 무엇인가? 왜 필요한가?? 애플리케이션은 데이터를 입력(input)받아 처리하고, 그 결과를 출력(output)하는 것이 전부다. 그렇다면 변수란?? 프로그래밍 언어에서 데이터를 관리하기 위한 핵심 개념 변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. → 간단히 말하자면, 변수는 값의 위치를 가리키는 상징적인 이름 변수 이름(변수명, 식별자) : 메모리 공간에 저장된 값을 식별할 수 있는 고유한 이름 변수값 : 변수에 저장된 값 할당(assignment 대입, 저장) : 변수에 값을 저장하는 것 2. 식별자 식별자(변수 이름) : 어떤 값을 구별해서 식별할 수 있는 고유한 이름 값은 메모리 공간에 저장 → 식별자는 메모리..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bvtAXr/btsy4iAeAS0/F1tlylc4hU92N4MxbG5esK/img.png)
자바스크립트 동작 구조 먼저 JS의 전체적인 동작 구조를 살펴보자. 자바스크립트를 실행하기 위해서는 JS 엔진이 필요하며, 대표적으로는 Chrome의 V8엔진이 있다. 아래 그림은 자바스크립트를 실행할 수 있게 해 주는 V8 엔진을 간략하게 표현한 그림이다. 자바스크립트 엔진 자체는 싱글 스레드로 구성되어 있으며, Memory Heap과 Call Stack으로 구성되어 있다. Memory Heap : 메모리 할당이 일어나는 장소(Ex 선언한 변수, 함수 등이 담겨져 있다) Call Stack : 코드 실행에 따라 스택이 하나씩 쌓이는 장소 JS는 콜 스텍을 통해 명령문을 실행하는데, 하나의 스레드에서 하나의 콜 스텍으로 모든 명령을 순차적으로 실행하기 때문에 싱글 스레드 언어라고 볼 수 있다. 즉, 한 ..