231018

한라봉봉·2023년 10월 18일
0

기업연계 BE 교육 TIL

목록 보기
12/58

JS

자바스크립트 웹 제어

  1. BOM
  2. DOM <- 중요!
  3. node 에 관해 햇갈리지 말것

연산자 우선순위

괄호-> 산술-> 비교-> 논리

블록문(=코드블록=블록)

한개 이상의 자바스크립트 코드를 중괄호로 묶은 것
let: 블록문에 영향받음
var: 블록문에 영향받지 않음

for문과 구조분해 할당

for of: Array열거에 좋음(컬렉션 전용)
for in: 객체열거에 좋음(객체의 모든 열거 가능한 속성에 대해 반복)
구조분해 할당: k,V 구조 객체에서 꺼낼때 사용

JS 배열 열거는 Reduce()를 고려

continue, break

continue는 로그인에 많이 쓰인다.

함수

사용자 정의 함수와 표준함수로 나뉜다.

함수를 정의하는 방법

  1. 함수 선언문(declaration statement)
  2. 함수 표현식(expression)
  3. 화살표 함수(arrow function)

기본값(디폴트) 할당

매개변수를 정의하고 데이터를 전달하지 않아도 기본값 지정이 되어있으면 에러가 나지 않는다.(미지정시 undefined 값 자동할당)
ES6에서 매개 변수에 직접 데이터를 할당하는 방식으로 단순하게 기본값을 지정할 수있다.

화살표 함수와 return 문

arrow 함수와 function은 다릅니다. 꼭 function을 써야하는 경우가 있으니 검색해 볼것.

DB

DB를 사용해야 하는 이유?

  1. 대량의 데이터를 저장
  2. 중복의 최소화
  3. 관계

관계형 데이터베이스(ERD)

Entity Relationship Diagram

데이터베이스 오류를 수정하기 위한 방법

  1. 정규화를 선택
    1정규화/2정규화/3정규화/4정규화/5정규화...

관계

1:1 -> 1:1
1:다 -> 1:N
다:다 -> N:N(직접 연결하지 않는다.)
요즘은 0도 나온다. 한쪽이 아예 없을때도 산정한 것.

3D와 TCL

  1. DDL 정의 -> 테이블 생성: create, drop, alter, (+truncate 내용만지우기 delete table로 작성시와 동일)
  2. DML 조작 -> CRUD:
    insert into
    select (DISTINCT) from where
    update set
    delete from
  3. DCL 제어 -> 권한부여 : grant, 권한 회수 : revoke
    4. TCL 전송제어 -> rollback, commit(저장), savepoint
  • SpringFramework 에서는?(mvc2)
    Controller -> Service -> DAO -> VO -> DB
    |
    view
    - Service의 기능?
    : DB를 바꾼다.
    : 트랜젝션을 제어한다.(SpringFramework에서는 Service를 기준으로 commit(저장)하기 때문에, 에러 발생시 rollback을 Service에서 수행한다.)

대소문자 구분

sql은 대소문자를 구분하지 않는다.
다만 예약어와 사용자 정의의 구분을 위해 대문자로 예약어를 적어주면 가독성에 도움이된다.

CRUD

Create: inert into value
Read : select from where(목록보기 | 상세보기)
Update: update set
delete : delete from

REST

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/axios

Ajax(asynchronous Javascript and XML)의 줄임말 입니다. 자바스크립트를 이용하여 비동기 식으로 서버와 통신.
jQuery를 깔아 사용해야 하므로, 최근엔 React의 axios를 사용하여 통신한다.

설치

표준 포트번호

MariaDB, MySQL 포트번호: 3306
Oracle 포트번호, 톰캣: 8080
http: 80
http: 443
21: FTP(TCP 파일 전송 프로토콜) - 제어 포트
23: Telnet 프로토콜 - 암호화되지 않은 텍스트 통신

사용자 설정 포트번호

  • Oracle과 포트번호 충돌을 방지하려면 다른 포트번호로 설정. 예를들어,

JSP를 쓸때는 -> 톰캣을 포트번호 8090로 설정
Spring 쓸때는 -> 포트번호 8092로 설정
SpringBoot 쓸때는 -> 포트번호 8094로 설정

mysql 버전

5.7 latin -> 영문전용(환경설정변경 필요)
8.ㅌ utf-8-> 한글 사용가능

마리아디비 카페 검색시 설치방법

https://cafe.naver.com/hamminglab/20419

mariadb 카페 검색

관리자 ID

MySQL, MariaDB : root
Oracle : SYSTEM, sys

관리자가 아닌 사용자 ID로 접근시, 권한이 다르다.
관리자 :DB를 만들수 있다. 사용자 계정 만들수있음
사용자: 테이블만 생성가능, CRUD

Workbench 설치

마리아 db 서버를 깔았으므로 mySql DB 서버는 제외하고, Workbench만 커스텀으로 설치한다.

스키마내 테스트용 테이블 생성

https://cafe.naver.com/hamminglab/21402

  • sql파일 다운로드
  • 설치 대상 스키마를 더블클릭(진하게 표시됨)
  • employees 테이블 create

프로젝트 로컬로 실행하는 경우

  • 원래 테이블을 알수가 없으므로, 프로젝트내 sql 폴더에 소스 테이블을 생성 할수있는 sql문도 같이 첨부해야 한다.

staruml

https://staruml.io/
5.0까지는 무료 -> UML 종류가 적다.(Add Diagram)

파일의 경우

BoF(Begin of File)
EoF(End of File)
-> while 문으로 사용해야함

Java

컬렉션 프레임워크

list, set -> 선형
Map -> 비선형

ArrayList

요소 삭제시에 마지막 인덱스부터 삭제하는 것이 좋다.
중간요소 삭제로 인덱스의 변경이 일어나면 실수가 있을 수 있다.

잦은 삭제등 변경이 있는경우

-> ArrayList는 인덱스를 모두 당겨야하므로 불리하다.
-> LinkedList or HashMap 사용

부모 인터페이스인 List 타입 변수에 ArrayList 객체 저장

-> 부모것까지 사용하여 코드의 유연성을 높임

LinkedList

체인처럼 인접객체를 연결해서 관리.
앞뒤 링크만 변경하면 되므로 객체 삽입/삭제시 ArrayList보다 좋은성능.
앞뒤 링크 주소 저장공간이 필요하다.

JDBC(Java Database Connectivity)

자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다.

API(application programming interface)

애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다.

Map

키와 값으로 구성된 객체를 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();
  1. 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();

기타

FE

  • 웹퍼블리싱
    HTML5, CSS3, JSES6
  • 프론트
    React.js, Vue.js, Svelte <- js사용을 위해 Node.js 필수

backend

  • JSP/PHP/ASP.net
  • SpringFramework
  • Springboot
  • Node.js

와일드카드 문자

별표: 여러글자를 대신함
?: 한글자를 대신함

자료구조와 알고리즘

과제

arrow 함수와 function은 다릅니다. 꼭 function을 써야하는 경우가 있으니 검색해 볼것.

버블, 셀렉트, 퀵정렬 이해

java책

p648, 658 타이핑

profile
백엔드 개발공부 로그를 기록합니다

0개의 댓글