분류 전체보기 94

배열(Array) - 배열(Array)이란?

배열(array) 1. 배열(array)이란? 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것. 2. 배열의 선언과 생성 원하는 타입의 변수를 선언하고 변수 또는 타입의 배열임을 의미하는 대괄호[]를 붙이면 된다. 1) 배열의 선언 타입 [] 변수이름; 타입 변수이름[]; 2) 배열의 생성 배열을 선언하는 것은 생성된 배열을 다루기 위한 참조변수를 위한 공간이다. 배열을 생성해야만 값을 저장할 수 있는 공간이 만들어진다. new 타입[배열 크기]; 배열의 선언과 생성을 동시에 진행 타입[] 변수이름 = new 타입[배열 크기]; 타입 변수이름[] = new 타입[배열 크기]; 변수 선언과 배열 선언 // 변수 선언 int num; // 메모리(Stack)에 자료형 만큼의 크기로 값을 (직접) 담을 수..

Java 2022.08.20

로그인 & 로그아웃 & 암호화 / 복호화

로그인 & 아이디 저장 기능 구현하기 ① 사용자에게 ID와 PW로 DB에 존재 여부를 확인 ② 일치하는 회원이 있을 경우, Session에 멤버의 정보를 객체로 저장 LoginServlet 생성 서블릿이 직접 비즈니스로직을 처리하는 것이 아니기 때문에 MemberService 객체의 login 메소드를 이용해 요청한다. MemberService 클래스 - login 메서드 생성 비즈니스 로직을 수행하지만 DB에 직접 접근하지 않는다. MemberDao 클래스 생성 - MemberSerivice는 DB에 접근하기 위해 다른 로그아웃 기능 구현하기 header.jsp 로그아웃 버튼에 url 설정을 한다. LogoutServlet 생성 로그아웃을 처리할 서블릿을 생성한다. doGet만 만든다. 암호화 / 복호..

Spring/로그인 2022.08.20

조건문(conditional statements) - if & switch

