--Node.js--protocol://host(domain):port/path?query string 형식
query string을 바꿔서 전달하면 페이지를 동적으로 가져올 수 있다.
${} 사용가능
접근 제어자
Public - 모든 패키지에서 접근이 가능하다.
Private - 자신을 포함한 패키지에서만 접근이 가능하다, 정의된 해당 클래스에서만 접근이 가능하도록 접근 범위를 제한한다.
protected - 클래스가 정의되어 있는 해당 패키지 내 그리고 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근이 가능하다.
오버라이딩 vs 오버로딩
오버라이딩 : 상위 클래스의 메소드를 재정의 하는 것
오버로딩 : 같은 클래스 내에서 동일한 메소드 이름을 가지지만 매게변수 타입, 갯수가 다르게 구현할 수 있는 것
MVC1 vs MVC2
MVC1 : Jsp가 controller, view의 가능을 모두 담당한다.MVC2 : 웹 브라우저 요청을 컨트롤러에서 처리하고 요청 로직을 모델로 보내서 결과를 view가 응답한다.
RDBMS vs NoSQL
RDBMS : 릴레이션을 통해 데이터를 저장하여 데이터 구조를 보장하고 중복을 피한다.NoSQL : 자유로운 형태의 데이터를 저장한다. 수평적 확장, 분산처리지원
1. 클라이언트의 요청을 DistpatcjerServler에 전달
2. 요청한 url에 맞는 controller 검색하여 HandlerMapping에 전달
3. HandlerMapping에서 해당 controller에 처리 요청
4. controller에서 처리 결과를 HandlerAdapter에서 ModelAndView 객체로 변환하여 DispatcherServlet에 전달
5. DispatcherServlet에서 전달받은 ModelAndView 객체를 이용하여 매핑되는 View를 검색
6. viewResolver에서 처리 결과를 view에 전달
7. 처리결과가 포함된 view를 DispatcherServlet에 전달
8. DispatcherServlet에서 최종 응답 결과를 클라이언트에게 출력
메모리 관리 기법중 하나로 Java, Go, Python 등에 들어가있다.
메모리 부족이나 누수로 인해 메모리가 부족해지면 자동으로 사용되는 것으로
동적으로 할당한 메모리 영역 중 필요 없게 된 영역을 제거함으로써 메모리 관리를 해준다.
- 프로그래머가 할당한 메모리 영역 전체를 완벽하게 관리하지 않아도 된다.- 어떤 메모리를 해제해야하는지 결정할 때 사용되는 알고리즘에 의한 비용 필요
OSI 7계층
물리 계층
전기적, 기계적 신호를 주고받는 역할을 하는 계층
통신 케이블, 허브, 리피터
데이터 링크 계층
전송을 보장하기 위한 계층이다 CRC 오류제어
스위치, 브릿지, MAC
네트워크 계층
IP 주소를 제공하는 계층으로 라우팅을 해준다.
A, B, C, D 클래스 ex) A = 0~ 127
라우터, L3 스위치, IP 공유기 등
전송 계층
사용자들이 데이터를 주고 받을 수 있게하는 계층
TCP, UDP
세션 계층
양 끝단의 응용 프로세스가 통신을 관리하는 방법을 제공하는 계층
전이중 통신, 반이중 통신
RPC, socket
표현 계층
코드 간 번역을 담당하는 계층
응용프로그램 형식 ↔ 네트워크 형식
인코딩, 암호화 등 이 데이터가 Text인지 gif인지 jpg인지 구분하는 일도 한다.
응용 프로그램 계층
응용 프로세스와 직접적인 관계로 일반적인 응용 서비스를 수행한다.
사용자에게 직접적으로 보이는 부분이다
HTTP, FTP 등등
Sping, Spring Boot 차이점
Spring은 프로그래머가 환경설정하는 부분에 어려움이 있지만
Spring Boot는 이러한 부분을 자동적으로 해결해주었다.
Call by value
C언어에는 call by value만 존재한다.
함수 호출 시에 '값'을 넘겨준다.
Call by reference
메서드 호출 시에 사용되는 인자가 '값'이 아니고 주소를 넘겨줌으로 주소를 참조하여 데이터를 변경한다.
포인터?