
배열이란? 변수는 하나의 값만 저장할 수 있다. 따라서 저장해야 할 값의 수가 많아지면 그 만큼 많은 변수가 필요하다. 따라서 많은 양의 값을 다루는 좀 더 효율적인 방법이 필요하다. 이것이 배열이다. 배열의 특징 1. 배열은 같은 타입의 값만 관리한다. 2. 배열의 길이는 늘리거나 줄일 수 없다. 배열의 변수 선언 배열을 사용하기 위해 우선 변수를 선언해야한다. //타입[] 변수; int[] intArray; double[] doubleArray; String[] strArray; 타입[] 변수 = null; 타입은 벼열에 저장될 값의 타입을 말한다. 배열 변수는 참조변수이다. 따라서 배열도 객체이므로 힙영역에 생성되고, 배열 변수는 힙 영역의 배열 주소를 저장한다. 참조할 배열이 없다면 배열 변수도 ..

자바의 데이터 타입은 기본타입과 참조타입 두 종류로 나뉜다. 기본타입은 다시 정수타입(byte, char, short, int, logn) 실수타입(float, double) 논리타입(boolean) 으로 나뉜다. 참조타입에는 배열, 열거타입, 클래스, 인터페이스가 있다. 참조 타입 참조타입이란 객체의 번지(메모리의 위치)를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입이 있다. 객체란? 데이터와 메소드(실행 블록을 가지고 있으면서 호출에 의해서 실행이 되는 프로그래밍 요소)로 구성된 덩어리라고 생각하면 된다. 기본 타입과 참조 타입의 차이점 기본타입으로 선언된 변수와 참조 타입으로 선언된 변수의 차이점은 저장되는 값이다. 변수란 ? 하나의 값을 저장하는 메모리 번지를 참조하는 이름 변수의 직..

GraphQL이 필요한 경우 1. 프론트엔드와 백엔드가 주고받을 데이터를 엄격하게 정의하고 싶을 경우 2. 데이터마다 서로다른 URL을 만들 경우에 지쳤을 경우 3. 필요한 데이터만 알뜰하게 주고 받고 싶을 경우 실습환경 https://bit.ly/graphql-example Fork를 누르면 코드를 수정할 수 있다. 상단에 open int New tab 눌르고 개발자 도구에 network를 보면 graphql이라는 주소로 서버와 통신한 내역을 볼 수 있다. 서버쪽으로 던져준 query를 볼 수 있는데 저것이 graphql의 문법이다. 서버는 던져준 코드를 인식해서 응답을 해주는데 응답한 데이터는 다음과 같다. 즉, 이러한 결과값으로 받은 데이터를 가지고 UI를 만들어 주고 있는 애플리케이션이다. 스키마..

도커란? 우리는 웹개발을 할 때 웹서버나 데이터베이스를 설치해야한다. 하지만 이 과정은 매우 복잡하고 까다롭다. 누군가가 운영체제위에 웹 서버나 데이터베이스를 설치한 다음 그걸 우리에게 준다면 얼마나 좋을까? 이때 운영체제가 설치된 컴퓨터를 주인이라고 하고 이를 host 라고 한다. host에서 실행되는 격리된 각각의 실행환경을 container이라고 한다. 한대의 컴퓨터안에 격리된 환경에서 각각의 앱이 실행된다. 각각의 컨테이너에는 앱을 실행하는데 필요한 라이브러리와 실행파일들만 포함돼 있다. 리눅스 운영체제에는 이런 앱 실행방법이 내장되어 있다. 이를 컨테이너 기술이라고 한다. 컨테이너기술을 이용하여 앱 실행을 쉽게 해주는 소프트웨어가 여러개 있는데 그중에서 제일 잘 나가는것이 바로 도커이다. 도커와..
우리가 기본적으로 알 고 있는 switch문은 이러하다. java 12 이전 String time; switch (weekday) { case MONDAY: case FRIDAY: time = "10:00-18:00"; break; case TUESDAY: case THURSDAY: time = "10:00-14:00"; break; default: time = "휴일"; } java 12 이후부터는 switch문에서 Expresstion(표현식)을 사용할 수 있다. 위와 같은 switch문을 다음과 같이 변경할 수 있게 되었다. brack문을 없애고, 화살표와 중괄호를 사용하여 가독성이 좋아졌다. 중괄호 안에 실행문이 하나만 있을 경우에는 중괄호를 생략할 수 있다. java 12 이후 String ti..
비교 연산자 피연산자의 타입이 다를 경우에는 비교 연산을 수행하기 전에 타입을 일치시킨다. 'A' == 65; // true ,1번 3 == 3.0; // true, 2번 0.1f == 0.1; // false, 3번 0.1f == (float)0.1; // true, 4번 1. 'A' (하나의 문자는 정수타입) 는 int 타입으로 변환되면서 65가 된 다음 65==65 이므로 true가 된다. 2. 3은 dobule 타입인 3.0으로 변환하여 3.0==3.0 이므로 true가 된다. 3. 0.1f, 부동소수점 방식을 사용하는 실수타입은 0.1을 정확하게 표현할 수 없을 뿐 아니라 float 타입과 double 타입의 정밀도 차이로 false가 나온다. 따라서 이를 해결하기 위해 4번과 같은 방법으로 강..

부호 증감 연산 (++, --) - 연산자는 변수값의 부호를 변경할 때 자주 사용된다. 하지만 주의할 점이 있다. 아래와 같은 결과 컴파일 에러가 발생한다. 이유는 정수타입( int , byte , short) 연산의 결과는 int 타입이다. byte b = 100; byte result = -b; //컴파일 에러 발생 연산자의 증감연산자의 위치에 따라 결과가 달라진다. 증감 연산자가 변수 앞에 있으면 우선 변수를 1증가또는 1 감소시킨 후에 다른 연산을 행한다. 증감 연산자가 변수 뒤에 있으면 모든 연산을 끝낸 뒤에 변수를 1증가또는 1 감소시킨다. int x = 1; int y = 1; int result1 = ++x + 10; //x를 1 증가, int result = 2 + 10 itn resul..

패키지, 클래스 ,메소드 선언 java 소스 파일을 보면 공통으로 나오는 부분이 있다. 바로 패키지 선언부, 클래스 선언부, 메소드 선언부가 있다. package ch01.sec09; //패키지 선언 public class Hello { //클래스 선언, 소스 파일 명 public static void main(String[] args){ //메소드 명 , main메소드 선언 System.out.println("Hello World"); } } 변수 선언 프로그램을 실행하면서 잠시 생성되었다가 사라지는 데이터가 있다. 이러한 데이터들을 저장을 해야하는데 그럼 이 데이터 들은 어디에 저장될까? 정답은 컴퓨터의 메모리(RAM) 이다. 변수는 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름이다. 변수를..