자바 프로그램의 실행 흐름을 개발자가 원하는 방향으로 바꾸어주는 것이 제어문이다. 제어문은 조건식과 중괄호({}) 블록으로 구성되는데 조건식의 결과에 따라 블록 내부의 실행 여부가 결정된다. 조건문 - if, switch 주로 if문이 많이 사용된다. 처리할 경우의 수가 많을 때는 if문보다 switch문이 효율적이지만, switch문은 if문보다 제약이 많다. 1. if문 조건식이 true 일 때 중괄호({}) 블록이 실행되고 false 일 때는 중괄호({}) 블록이 실행되지 않는다. if(조건식) { // 조건식이 참 (true) 일 때 수행될 문장을 적는다. } 조건식은 일반적으로 비교연산자와 논리연산자로 구성된다. 헷갈리는 조건식 조건식 조건식이 참일 경우 str.equals(“yes”) 문자열 ..

Java 2022.08.19

반복문(iteration statements) - for & while & do-while

반목문 - for, while, do-while 반복문은 특정 코드를 반복적으로 실행시키는 구문이다. 1. for문 반복 횟수를 알고 있을 때 적합하다. for(초기화; 조건식; 증감식) { // 반복되는 부분 LOOK FOR // 조건식이 true일 때 수행될 문장들을 적는다. LOOK FOR문 } 1) for문의 구조와 수행순서 초기화 → 조건식 → 수행 될 문장 → 증감식, 조건식이 false이 되면 for문 전체를 빠져나가게 된다. 2) 초기화 반복문에 사용될 변수를 초기화하는 부분이며 처음에 한번만 수행된다. 보통 변수 하나로 for문을 제어하지만, 둘 이상의 변수가 필요할 때는 ‘,’를 구분자로 변수를 초기화하며 두 변수의 타입은 같아야 한다. 3) 조건식 조건식의 값이 true이면 반복을 계..

Java 2022.08.19

연산자(Operator) - 논리 연산자 & 그 외의 연산자

논리 연산자 1. 논리 연산자 &&, ∥, ! && (AND결합) : 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다. true && true -> true true && false -> false false && true -> false false && false -> false || (OR결합) : 피연산자 중 어느 한쪽만 true이면 true를 결과로 얻는다. true || true -> true true || false -> true false || true -> true false || false -> false 1) 주의할점 x는 10보다 크고, 20보다 작다 → (10 < x) && (x < 20) x는 2의 배수 또는 3의 배수이다 → ((x % 2) == 0) || ((x % ..

Java 2022.08.18

연산자(Operator) - 산술 연산자 & 비교 연산자

산술 연산자 1. 사칙 연산자 +, -, *, / 곱셈, 나눗셈, 나머지 연산자가 덧셈, 뺄셈 연산자보다 우선순위가 높으므로 먼저 처리된다. 피연산자가 정수형인경우, 나누는 수로 0을 사용할 수 없다. 만일 0으로 나눌 경우, 실행 시에 에러가 발생할 것이다. 부동 소수점값이 0.0f, 0.0d로 나누는 것은 가능하지만 그 결과 Infinity(무한대)이다. (주의) 같은 의미의 식이라도 연산의 순서에 따라서 다른 결과를 얻을 수 있다. Math.round() 사용법 Math.round(pi * 1000) / 1000.0 → Math.round(3.141592 * 1000) / 1000.0 → Math.round(3141.592) / 1000.0 → 3142 / 1000.0 → 3.142 2. 나머지 연..

Java 2022.08.17

연산자(Operator) - 연산자(operator) & 단항 연산자

연산자(operator) 1. 연산자와 피연산자 연산자(operator) : 연산을 수행하는 기호 (+,-,*,/ 등) 피연산자(operand) : 연산자의 작업 대상 (변수, 상수, 리터럴, 수식) 연산자는 피연산자로 연산을 수행하고 나면 항상 결과값을 반환한다. 2. 식(式)과 대입연산자 식(式) : 연산자와 피연산자를 조합하여 계산하고자하는 바를 표현하는 것. 식을 평가(evalution)한다 : 식을 계산하여 결과를 얻는 것. 3. 연산자의 종류 종류 연산자 설명 산술 연산자 + - * / % > 사칙 연산(+-*/)과 나머지 연산(%) 비교 연산자 >, =, ==, ! = 작음과 같고 다름을 비교 논리 연산자 && 대입 연산자 = 우변의 값을 좌변에 저장 기타 (type) ? : instaneo..

Java 2022.08.17

변수(Variable) - 형변환

형변환 1. 형변환(캐스팅, casting)이란? 변수 또는 상수의 타입을 다른 타입으로 변환하는 것. 2. 형변환 방법 형변환하고자 하는 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙여준다. (타입)피연산자 double d = 84.5; int score = (int)d; // double 타입의 변수 d를 int 타입으로 형변환 //단계별 과정 int score = (int)d; -> int score = (int)85.4; // 변수 d의 값을 읽어 와서 형변환한다. -> int score = 85; // 형변환의 결과인 85를 변수 score에 저장한다. 피연산자인 변수 d의 값은 형변환 후에도 아무런 변화가 없다. 기본형에서 boolean을 제외한 나머지 타입들은 서로 형변환이 가..

Java 2022.08.16

변수(Variable) - 변수의 타입 : printf() & Scanner

변수의 타입 1. 형식화된 출력 - printf() printf() : ‘지시자(specifier)’를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다. ‘지시자’는 값을 어떻게 출력할 것인지를 지정해주는 역할을 한다. 정수형 변수에 저장된 값을 10진 정수로 출력할 대는 지시자 ‘%d’를 사용하며, 변수의 값을 지정된 형식으로 변환해서 지시자 대신 넣는다. println()과 달리 printf()는 출력 후 줄바꿈을 하지 않는다. 줄바꿈을 하려면 지시자 ‘%n’을 따로 넣어줘야 한다. System.out.printf("당신의 이름은 %s , 키는 %.1fcm, 성별은 %s입니다.", name, height, gender); 지시자의 전체 목록 : Java API에서 Forma..

Java 2022.08.16