데이터베이스 용어정리 (P63)
개체 = 엔티티(Entity) = 유무형의 객체
테이블이라는 개체를 사용해서 DB에 데이터를 분류해서 저장해야한다.=> 데이터베이스관리자의 역할이 아닌 개발자의 역할이다
즉 데이터 모델링과정을 잘해야 좋은 개발자이다.
개체 = 엔티티(Entity) = 유무형의 객체
테이블이라는 개체를 사용해서 DB에 데이터를 분류해서 저장해야한다.=> 데이터베이스관리자의 역할이 아닌 개발자의 역할이다
즉 데이터 모델링과정을 잘해야 좋은 개발자이다.
기능 : 키보드로부터 데이터를 받아온다.
java.util 패키기에 있는 중요한 라이브러리이므로 사용법은 암기필수.
1 | //1. 선언 |
다른 명령어들은 아래와 같다
1 | sc.nextInt() |
처음 떠오른 코드는 아래와 같다.
1 | Scanner sc = new Scanner(System.in); |
그런데 string으로 연산자를 받으니까 연산이 되지않으니까 int로 형을 바꿀려고했는데 Cannot cast from String to int
에러가 났다.
사칙연산자들의 데이터타입이 무엇인지 구글링했는데 그래도 잘 모르겠어서
강사님께 여쭈어보니 string을 int로 받아도 해결할 수 없다고 한다.
if문을 써서 equals()를 쓰는게 낫다고 했다
equals()를 어떻게 쓰는지 찾아본 뒤 바로 적용해보았다
1 | Scanner sc = new Scanner(System.in); |
작동 잘된다! 역시 가르쳐주는 사람이 있으니까 좋다
switch문으로 바꾸어보자
1 | switch(operator){ |
정수식안에는 변수, 숫자, 문자, 조건들이 들어갈 수 있다.
case안의 값에는 and연산자, Boolean, 실수는 아예 들어갈 수 없다.break;
문이 없을 경우 다음 break;
를 찾을때까지 모든 문장을 실행한다.
default문은 가장 마지막 작업으로 위의 case 이외의 값인 경우 default문은이 출력되고 Switch문은 끝난다
1 | switch( 정수식 ){ //숫자,문자 |
예시
1 |
|
임의의 노래방 점수를 터미널에 입력하면 점수대별로 아래 문구를 출력하고싶다.
100점의 문구 : 실화냐? 가수다! 가수가 나타났다!
80 ~ 99점의 문구 : 노래실력이 아주 좋으신데요~
40 ~ 79점의 문구 : 매력이~ 넘쳐요
40점미만의 문구 : 노ㄹ..아니 박수실력이 나날이 늘어가네요!
그외의 점수들 : 잘못된 숫자를 입력하셨습니다.다시 입력해주세요
if일때
1 | Scanner sc = new Scanner(System.in); |
switch일때
1 | switch(inputScore/10){ |
for문의 기본은 아래와 같다
1 | for(int i=0; 조건식; 증감식){ |
간단한 예시를 보면서 어떻게 컴파일이 되는지 순서를 보자
1 | for(int i=1; i<10; i++){ |
반복문에서 break를 사용하면 반복문이 바로 종료된다.
구구단 3단 예시를 들어보자
1 | int multiply; |
출력값의 마지막 컴마를 없애고 싶다.
어떻게 하면 좋을까? if와 break를 사용해보자.
1 | int multiply; |
break를 입력하면 if조건이 만족되는 순간 바로 반복문이 종료된다
아래 예시는 구구단 3단 나타내지만 if조건문을 5까지 입력했다
즉 3*5
까지 진행하는 구구단이다.
1 | int multiply; |
x가 6,7,8,9가 남았지만 if조건을 만족하고 break때문에 반복문이 종료된다.
location.reload()는 새로고침의 역할을 한다
1 | const id = "itwill001" |
1 | const id = "itwill001" |
DB를 쓰면 알게되겠지만 2번방법은 아이디한번 비번한번 두번을 가져와야해서 비효율적이다
1번을 사용하는 것을 권장한다
1 | <img src="https://lh3.googleusercontent.com/proxy/kn4y-1fat85W8voylUnkZF1DBTCAwtNwaTwxKJZ-GYiWk83N6rAd2fKqIzdaPSSZKupHKxA-xyZttfXhyO6EQHKxEQ2NTEeByNqAEZaCdJScbyZcUB3nak6TlxWlKv_lRgwfZtY8gWCwjusDnUmRThBUCTYf7ElOwOvnnj772zC02yDGOB5uI-B4rkSeKZjcw0i6FpG3xsATsSvDIw4A28QN" |
querySelector로 input태그 ID와 PW를 가져오려고 했으나 “존재하지 않는 회원입니다”라는 에러만 겁나 났다
querySelector가 안되는 이유는 Jquery태그를 추가해야한다고했다
그래서 다른 방법인 getElementById()로 진행해봤다.
1 | <img src="https://lh3.googleusercontent.com/proxy/kn4y-1fat85W8voylUnkZF1DBTCAwtNwaTwxKJZ-GYiWk83N6rAd2fKqIzdaPSSZKupHKxA-xyZttfXhyO6EQHKxEQ2NTEeByNqAEZaCdJScbyZcUB3nak6TlxWlKv_lRgwfZtY8gWCwjusDnUmRThBUCTYf7ElOwOvnnj772zC02yDGOB5uI-B4rkSeKZjcw0i6FpG3xsATsSvDIw4A28QN" |
입력받은 정보를 가지고 학점을 나타내는 switch문을 만들어보자
1 | let score = prompt('점수를 입력하시면 학점이 계산됩니다') |
자세히보면 반복되는 출력문이 보인다
이걸 리팩토링해보자
아주 간단하다! 변수만 만들어주면 된다!
1 | //switch case 출력문 한번쓰기 |
ITWILL학원 : 4강 JS기초 BY 정규태강사
ITWILL학원 : 2강 JAVA BY 윤미영강사
document.write();
console.log();
alert();
1 | let a = 100; |
예제문제를 푸는데 나는 두가지 방법이 떠올라서 두가지방법으로 풀어보았다
예제문제
Math.floor를 사용하여 세자리 숫자를 연산하면 100의 단위로만 나타내세요
input 456
output 400
1 | let num3 = 778; |
변수에 데이터(값)을 저장하는 연산자
ex) A = B ; 연산의 방향이 오른쪽에서 왼쪽이다
복합대입연산자는 산술연산자에 복합연산자를 함께 사용하는 것으로 그 예에는 +=, -=, *=, /=, %=
가 있다
ex) A += B; <=> A = A + B;
ex) A -= B; <=> A = A - B;
ex) A *= B; <=> A = A * B;
복합대입연산자를 활용해 테이플을 편하게 만들 수 있다
1 | let name = "곽두팔"; |
물론 HTML로 만드는 것이 훨씬 편하지만…ㅋㅋㅋ
변수의 앞, 뒤에서 사용하며 값을 1증가 또는 1감소
1 | let A = 100; |
세미콜론의 위치때문에 1번과 2번의 값이 차이가 생겼다
++A는 A의 값을 변화시키지 않고 콘솔을 찍었고
A++은 A의 값을 1씩 더한 뒤(세미콜론찍고) 콘솔을 찍었다.
즉 변수의 값을 변하시키는 건 A++후위연산이다.
데이터를 비교하는 연산자.
연산의 결과는 boolean 으로 나온다.
<, >, <=, >=, ==, !=, ===, !==
1 | num1 = 10; |
왜 서로 값이 다르게 나올까?
==
: 데이터의 값만 서용해서 비교===
: 데이터의 값 + 데이터의 타입을 모두 비교 (높은 정확도)참고로 위의 개념은 js에만 해당됨
총 3가지의 연산자가 있다
&&
AND 두개 넣어서 AND연산자||
버티컬바 두개 넣어서 OR연산!
느낌표 넣어서 NOT연산논리연산자진리표를 꼭 기억해야한다.
JAVA와 이름은 비슷하지만 어떠한 연관성도 없는 언어이다.
JS 특징
스크립트 언어 - 어플리케이션에 명령을 전달하기 위한 것.
Compile VS Interpreter
둘 다 고급언어로 작성된 원시 프로그램(Source Program)을 목적 프로그램(Object Program)으로 번역하는 번역 프로그램이며, 프로그램 번역 방식에 따라 구분된다.
라이브러리란 특수한 기능을 모아놓은 것을 말한다
ex) jQuery, Ajax, JSON
자바는 서버에서 사용되는 언어이다. 서버에서 처리를 한 후 돌려줘야 한다.
반면 JS는 서버가 아닌 클라이언트에서 처리된다. 그래서 서버의 부담이 줄어든다
그렇다면 전부 JS로 하면 안될까??
하지만 JS에 한계가 있기 때문에 서버의 언어와 클라이언트의 언어를 같이 사용하게 된 것이다.
항상 대/소문자 구문해서 사용한다.
아래 코드는 같은 의미를 가지고 있는 것 같지만 출력값은 다르게 출력된다
1 | new Date(); |
실행문을 끝낼때 항상 ;을 사용한다.
세미콜론이 없이 실행가능할 수 있지만 실행중에 문제가 발생할 수도 있기에 붙이는 것을 권장한다
사용자(개발자)의 편의성을 위해 한 줄에 하나의 문장을 작성한다.
큰 따옴표와 작은 따음펴 사용에 주의한다
""
는 String만 가능, ''
는 char만 가능1 | // ex) |
만약 하나의 공간에 다른 데이터를 추가적으로 넣게되다면?
새로운 데이터가 들어올 시 기존 데이터에 덮어쓰여지게 된다.
저번시간에 꼭 기억해야하는 한 문장이 있다고 했다
바로 모든 프로그램은 주기억장치에서만 실행된다!
다만 경우에 따라서는 1번 선언과 2번 초기화를 같이 진행할 수도 있다.
- 변수 선언만 한 경우 : var 변수명;
- 선언과 초기화 같이 하는 경우 : var 변수명 = 값;
아래를 출력하면 언디파인드가 뜨는데 consol창에는 아무메세지도 나타나지않는다
즉 에러가 아니다
1 | let tmp |
왜 이런 현상이 일어날까?
메모리가 할당된 tem안에 값이 없기때문에?
tem안에 값이 있는지 없는지 모르기때문에!
이게 무슨 양자역학같은 소리냐면…
메모리는 유한하다. 8기가나 16기가 등등.
컴퓨터는 여러 작업을 하면서 한정된 메모리안에서 데이터를 썼다가 지웠다가를 반복한다.
재사용된 메모리위치에 아직 쓰레기값이 들어있을 수도 있다.
내가 대입하지 않았더라도 어떤 쓰레기값이 들어가 있을수있기때문에 undefined가 나온 것이다.
따라서 변수선언 후에는 항상 초기화를 해줘야된다.
var타입은 객체타입이라고 한다. 모든 타입을 저장할 수 있다.
비교하자면, java의 변수선언은 정수인 경우 int num = 1이라고 하지만 js는 데이터타입을 정의하지않고 변수를 선언할 수 있다.
WEB(HTML, CSS)을 담당하며 일주일에 1번 4시간 수업
HTML은 웹페이지를 만들어 주는 프로그래밍 언어이며 웹페이지의 구조를 담당한다
enter나 space bar(2칸 이상)는 명령으로 해결한다.
!DOCTYPE html
의 의미는 html5 문서임을 선언<pre>태그
<pre>태그
는 html문서안에서 <p>
나 <br>
를 쓰지않아도 html상의 Enter나 Tab, Space를 다 표현할 수 있기때문에 긴 문장등을 표현할때 굉장히 효율적으로 사용할 수 있다.
더불어서 자동적으로 모든 문자의 width 간격을 일치시켜준다
ex) i와 w의 크기가 같다
1 | 만날 수 없어 |
위 내용을 html상에 적고 브라우저로 열어보면
1 | 만날 수 없어만나고 싶은데이런 슬픔처음인걸말할 수 없어말하고 싶은데속마음만 들키는 걸 |
우리가 원하는 건 이게 아니다!<p>
와<br>
태그를 이용할 수 있으나 여간 귀찮은 일이아니다.
이때 사용하는 것이 <pre>
태그이다
1 | <pre> |
특수문자(기호)표현을 위한 특수문자 태그들.
<
는 < 를 나타내고 >
는 > 를 나타낸다.1 | 이것은 <br> 태그입니다 |
각 두 줄의 코드를 동일한 값이 나오길 기대하며 브라우저 출력물해보자
아래와 같이 표시된다
1 | 이것은 |
띠용~ 그래서 이럴때 특수문자를 사용해준다
자주 사용하는 특수문자는 result 1번부터 5번까지는 기본으로 암기해야한다
1 | 이것은 <br> 태그입니다 |
// 출력물은 아래와 같다
1 | 이것은 <br>태그입니다 |
는 space bar를 넣는 태그이고 자주 사용 하지만 css를 사용하면 굳이 사용할 필요없기도 한 모호한 녀석이다.
⛹
를 하면 운동하는 사람 아이콘이 나온다. 컬러풀하고 귀여운 symbols를 확인하고 사용할 수 있다
&
는 &를 나타낸다
1 | 운동하는 사람 &#9977이 &#9748가 와서 운동을 그만하고 &#9749를 마셨다 |
출력값은 아래 이미지처럼 짜잔!
<b>태그
와 <strong>태그
의 차이점b태그 : 단순히 굵게 표시
strong태그 : 굵게와 중요한 내용이라는 표시가 내포되고있고 더불어 스크린 리더를 사용하는 경우, 음성으로도 강조해서 알려주니까 b태그보단 strong태그 이용할 것.
이와 동일하게 작용하는 것이 기울임태그이다
<center>
태그는 더이상 사용하지않으며 대신 CSS로 text-align:center
를 이용한다<hr>
태그는 구분선을 그어준다