컴포넌트와 모듈 차이
- 모듈과 컴포넌트는 비슷하지만 모듈이 컴포넌트보다 큰 단위라고 생각합니다.
컴포넌트는 하나의 부품입니다. 보통 작은 영역에서 서로 관련되어 있고 다용도로 사용이 가능하게 만듭니다. UI를 제어하는 타이머같은 Back단에서 스레드를 보조하는 컴포넌트를 예로 들 수 있습니다.
모듈은 조금 작은 범위의 조각입니다. 외부 인터페이스가 없는 복합적인 수요기능에서 실행될 수 있는 단위 입니다. 데이터베이스나 이메일 같은 통합적인 기능을 제공하면서 라이브러리처럼 사용될 수 있는 것들 입니다. 그리고 호환성이 더 좋습니다.
- 모듈은 정적인 구조, 구현 단위
- 컴포넌트는 런타임에 독립적으로 배포되고 실행되는 단위
- 즉, 시스템이 실행되면 모듈로 부터 생성된 하나 또는 여러 컴포넌트와 매핑됨
- 캡슐화, 정보은닉, 추상화와 같은 소프트웨어 설계 원칙을 준수하여 하위 구성요소의 선택, 교체, 조합을 통하여 빠른 시스템 구축과 발전을 달성하는 것이 목적이라는 공통점
스택 오버플로우가 왜 일어나는가?
- 스택포인터가 스택의 경계를 넘어 설 때 일어납니다. 호출 스택은 제안된 양의 주소공간을 이루며 프로그램 시작 시 결정됩니다.
메모리 누수가 무엇인가
- 프로그래밍에서 메모리 누수현상은 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상입니다.
자바에서 메모리누수는 더 이상 사용하지 않는 객체가 가비지컬렉션(GC)에 의해 회수되지 않고 누적되는 현상입니다. old영역에 누적된 객체로 인해서 메이저 GC가 빈번히 발생하게 되고 프로그램의 응답속도가 늦어지다 결국 Out of memory 오류로 프로그램이 종료됩니다.
메모리 누수를 막기위한 방법
- 가장 좋은 방법은 참조값을 갖는 변수가 최소한의 유효범위안에 있도록 하는 것입니다. Local변수로 만들 경우 자동으로 GC의 대상이 되는 것을 예로 들 수 있습니다.
URI, URL, URN이란?
- URI에는 URN과 URN이 포함되어 있습니다. URL은 URI지만 URI는 URL이 아닙니다.
URI : 인터넷 상의 자원을 식별하기 위한 문자열 구성
URL : 인터넷 상의 자원의 위치를 나타냄
URN : 위치와 상관없이 리소스의 이름값을 이용해 접근하는 방법
https://programming119.tistory.com/194
JSP가 무엇인가?
- JSP란 Java Server Pages의 약자이며 HTML코드에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션 도구입니다.
- jsp가 실행되면 자바 서블릿으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답합니다.
- 자바 서블릿이란 웹 페이지를 동적으로 생성하기 위한 서버 측 프로그램을 말합니다. 이는 자바 언어를 기반으로 만들어지며 웹 어플리케이션 서버 위에서 컴파일 되고 동작합니다.
패스워드 암호화 방법
- 단순 텍스트
- 단방향 해시함수의 다이제스트
- 솔팅
- 키 스트레칭
대칭키와 비대칭 키
- 대칭키 암호화 방식(비밀키 암호화 방식)은 하나의 비밀키를 이용한 암호화 방식
- 비대칭키 암호화 방식(공개키 암호화 방식)은 공개키와 개인키를 이용한 암호화 방식
web server 와 was
- web server : HTTP 프로토콜을 기반으로 하여 웹브라우저의 요청을 서비스하는 기능을 담당합니다. 예를들어 'apach server', 'Nginx'가 있습니다.
- was : DB조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 어플리케이션 서버입니다. 예를들어 '톰캣', 'jeus' 등이 있습니다.
Express
- Express는 Node JS 웹 어플리케이션 프레임워크로 Rest API를 만들기에 유용한 여러 도구들이 포함되어 있습니다.
Node JS
- Node JS란 자바스크립트를 백엔드에서도 사용할 수 있도록 해주는 실행환경입니다. (구글에서 개발한 v8 엔진활용)
- 싱글스레드 비동기 기반이며 성능이 좋습니다. 또한 소켓 I/O가 좋으며 쉽게 코딩할 수 있다는 장점이 있습니다.
CDN
- 대용량 또는 사용자의 잦은 요청이 있는 컨텐츠를 Cache 서버에 분산 배치하여 컨텐츠의 전송 중 발생하는 트래픽 집중과 병목현상 및 데이터 손실을 해결하기 위해 등장한 컨텐츠 전송기술입니다.
- 작동원리
- 웹 브라우저가 실행되는 PC나 모바일 기기의 사용자 에이전트가 특정 주소에 접근하여 HTML, 이미지, CSS, JS 파일 등 렌더링하는데 필요한 컨텐츠를 서버로부터 요청합니다.
- DNS는 컨텐츠에 대한 각 요청이 발생하면 End User와 가장 가까운 위치에 최적으로 배치된 CDN 서버에 End User가 맵핑되고, 해당 서버는 요청된 파일의 캐싱된 버전으로 응답합니다.
- 서버가 파일을 찾는데 실패하는 경우 CDN 플랫폼의 다른 서버에서 콘텐츠를 찾은 다음 End User에게 응답합니다. 향후 요청에 응답할 수 있도록 patch에 새로운 콘텐츠를 저장합니다.