괄호-> 산술-> 비교-> 논리
한개 이상의 자바스크립트 코드를 중괄호로 묶은 것
let: 블록문에 영향받음
var: 블록문에 영향받지 않음
for of: Array열거에 좋음(컬렉션 전용)
for in: 객체열거에 좋음(객체의 모든 열거 가능한 속성에 대해 반복)
구조분해 할당: k,V 구조 객체에서 꺼낼때 사용
continue는 로그인에 많이 쓰인다.
매개변수를 정의하고 데이터를 전달하지 않아도 기본값 지정이 되어있으면 에러가 나지 않는다.(미지정시 undefined 값 자동할당)
ES6에서 매개 변수에 직접 데이터를 할당하는 방식으로 단순하게 기본값을 지정할 수있다.
arrow 함수와 function은 다릅니다. 꼭 function을 써야하는 경우가 있으니 검색해 볼것.
Entity Relationship Diagram
1:1 -> 1:1
1:다 -> 1:N
다:다 -> N:N(직접 연결하지 않는다.)
요즘은 0도 나온다. 한쪽이 아예 없을때도 산정한 것.
sql은 대소문자를 구분하지 않는다.
다만 예약어와 사용자 정의의 구분을 위해 대문자로 예약어를 적어주면 가독성에 도움이된다.
Create: inert into value
Read : select from where(목록보기 | 상세보기)
Update: update set
delete : delete from
REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다.
즉 REST란
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다.
C : POST
R : GET
U : PUT, PATCH(일부만 업데이트, 멱등성 문제가 생기므로 안씀)
D : DELETE
-> ajax, axios가 비동기이므로 사용한다. SPA(싱글페이지)에서 내용이 바뀌더라도 깜빡이는 현상이 없도록하기 위해서이다.
Ajax(asynchronous Javascript and XML)의 줄임말 입니다. 자바스크립트를 이용하여 비동기 식으로 서버와 통신.
jQuery를 깔아 사용해야 하므로, 최근엔 React의 axios를 사용하여 통신한다.
MariaDB, MySQL 포트번호: 3306
Oracle 포트번호, 톰캣: 8080
http: 80
http: 443
21: FTP(TCP 파일 전송 프로토콜) - 제어 포트
23: Telnet 프로토콜 - 암호화되지 않은 텍스트 통신
JSP를 쓸때는 -> 톰캣을 포트번호 8090로 설정
Spring 쓸때는 -> 포트번호 8092로 설정
SpringBoot 쓸때는 -> 포트번호 8094로 설정
5.7 latin -> 영문전용(환경설정변경 필요)
8.ㅌ utf-8-> 한글 사용가능
https://cafe.naver.com/hamminglab/20419
MySQL, MariaDB : root
Oracle : SYSTEM, sys
관리자가 아닌 사용자 ID로 접근시, 권한이 다르다.
관리자 :DB를 만들수 있다. 사용자 계정 만들수있음
사용자: 테이블만 생성가능, CRUD
마리아 db 서버를 깔았으므로 mySql DB 서버는 제외하고, Workbench만 커스텀으로 설치한다.
https://cafe.naver.com/hamminglab/21402
https://staruml.io/
5.0까지는 무료 -> UML 종류가 적다.(Add Diagram)
BoF(Begin of File)
EoF(End of File)
-> while 문으로 사용해야함
list, set -> 선형
Map -> 비선형
요소 삭제시에 마지막 인덱스부터 삭제하는 것이 좋다.
중간요소 삭제로 인덱스의 변경이 일어나면 실수가 있을 수 있다.
-> ArrayList는 인덱스를 모두 당겨야하므로 불리하다.
-> LinkedList or HashMap 사용
-> 부모것까지 사용하여 코드의 유연성을 높임
체인처럼 인접객체를 연결해서 관리.
앞뒤 링크만 변경하면 되므로 객체 삽입/삭제시 ArrayList보다 좋은성능.
앞뒤 링크 주소 저장공간이 필요하다.
자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다.
애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다.
키와 값으로 구성된 객체를 Entry 객체라고 한다. Map 컬렉션은 이 객체의 모음이다.
Map의 entrySet() 메소드는 키와 값의쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴
1. key 열거하기
//키 Set 컬렉션을 얻고, 반복해서 키와 값을 얻기
Set<String> keySet = map.keySet(); // Map의 keySet() 메소드는 모든 key값을 set 형태로 반환
// 키를반복하기 위해 반복자를 얻음
// Iterator는 자바의 컬렉션 프레임워크에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법
Iterator<String> keyIterator = keySet.iterator();
while (keyIterator.hasNext()){ // Iterator의 hasNext() 메소드는 남은 요소가 있다면 true 반환
String k = keyIterator.next(); //Iterator의 next() 메소드는 다음 요소 반환
Integer v = map.get(k);
System.out.println(k + " : " + v);
}
System.out.println();
key, value 열거하기
//엔트리 Set 컬렉션을 얻고, 반복해서 키와 값을 얻기
// Map의 entrySet() 메소드는 키와 값의쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴
// 키와 값으로 구성된 객체를 Entry 객체라고 한다. Map 컬렉션은 이 객체의 모음이다.
Set<Entry<String, Integer>> entrySet = map.entrySet();
Iterator<Entry<String, Integer>> entryIterator = entrySet.iterator();// 엔트리를 반복하기 위해 반복자를 얻음
while (entryIterator.hasNext()){
Entry<String, Integer> entry = entryIterator.next();
String k = entry.getKey();
Integer v = entry.getValue();
System.out.println(k + " : " + v);
}
System.out.println();
별표: 여러글자를 대신함
?: 한글자를 대신함
p648, 658 타이핑