[네이버 클라우드 캠프-DevOps] 16일차

정지안·2023년 6월 28일
0
post-thumbnail

16일차(6/28수)

JS

Scope ( 스코프 )

변수가 적용되는 범위

  • 전역
  • 지역 (var를 쓰면 지역변수.)

onclick(온클릭)

⇒ js의 fucntion을 클릭으로도 실행할 수 있다!!

Function(함수)

  • 펑션 내부 함수는 펑션에만 존재한다. 밖에서 그 값을 불러오는건 안됨.

⇒반복해서 쓸 수 있는 코드조각

ex) function sayHello() { console.log("Hello my name is"); }

⇒sayHello(); 라고 하면, 중괄호 안의 명령어가 튀어나옴!!

펑션 정의

const 펑션정의. 여러펑션을 정의하거나, 아래와같이 object를 만듦과 동시에 펑션정의가능.

계산기만들기

익명함수

  • 이름이 없는 함수
  • 함수를 변수에 할당 가능
  • 함수를 익명으로 정의하면 함수에 이름을 붙이지 않고 사용할 수 있다.
  • 일회성으로 사용되거나 한정적인 범위에서 사용될 때 특히 유용

사용처

  • 콜백 함수에서 사용
    • 다른 함수의 인자로 전달되어 특정 이벤트나 조건이 발생했을 때 호출되는 함수
    
  • 즉시 실행 함수에서 사용
    • 함수를 정의하자마자 즉시 실행되는 함수
    

선언적 함수

  • 함수 선언문을 사용하여 이름과 함께 함수를 정의하는 방식

Java

String 클래스

  • java.lang 패키지에 속한다.

  • 문자열을 생성하고 조작하는 다양한 메서드를 제공

  • “java”처럼 큰따옴표를 사용한 문자열 리터럴은 String클래스의 인스턴스로 구현됨.


Split 함수

StringBuffer 클래스

  • 힙의 인스턴스를 추가로 생성하지 않고 변경해주는 역할!
  • StringBuffer 클래스는 String 클래스와 마찬가지로 문자열을 나타냄
  • StringBuffer 클래스의 인스턴스는 그 값을 변경하거나 추가할 수 있기 때문에 변경(수정)가능한 String 객체를 생성하는데 사용됨.

메서드종류

  • append(””) : “”이 끝에 추가됨
  • insert(n) : n번째 이후에 추가해라
  • replace(n,m,””) : n부터 m 이전까지 “”로 대체
  • delete()
  • reverse()

StringBuilder클래스

  • StringBuffer랑 똑같은데, 동기화(동시에 접근한다는 개념)가 되지 않는다는 특징이 있음.

래퍼클래스(wrapper)

  • 8개의 기본 자료형에 해당하는 데이터를 객체로 포장하는 클래스
    • 기본 자료형을 객체로 변환하여 사용

      기본형을 wrap으로 싸서 객체로 포장한다는 개념!

      💡 **클래스를 생성하거나 다른 클래스로 데이터를 전송할 때, 객체형으로 전달해야할 때가 있다.**

      기본형 - stack에 저장

      객체형 - heap에 저장

      기본형→객체형 (박싱)

      객체형→기본형(언박싱)

      Integer

    • Integer는 객체형(Integer wrapper class)

      • 자동으로 기본 자료형을 해당하는 객체형으로 변환
      • 이것을 오토박싱이라고 한다.
    • int는 기본 자료형(Primitive type)

      intValue

      Integer 객체를 기본 자료형 int로 변환하여 반환하는 역할

      명시적/묵시적 - 박싱/언박싱

Date패키지

  • Date : Date 객체 생성

Date의 내장함수

  • System.cureentTimeMillis() 내장함수 사용가능 (위 사진)
  • after ( 아래사진 )
  • before ( 아래사진 )

Calendar 클래스

  • 변수.get( )

    • Calendar.YEAR
    • Calendar.MONTH
    • Calendar.DATE
    • Calendar.DAY_OF_MONTH
    • Calendar.HOUR

StringTokenizer 클래스 (split과 유사하다.)

  • 특정 구분자로 연결되어 있는 문자열을 ‘토큰’이라는 여러 문자열로 분리하는데 사용한다.

  • 특수문자 뿐만 아니라 공백, 한 문자, 문자열을 구분자로 사용할 수 있다.

  • hasMoreTokens()

  • nextToken()

익명 클래스

  • 이름이 없는 일회용 클래스. 정의와 생성을 동시에 한다.
    - new 조상클래스 이름() {}
    - new 구현인터페이스이름() {}

ch8

프로그램 오류

  • 컴파일 에러 (컴파일 오류)
    • ex_) System. 을 system. 으로 적는 등
  • 런타임 에러 (실행 오류)
  • 논리적 에러 (작성 의도와는 다르게 동작하는 에러)

자파의 런타임 에러

  • 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
  • 예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류

예외처리

  • 정의
    • 프로그램 실행시 발생할 수 있는 예외 발생에 대비한 코드를 작성하는 것
  • 목적
    • 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것

try-catch문 ( 예외 처리하기 )


instanceof (객체의 타입을 확인하기 위해 사용되는 연산자)

객체의 타입을 확인하기 위해 사용되는 연산자

