본문 바로가기

분류 전체보기255

[선택 과정] Java 기초 - 자바의 연산자들 (3) : 조건 연산자, 비트 연산자 조건 연산자 삼항 연산자 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨 if(조건문)을 간단히 표현할 때 사용할 수 있음 package ch13; import java.util.Scanner; public class ConditionTest { public static void main(String[] args) { int max; System.out.println("입력 받은 두 수 중 큰 수를 출력하세요.\\n"); Scanner scanner = new Scanner(System.in); System.out.println("입력1: "); int x = scanner.nextInt(); System.out.println("입력2: "); int y = s.. 2023. 6. 24.
[선택 과정] Java 기초 - 자바의 연산자들 (2) : 관계, 논리 연산자 관계 연산자 이항 연산자 연산의 결과가 true(참), false(거짓)으로 반환 됨, 비교연산자 라고도 함 조건문, 반복문의 조건식으로 많이 사용 됨 package ch12; public class RelationTest { public static void main(String[] args) { int num1 = 5; int num2 = 3; boolean value = (num1 > num2); System.out.println(value); //true System.out.println(num1 = num2); //true System.out.println(num1 0) && (num2 > 0); System.out.pr.. 2023. 6. 24.
[선택 과정] Java 기초 - 자바의 연산자들 (1) : 대입, 부호, 산술, 복합대입, 증감연산자 항과 연산자 항(operand) : 연산에 사용되는 값 연산자(operator) : 항을 이용하여 연산하는 기호 대입 연산자 (assignment operator) 변수에 다른 변수나 값을 대입하는 연산자 이항 연산자 중 우선 순위가 가장 낮은 연산자들 왼쪽 변수 = 오른쪽 변수(또는 식, 값) 부호 연산자 단항 연산자 변수의 부호를 유지 하거나(+) 바꿈(-) 실제 변수의 부호가 변하려면 대입 연산자를 사용해야 함 ex. num = -num; 산술 연산자 사칙 연산자 % 나머지 구하는 연산자, 숫자 n의 나머지 범위는 0 ~ n-1 복합 대입 연산자 대입 연산자와 다른 연산자가 함께 쓰임 증가, 감소 연산자 단항 연산자 변수의 값을 1 더하거나 1 뺄 때 사용 연산자가 항의 앞에 있는가 뒤에 있는가에 .. 2023. 6. 24.
[선택 과정] Java 기초 - 변하지 않는 상수와 리터럴, 변수의 형 변환 상수(constant) 선언하기 상수는 변하지 않는 수 원주를 3.14, 1년 12개월 등 final 예약어를 사용하여 선언 상수를 사용하면 변하지 않는 값을 반복하여 사용할 때 의미 있는 문자로 인식하기 쉽고 혹, 변하더라도 선언한 부분만 변경하면 되므로 여러 부분을 수정할 필요가 없음 package ch10; public class ConstantTest { public static void main(String[] args) { final int MAX_NUM = 100; final int MIN_NUM; MIN_NUM = 0; System.out.println(MAX_NUM); //100 System.out.println(MIN_NUM); //0 //MAX_NUM = 1000; -> 수정 불가능 .. 2023. 6. 24.
[선택 과정] Java 기초 - 자료형(data type) : 논리형과 자료형 없이 변수 사용하기 논리형 true(참), false(거짓) 두 가지만 나타냄 1바이트를 사용 함 값이 존재하는지, 배열이 비었는지, 결과가 참인지 거짓인지등을 표현 package ch09; public class BooleanTest { public static void main(String[] args) { boolean isMarried = true; System.out.println(isMarried); // true } } 지역 변수 자료형 없이 사용하기 (자바 10 지원 됨) Local variable type inference 추론 가능한 변수에 대한 자료형을 선언하지 않음 한번 선언하여 추론 된 변수는 다른 타입의 값을 대입할 수 없음 지역 변수만 사용 가능 package ch09; public class L.. 2023. 6. 24.
[선택 과정] Java 기초 - 자료형(data type) : 문자는 프로그램에서 어떻게 표현하여 사용하나요? 문자도 정수로 표현합니다. 어떤 문자를 컴퓨터 내부에서 표현하기 위해 특정 정수 값을 정의 A는 65 문자 세트 : 각 문자를 얼마로 표현할 것인지 코드 값을 모아둔 것을 문자세트(character set)라 함 (ex. ASCII, euc-kr, utf-8, utf-16) 자바에서는 문자가 어떻게 표현되나요? 자바는 문자를 나타내기 위해 전세계 표준인 UNICODE를 사용 utf-16 인코딩을 사용(모든 문자를 2바이트로 표시) 문자형 변수 선언과 사용하기 문자를 위한 데이터 타입 char ch = ‘A’; ‘ ‘ (2byte char) , “ “ (문자열 String) 내부적으로 숫자(양수)로 표현되므로 숫자를 넣어도 문자가 출력될 수 있음 package ch08; public class Charac.. 2023. 6. 24.
[선택 과정] Java 기초 - 자료형(data type) : 실수는 어떻게 표현하나요? 부동 소수점 방식 실수는 정수 보다 정밀하기 때문에 정수와는 다른 방식으로 표현해야 함 부동 소수점 방식으로 실수 값 0,1 표현 지수부와 가수부로 표현 함 컴퓨터에서는 밑수를 2로 사용 정규화 : 가수가 밑수보다 작은 한 자리까지 가수로 표현되는 것 컴퓨터에서는 밑수가 2이므로 정규화를 하게 되면 가수부분의 첫 번째 자리 숫자는 항상 1임 ex. 0.2 표현 0.4 x 2^-1 → 정규화 → 1.6 x 2^-3 float 형과 double 형 자바에서는 실수의 기본 타입은 double을 사용함 float와 double 예제 package ch07; public class DoubleTest { public static void main(String[] args) { double dnum = 3.14; .. 2023. 6. 24.
[선택 과정] Java 기초 - 자료형(data type) : 정수는 어떻게 표현하나요? 변수와 메모리 변수를 선언하면 해당되는 자료형의 크기 만큼 메모리가 할당 변수는 할당된 메모리를 가리키는 이름 int level = 10; // 4바이트 정수형 메모리가 level 이라는 이름으로 할당 됨 기본 자료형(primitive data type)의 종류 정수 자료형의 종류와 크기 int로 10을 표현할 때 byte와 short byte : 1바이트 단위의 자료형 동영상, 음악 파일, 실행 파일의 자료를 처리할 때 사용 short : 2바이트 단위의 자료형 C/C++ 언어와 호환 시 사용 int 자바에서 사용하는 정수에 대한 기본 자료형 4바이트 단위의 자료형 프로그램에서 사용하는 모든 숫자(리터럴)은 int로 저장됨 32비트를 초과하는 숫자는 long 자료형으로 처리 long 8바이트 자료형 숫.. 2023. 6. 24.
[선택 과정] Java 기초 - 변수는 변하는 수입니다 변수는 언제 쓰나요? 프로그램에서는 항상 변하는 값을 나타낼 필요가 있음(ex. 학생의 성적, 합계, 게임의 레벨, 회원 주소 등…) 표현하려는 수에 맞는 데이터 타입(자료형)을 이용하여 변수를 선언 표현하려는 자료가 숫자, 문자, 문자열등 다양할 수 있으므로 그에 맞는 자료형을 사용 변수 선언과 사용하기 예제 변수 선언은 자료형과 변수 명으로 선언함. 선언과 동시에 초기화 할 수 있음 package ch05; public class VariableTest { public static void main(String[] args) { int age, count; age = 10; int level = 10000; System.out.println(age); System.out.println(level); .. 2023. 6. 24.
[선택 과정] Java 기초 - 컴퓨터에서 자료 표현하기 2진수로 표현 0과 1로만 데이터를 저장함 bit(1비트) : 컴퓨터가 표현하는 데이터의 최소 단위로 2진수 하나의 값을 저장할 수 있는 메모리의 크기 byte(바이트) : 1byte = 8bit 2진수와 10진수 2진수와 8진수와 16진수 8비트로 5를 표현해 보면… 부호 비트(MSB) Most Significant Bit 비트로 나타낼 수 있는 수의 범위는? 한 개의 비트로 나타낼 수 있는 수 : 0, 1 (2개) 두 개의 비트로 나타낼 수 있는 수 : 00, 01, 10, 11 (4개) 세 개의 비트로 나타낼 수 있는 수 : 000, 001, 010, 011, 100, 101, 110, 111 (8개) 2진수, 8진수, 16진수를 프로그램에서 사용하는 예제 package ch04; public cl.. 2023. 6. 24.
[선택 과정] Java 기초 - 자바 프로그래밍 시작하기 프로그래밍이란? 프로그래밍 : 컴퓨터가 일을 수행 하도록 프로그래밍 언어로 명령어 집합(프로그램)을 만드는 일 컴파일 : 프로그래밍 언어를 컴퓨터가 실행 가능한 기계어로 만드는 일 컴파일러 : 기계어로 바꾸어 주는 프로그램(ex. 자바 컴파일러, gcc) 자바 프로그래밍 자바의 역사 : 1991년 제임스 고슬링을 비롯한 선 마이크로 시스템스 연구원들이 처음 개발 가전, 휴대용 장치에 사용되는 소프트웨어 언어로 개발됨. 안정성이 중요 자바 프로그래밍의 특징 플랫폼의 영향을 받지 않으므로(플랫폼에 독립적으로 사용가능) 다양한 환경에서 사용할 수 있다. C 소스코드는 각 운영체제마다 가지고 있는 바이트코드(실행파일)이 다르다. 자바 소스코드는 컴파일하면 .class 파일이 생긴다. .class 파일은 완전한 .. 2023. 6. 24.
동시성 제어하기 - 07. 읽기와 쓰기의 트레이드 오프 병목 해소하기 쓰기 지점의 병목은 하나의 레코드를 점유 → 락 대기가 발생 락 대기를 풀고자 테이블 형식으로 분리 → 조회 지점의 병목이 발생 조회 지점의 병목은 카운트로 처리 INSERT 했던 데이터들을 aggregation해서 sum 하기 위해서 매번 카운트 쿼리가 발생 데이터의 성질 확인하기 정합성을 요구하는 데이터인가? 예시) 좋아요수가 0.1초의 딜레이를 가진다고 해서 고객에게 엄청난 손해를 주는 데이터인가? 그렇지 않다. 좋아요 수는 어느 정도의 실시간성만 보장만 된다면 괜찮다. 클라이언트는 웹 서버에 좋아요 누름에 대한 요청을 한다. 웹 서버는 좋아요 테이블에 INSERT를 한다. 조회 시점은 게시물 테이블 컬럼에 캐싱을 해놓는다. 특정 주기를 가진 스케쥴러가 좋아요 테이블을 주기적으로 co.. 2023. 6. 7.