본문 바로가기

Silicon Valley Online Internship Program

0109

키워드 공부

Node.js :
  Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임
  서버 사이드 (클라이언트-서버 구조의 서버 쪽에서 행해지는 처리) 플랫폼
  웹서버가 아님. 코드를 실행할 수 있는 하나의 방법인 JavasScript 런타임일 뿐
  일반적인 웹서버는 (Apache) 요청을 처리하기 위하여 제한된 쓰레드를 생성하지만
  Node.js는 이벤트 루프와 함께 단일 스레드 모델
  비동기 I/O 처리 / 이벤트 위주

 

npm (Node Package Manager) :
  Node.js의 패키지 생태계인 npm은 세계에서 가장 큰 오픈 소스 라이브러리
  node.js에서 사용하는 모듈들을 패키지로 만들어 npm을 통하여 관리하고 배포
  npm docs 보고 관리하기 (https://docs.npmjs.com/)

 

package.json:
  npm에서 핵심적인 역할을 하는 게 package.json
  의존성 모듈의 버전관리 (Maven에서 XML로 의존모듈 정보를 관리해 주는 것같이)
  패키지에 관한 정보와 의존중인 버전에 관한 정보
  프로젝트의 루트경로에 package.json파일을 두고 npm install 명령어를 입력하면 npm이 package.json에 명시     dependencies부분의 모듈들을 모두 설치
  npm init 으로 생성
  npm install 모듈명 --save -> 모듈을 설치하면서 자동적으로 package.json을 업데이트

 

WSGI: 웹 서버와 파이썬 기반 웹 어플리케이션을 연결해주는 규격
  웹 서버와 파이썬 웹 애플리케이션 중간에서 wsgi 통신 규격을 처리해 주는 것이 wsgi 서버 (웹 어플리케이션 서버 ex)) gunicorn, uWSGI...)


NGINX : 웹 서버

 

ORM (Object Relational Mapping) :
  객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)
  actor 들어가는 어플리케이션 만드는건 orm 쓰는게 좋다 (Hybernate, JPA 등)
  type object 만들어서 db table 에 있는거랑 똑같이 mapping 해서 access

 

lombok : 자바에서 Model(DTO, VO, Domain) Object 를 만들때, 멤버필드(프로퍼티)에 대한 Getter/Setter, ToString과 멤버필드에 주입하는 생성자를 만드는 코드 등 불필요하게 반복적으로 만드는 코드를 어노테이션을 통해 줄여 주는 라이브러리

 

POJO (plain old java object):
진정한 POJO란 객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트
자바 객체가 ORM 기술을 사용하기 위해서 Hibernate프레임워크를 직접 의존 -> POJO 아님?
스프링 프레임워크 -> 특정 기술의 클래스를 상속받거나 직접 의존-> 확장성 떨어져 ->객체지향 설계의 장점 잃어버리게 된

 

PSA :
스프링이 POJO를 유지하면서 Hibernate같은 기술 사용하기 위해 사용하는 방법
스프링에서 정한 표준 인터페이스 JPA

 

prepared statement :
DBMS에서 동일하거나 비슷한 데이터베이스 문을 높은 효율성으로 반복적으로 실행하기 위해 사용되는 기능
템플릿 형태, 템플릿 안으로 특정한 상수값이 매 실행 때마다 대체됨
sql injection 막는다
(db 작동순서 : 쿼리 보내면 첨에 parser가 쿼리 받고 -> optimizer가 돈다 -> 실행)
대용량 db 설계할때 prepared statement 안하고 그냥 쿼리, 변수넣어서 하면 db optimizer 매번 돈다 ->낭비

inner join / outer join
SELECT *
FROM 테이블A INNER JOIN 테이블B
ON 테이블A.A키 = 테이블B.B키
=> 양쪽 일치하는 키만
SELECT *
FROM 테이블A LEFT JOIN 테이블B
ON 테이블A.A키 = 테이블B.B키
=>양쪽 일치, A 는 다
SELECT *
FROM 테이블A FULL JOIN 테이블B
ON 테이블A.A키 = 테이블B.B키
=>모두출력

SELECT *
FROM user
WHERE (1=? AND id = ?)
AND (1=? AND name=?)

=>1,abc,1,1
=>1,1,1,Andrew
=>1,abc,1,Andrew

'Silicon Valley Online Internship Program' 카테고리의 다른 글

0108  (0) 2021.02.22
0107  (0) 2021.02.22
0106  (0) 2021.02.22
0104  (0) 2021.02.17
0주차  (0) 2021.02.17