printStackTrace()와 getMessage()

  • printStackTrace()
    • 예외발생 당시의 호출스택(Call Stack)에 있었던 메서드의 정보와 예외 메시지를 화면에 출력한다.
  • getMessage()
    • 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.

멀티 catch블럭

  • 내용이 같은 catch블럭을 하나로 합친 것

  • 코드의 중복 제거

예외 발생시키기

  1. 연산자 new를 이용해서 발생시키려는 예외클래스의 객체를 만든 다음

    ex_) Exception e = new Exception(”고의로 발생시켰음”);

  2. 키워드 throw를 이용해서 예외를 발생시킨다.

    ex_) throw new Exception();

checked 예외, unchecked예외

  • checked 예외: 컴파일러가 예외 처리 여부를 체크(예외 처리 필수)
  • unchecked 예외 : 컴파일러가 예외 처리 여부를 체크 안함(예외 처리 선택)

메서드에 예외 선언하기

  • try-catch문

  • 예외 선언하기 (호출한 놈한테 예외 떠넘기기 )

  • 은폐하기(Exception은 모든 예외의 최고 조상!!)

finally 블럭

  • 예외 발생여부와 관계 없이 수행되어야 하는 코드를 넣는다.

사용자 정의 예외 만들기

  • 직접 예외 클래스를 정의할 수 있다.
  • 조상은 Exception(사용자가 발생시키는 예외)과 RuntimeException(프로그래머의 실수로 발생시키는 예외) 중에서 선택

exception은 try catch 필수

Runtime exception은 try catch 필수X

가장 중요한것은!

  1. exception필수처리 과 RuntimeException선택처리 중에 어떤걸 조상으로선택할지 정하는 것
  2. String 매개변수가 있는 생성자를 넣어주는 것

예외 되던지기(exception re-throwing)

  • 예외를 처리한 후에 다시 예외를 발생시키는 것
  • 호출한 메서드와 호출된 메서드 양 쪽 모두에서 예외처리 하는 것
    • Why?
    • 별 건 없고, 그럴 상황이 있을 수 있다.
    • 양 쪽에서 분담해서 처리하는 것.

연결된 예외(chained exception)

  • 한 예외가 다른 예외를 발생시킬 수 있다.
  • 예외 A가 예외 B를 발생시키면 A는 B의 원인 예외(cause exception)

Throwable initCause(Throwable cause) ⇒ 지정한 예외를 원인 예외로 등록

Throwable getCause() ⇒ 원인 예외를 반환

예외타입2 : 실제 발생할 에러

예외타입 1 : 예외2에 넣음

통째로 호출한메서드한테 던짐

그럼 예외타입1만 던져도 되는셈이다~

기존 : 공간이부족합니다

연결된예외 : (대략적인정보) 설치 중 예외 발생, (세부 정보) 공간이 부족합니다.

사용하는 이유!

  • 여러 예외를 하나로 묶어서 다루기 위해

hashCode() - 객체의 지문

  • 객체의 해시코드(hash code)를 반환하는 메서드 (주소를 반환)

  • Object클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환

  • equals()를 오버라이딩 하면, hashCode()도 오버라이딩 해야한다.

⇒해시 기반 자료 구조(예: 해시맵)에서 사용되며, 객체를 효율적으로 저장하고 검색하는 데 활용

identityHashCode()

  • 객체마다 다른해시코드를 반환하는 메서드

toString(), toString()의 오버라이딩

  • 객체를 문자열로 변환하기 위한 메서드.

ex_)

System.out.println(new Card().toString());

결과 : 클래스이름@주소값

ex_)

public String toString(){

return “kind :+ kind(iv) +, number :+ number(iv);

}

iv값을 이용해 오버라이딩할때 효과적이다.

MySQL

duplicate on key update

  • 레코드를 삽입하려는 경우 해당 레코드가 이미 테이블에 존재하는 경우 업데이트 작업을 수행하는 기능을 제공

with절과 CTE 개요

  • with 절은 cte(Common Table Expression)을 표현하기 위한 구문
  • cte는 기존의 뷰, 파생 테이블, 임시 테이블 등을 대신할 수 있으며 간결한 식으로 보여짐.
  • cte는 ansi-sql99표준
  • cte는 비재귀적 cte와 재귀적 cte가 있지만 주로 사용되는 것은 비재귀적 cte

ex_) 아래로 한 묶음 !

with cte_테이블이름(열 이름)

as (

<쿼리문>

)

select 열 이름 from cte_테이블이름 ;

숫자 데이터 형식

문자 데이터 형식

날짜와 시간 데이터 형식

MySQL에서 지원하는 데이터 형식의 종류

JSON; JavaScript Object Notation

  • 데이터를 저장하고 전송하기 위한 경량의 데이터 교환 형식
  • JavaScript에서 객체를 표현하기 위한 텍스트 기반 형식
  • JSON은 사람이 읽고 쓰기 쉽고 기계가 파싱하고 생성하기도 간편한 형식

외부에서 들어오는 쿼리 검증

데이터 형식과 형 변환

암시적인 형 변환

  • CAST()나 CONVERT()함수를 사용하지 않고 형이 변환되는 것
profile
1% 개발자를 향해:: 개발 공부 일지를 써나갑니다

0개의 댓글