231017

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

기업연계 BE 교육 TIL

목록 보기
11/58

JS

호이스팅

  • 호이스팅은 코드가 실행하기 전 변수선언/함수선언이 해당 스코프의 최상단으로 끌어 올려진 것 같은 현상을 말한다. (단, 변수 대입은 아님!)
    https://cafe.naver.com/hamminglab/21079
// 호이스팅 때문에 변수 선언이 끌어올려져서 오류 안남.
console.log(text); // (선언 + 초기화 된 상태)
text = 'Hanamon!'; // (선언 + 초기화 + 할당 된 상태)
var text; //해당라인이 없으면 선언되지 않았다고 reference error 확인됨
console.log(text);
  • 호이스팅이 중요한 이유
    C언어와 같이 순차실행하는 경우 선언부가 최상단, 호출부인 main이 아래로 내려갈 수밖에 없다. 호이스팅을 사용하면 중요한 호출부를 위로 올릴수 있다.

main 변화

  • java(main 직접) -> servlet(->jsp, main 간접) -> spring(main 간접) jsp 사용 -> springboot(main 직접) jsp-x , 타임리프, React/Vue/svelt
  • main을 직접 쓰지 않는 경우 처리속도가 느려지는 문제때문에 springboot에서는 다시 main 사용

자료형

기본자료형과 참조자료형으로 구분

  • 기본자료형 : String , number(정수/실수 구분하지 않음), undefined(초기화 값), null, Symbol
  • 참조자료형 : object, class

String

  • 큰따옴표와 작은따옴표를 구분하지 않는다. 스크립트언어 대부분은 구분하지 않는다. 가독성을 위해 따로 쓸수는 있다.
  • 다만 여는 따옴표와 닫는 따옴표는 같아야한다.
  • 서로 다른 따옴표로 문자열 포함처리: '그는 "중요하다" 라고 말했다'

줄바꿈

이스케이프 문자 \n

백틱 사용 템플릿 문자열

  • 엔터시 줄바꿈 적용
  • 표현식(el문자) 사용 가능

구조 분해 할당

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

undefined

js는 데이터를 초기화 하지 않으면 임시로 데이터를 할당, 오류미발생
java는 데이터를 초기화 하지 않으면 쓰레기값이 들어가 오류발생

null

선언한 공간을 비워 두겠다는 의미.

  • undefined | 0 | '' |' ' 와는 다르다.

객체

JS에서 기본자료형 제외 거의 모든 데이터와 자료구조는 객체

literal

값 그 자체 => (상수)

JS 배열

JS 배열에는 같은 속성이 아니더라도 모든 자료형을 정의할 수 있다.
타입이 없으므로 변수자체를 타입이름처럼 쓰는경우가 많다.

JS for문

for문 | for in | for of | for each
https://jsdev.kr/t/for-in-vs-for-of/2938

키/값으로 구성되는 객체 리터럴

비정형데이터 <-> 정형 데이터
1. JSON
- JSON.parse 와 JSON.stringify()
- 통신시 객체는 안되고, String만 통과 가능하므로 stringify()로 String으로 변환
- JS가 읽을 수있게 parse()로 객체화
2. Map - HashMap <-> List - ArrayList
3. DB의 경우 MongoDB(오프라인), Redis(온라인) <-> Oracle, MySQL, MariaDB

할당연산자

= 자바의 대입연산자임
x**=y

비교연산자

=== 값과 자료형 모두 비교

JAVA

애너테이션

외울 필요는 없다. 사용하면서 익히고 @Override만 쓴다.
https://cafe.naver.com/hamminglab/17831
https://cafe.naver.com/hamminglab/20314
https://cafe.naver.com/hamminglab/20475

제네릭

결정되지 않은 타입을 파라미터로 처리하고 실제 사용할때 파라미터를 구체적인 타입으로 대체시키는 기능

  • 클래스를 넣을 수있다. 나중에 사용자 정의 타입으로 VO를 넣기위해 배웁니다~(이름, 학번, 성적 등을 묶어 하나의 객체 타입으로 설정 등)
  • DB에는 순서에 맞게 List로

Thread

쓰레드란?

  • 메모리의 최소 단위
  • 멀티스레드 -> 2개 이상을 사용할때

멀티 프로그래밍과 멀티 프로세싱

  • 멀티 프로그래밍: 2개이상 프로그램을 메모리에 올려놓고 하나의 CPU에서 번갈아 가며 동시에 실행
  • 멀티 프로세싱: 2개이상의 CPU

