기술면접 정리

      1. 자바의 특징을 말하시오...
        1. 객체지향언어
        2. 함수적 스타일 코딩을 지원
        3. JVM(Java Virtual Machine)위에서 돌아가기 때문에 이식성이 좋다(OS 상관 X)
        4. Garbage Collector 인해 메모리를 자동으로 관리
        5. 동적로딩
        6. 오픈소스 언어
      2. JAVA 만든 사람?
        • 제임스 고슬링
      3. 변수란?
        • 하나의 값을 저장할 있는 메모리 공간
      4. 객체와 클래스의 차이점?
        1. Class : 객체를 만들어 내기 위한 설계도(or ), 연관된 변수와 메소드의 집합
        2. Object : SW세계에 구현할 대상, 클래스의 인스턴스라고도
        3. Instane : 객체를 실체화 한것, 실체화된 인스턴스는 메모리가 할당됨.
      5. JAVA 메모리 영역
        1. Method 영역 : 스태틱 변수, 전역 변수, 코드에 사용되는 클래스 정보
        2. Stack 영역 : 지역변수, 함수 등이 할당됨, Last In First Out(리포 방식)
        3. Heap 영역 : new 연산자를 통해 동작할당된 객체들이 저장, 가비지 콜렉션이 메모리를 관리
      6. Abstarct Method, Abstract Class
        1. 추상 메소드 : 정의부만 있고 구현부는 비어있는 메소드
        2. 추상 클래스. : 추상 메소드를 적어도 1 이상 보유하고 있는 클래스, 자식 클래스에서 오버라이딩이 필요.
      7. JDBC : 자바에서 데이터베이스에 접속할 있도록 해주는 자바 API, 자료를 쿼리하거나 업데이트 하는 방법
      8. 직렬화 : 객체를 스트림을 통해 인풋,아웃풋하기위해 배열로 변환하는
      9. 리플렉션 : 다이나믹 랭귀지의 특징, 프레임워크에서 유연성이 있는 동작을 위해 주로 사용, 컴파일러를 무시하고 런타임시 메모리에 올라간 클래스나 메소드 정의를 동적으로 찾아서 조작 가능할 있는 일련의 행위
      10. 서블릿, JSP 차이
        1. 서블릿은 자바소스에 html코드가 삽입
        2. JSP html코드에 자바코드가 삽입
        3. 서블릿 클래스는 컴파일 과정, 등록과정이 필요, JSP 필요X
      11. request 객체 : 클라이언트에서 서버로 넘어오는 데이터를 전달받기위한 객체
        response 객체 : 서버에서 클라이언트로 데이터를 전달하기위한 객체
      12. 쿠기 : 클라이언트에서 데이터를 저장, 보안은 취약하나 속도가 빠름
        세션
        : SID 식별자로 서버에 데이터를 저장, 보안 강력, 로그인 인증에 사용
      13. XML
        1. W3C(월드와이드웹 컨소시엄)에서 권장되는 다목적 마크업 언어
      14. REQUEST 전송 방식
        1. GET : URL 쿼리 문자열에 데이터를 같이 전달하는 방식, 보안에 취약
        2. POST : 헤더에 데이터를 넣어 보내는 방법, 길이 제한이 없고, GET보다는 느림
        3. DELETE : restful에서 삭제 기능할 사용
        4. PUSH(PUT) : restful에서 수정 작업할 사용.
      15. RESTFUL : URL 보고 어떤 작업을 하는지 있게끔 데이터하나당 URL 갖도록 작업하는 방식
      16. MVC :  영역간의 결합도를 최소화한 디자인 패턴, 분업화가 쉬워지고 유지보수가 용이함.
        1. Model : 데이터 처리 접근을 담당
        2. View : 클라이언트에 보여지는 화면을 담당
        3. Controller : 모델과 뷰를 제어
      17. okky, stackoverflow : 개발자 커뮤니티 사이트
      18. react
        1. UI 위한 JS라이브러리
        2. Facebook 만든 Javascript 라이브러리
        3. 프레임워크 ㄴㄴ 라이브러리 ㅇㅋ?
        4. 특징3
          1. Component : UI 구성하는 개별적인 단위
          2. JSX : react 위한 자바스크립트 문법
          3. Vital DOM : 가상돔 기존 돔의 비효율적인면을 고려하여 개발됨
      19. aop
        • 기능을 핵심 비지니스와 공통 모듈로 구분
        • 애플리케이션 전반에 걸쳐 사용되는 기능을 재사용하도록 지원
        • 관점 지향 프로그래밍
          • 어드바이스 : 실지적으로 부가기능을 담은 구현체
          • 포인트컷 : 부가기느잉 적용될 메소드를 선정하는 방법
          • 조인 포인트 : 어드바이스가 적용될 있는 위치
          • 프록시 : 타겟을 감싸고 타겟의 요청을 대신 받아주는 랩핑 오브젝트
          • 인트로덕션 : 타겟 클래스에 코드 변경없이 신규 메소드나 멤버변수를 추가하는 기능
          • 위빙 : 지정된 객체에 애스팩트를 적용해서 새로운 프록시 객체를 생성하는 과정
        • 사용되는 경우 : 간당한 메소드 성능 검사, 트랜잭션 처리, 등등..
      20. di : 의존성 주입
        • 의존성 주입은 스프링에서 지원해주는 기능이다.
        • 객체가 아니라 프레임워크에 의해 객체의 의존서잉 주입되는 설계 패턴
        • 프레임워크에 의해 동적으로 주입되므로 객체들 간의 결합이 줄어듬
        • 종속성 감소, 재사용상 증가, 가독성 증가 등의 장점이 있다.