리눅스 프로세스 종료

  1. kill -9 PID
    pid: 프로세스 아이디
  2. ps -ef prep 프로세스명 : 이걸로 pid 알수있음

선점형 스케줄링

시분할 시스템 등 검색해보기

interrupt

  • 비상상황과 정상범위내 다른 프로그램요청으로 나뉨

스레드풀

병렬 작업 증가로 인한 스레드의 폭증을 막기위해 작업큐(스레드풀)로 동시 수행 스레드를 제한하여 관리
프린터의 스풀링 풀 생각하기

-> 추후 웹과 DB 커넥션풀 이해을 위해 공부해둘것
DB 연결시 커넥션풀은 active데이터 개수를 제한
유명 커넥션풀 HikariCp(스프링 부트 내장됨): https://cafe.naver.com/hamminglab/20174

기타

jupyter

  • Jupyter Notebook : 파이썬 개발툴
  • Jupyter : JUnit 5.0
  • collab : 구글이 제공하는 Jupyter Notebook 유사환경 웹기반 IDE

웹 서버용 확장판 javax

  • import 시 java 기본 외에 javax|jakarta 를 사용할수 있다. 웹서버용 확장판이다.
  • javax : java11 or 8, 스프링 5.x, 스프링 부트2.x, Tomcat 9.x
  • jakarta : java17, 스프링 6.x, 스프링 부트 3, Tomcat 10.x -> 아직 안정성에서 확신이 어렵고 기존 코드들이 있어 해당 버전은 기업에서 잘 사용하지 않는다.

뷰 지원

  • spring: jsp 지원
  • springboot:
    - 기존 jsp는 원칙적으로 지원안하지만 jsp-x 플러그인으로 지원,
    • 타임리프에서는 html에 el 문자를 씀. 그래서 jsp의 el 문자를 사용할 필요가없으므로 jsp 안씀. 다만 기존 jsp를 새로 짜야 하는 이슈로 많은 기업에서는 사용하고 있지 않음
    • Angular/React/Vue/svelt: 천재는 jsp나 React 사용

새로운 언어, 프레임워크 배울때?

  1. Why: 처음배울때 왜 쓰는지 파악
  2. Difference: 추가로 다른걸 배울때는 다른점을 위주로 빠르게 파악(java와 javascript 차이는?)
  3. Where: 1번과 2번을 찾기. 구글, 야후(영문|일본), 바이두 등등

작업관리자

시작 -> 실행 -> msconfig
성능 최적화

DirectX 진단도구

시작 -> 실행 -> dxdiag

nextjs는

  • React로 만드는 서버사이드 렌더링 프레임 워크입니다. 서버사이드 렌더링을 함으로 얻는 이득은 다음과 같습니다.
  1. 클라이언트 렌더링의 경우 모든 js 파일을 로드하고 사용자는 웹을 보게됩니다. 이때까지 사용자는 많은 시간을 대기해야 합니다.
  2. seo 문제 - 클라이언트 사이드의 경우 자바스크립트가 로드 되지 않은 경우 아무런 정보를 보이지 않습니다. 구글의 검색엔진의 경우 자바스크립트가 로드되지 않은 페이지를 검색엔진으로 스캔함으로 결론적으로 검색에 아무 페이지도 걸리지 않게 됩니다.
    이 두가지를 해결하는 것이 서버렌더링입니다.
  3. 리액트의 쪼개진 컴포넌트 중심 에서-> webpack을 사용

java gui

awt, swing, fx

과제

db

포트번호 3306으로 일치하므로 명일은 mariaDB 깔거임. 추후 수업진행은 workbench 에디터 사용하나 mariaDB로 사용할예정
1. mariaDB 10
2. mysql 8.0 에디터 workbench
mybox -> pg에 둘테니 해당 파일은 메일 내게쓰기로 보내놓기

조건문 확인

JS p. 9.4 366~384 공부해오기 ->
5문제 테스트 예정
1. 구구셈
2. 학점구하기
3. 3개의 값(무작위 선출) 중에서 가운데 값을 구함
4. 삼각형 모양 별 찍기
5. 10개의 값이 있다. 최대값/최소값/중앙값/최대와 최소를 제외한 합계를 구하시오
-> 힌트: bubble sort, select sort 중 하나를 이용해 구하면된다.

java 타이핑하고 읽어보기

p578 ~ 580
629, 631

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

0개의 댓글