ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #2 [ 웹개발(JAVA,JSP,Spring) 관련 예상 면접 질문 ]
    카테고리 없음 2020. 3. 7. 16:37

    자바의 특징에 대해 내용을 써보세요.하나)OOP(객체 지향 언어):부품에 해당하는 객체를 가장 먼저 만들고 이들을 일일이 조립하고 모든 프로그램을 완성하는 개발 방법 2)"가비지 컬렉션"에 의한 메모리 자동 관리 3)"멀티 쓰레드"을 지원하는 것이다.4)JVM상에서 작동하기 위해서 특정 OS에 종속적이 아니라 이식성이 좋고, 보안성이 좋다.5)여러 Open라이브러리가 존재할 것이다.​ ​ 2)자바를 만든 사람에 대해서 아시나요?:"지에이프니 다스 코슬링"​ ​ 3)변수는?:"1의 값을 저장할 수 있는 메모리 공간"​ ​ 4)오브젝트와 클래스의 차이에 대해서 설명하고 보세요.클래스(Class): 현실세계 오브젝트의 속성과 동작을 추려내고 필드와 메서드로 정의한 것으로, "아직 메모리가 할당되지 않은 상태" vs-오브젝트(Object): 이 Class라는 설계도를 바탕으로 실제로 메모리가 잡힌 것을 의미하며, 모든 오브젝트를 조합하여 프로그램을 완성해가는 방식을 OOP(객체지향 프로그래밍)라고 할 것이다.​ ​ 5)객체 지향 PG와는. 또 그 특징은?현실세계의 오브젝트를 필드와 메서드로 정의한 Class를 기반으로 실제로 메모리가 만들어져 생긴 부품과 같은 오브젝트를 조합하여 전부 프로그램을 완성시켜 나가는 개발기법으로 특징)-캡슐화, 은닉화: 외부 오브젝트에서 구현방식은 모르게 감추고 별도로 액세스할 수 있는 getter/setter 메서드를 통해 액세스하게 하는 방식-상속: 부모 Class를 자녀가 접근할 수 있도록 물려받는 방식-다형성: 부모 클래스 타입으로 해당 부모를 상속하는 여러 자녀 클래스를 대입시키는 성질 등을 들 수 있다.​ ​ 6)다형성이란?:서로 다른 클래스에서 만들어진 오브젝트들이 같은 부모의 Class유형으로 이들을 관리할 수 있는(=에 대입할 수 있다)성질 ​ ​ 7)자바의 메모리 영역(간단히 설명)하나. 메서드 영역: static 변수, 전역 변수, 코드에서 사용되는 Class 정보 등이 올라간다. 코드에서 사용되는 클래스를 로더로 판독하며, 클래스별로 랜터입니다. 필드 데이터, 메서드, 데이터 등을 분류하여 저장하는 것이다.2. 스택(Stack):땅의 변수, 함수(・메솟도)등이 할당되는 LIFO(Last In First Out)방식의 메모리 3. 엉덩이(Heap):세로프게 연산자를 통한 동작 할당된 객체가 보존되어 가비지 콜렉션에 의한 메모리가 관리되고 있다.8) 추상 메서드? 추상 클래스?-츄상메사ー도:메서드의 정 위브 만큼 크효은브은 없는 메서드-추상 클래스:츄상메사ー도을 적어도 1이상 갖고 있는 반에서 아이 반에서 오보 라이디은(재정의)가 필요한 츄상메사ー도을 갖고 있어 객체화할 수 없다.​ ​ 9)인터페이스(Interface)란? 또 왜 사용 1?:인터페이스는 모든 메소드가 장착 부가 없는 츄상메사ー도에서 열린 클래스에서 abstract키워드를 달지 않아도 자동적으로 모든 메소드는 츄상메사ー도에 정의가 된다. 또한 변수도 자동적으로 final static 키워드가 붙는다. 왜 인터페이스를 사용하는가? 팀작업시 개발코드부분과 객체가 서로 통신하는 접점역할을 지원하는데 이는 개발코드에서는 객체의 내부구조를 몰라도 인터페이스의 메서드 이름만 알고 있으면 되기 때문입니다. 이로 인해 얻을 수 있는 장점은 해당 메서드를 통해 나오는 결과를 알기 때문에 다른 팀의 작업을 기다리지 않아도 되며 또한 해당 오브젝트가 수정될 경우 개발코드 부분은 수정하지 않아도 된다. 또한 부가적으로 오브젝트를 파일에 사용하기 위해서 Serializable 인터페이스를 구현하거나, Cllections.sort()를 하기 위해서 Comparable 인터페이스를 상속하는 것, Cloneable을 구현하도록 특정 작업을 하는 "Mark"의 역할도 해줄 것이다.​ ​ 하나 0)프로세스(Process) 와서 쓰레드(Thread)의 차이에 대해서 알아?-프로세스:OS가 메모리 등의 자원을 걸어 준 실행 중인 프로그램을 가리킨다. 이 때, 각각의 프로세스는, 서로 메모리 공간을 독자적으로 가지기 때문에, 서로 메모리 공간을 공유할 수 없을 것이다. 이를 위해 공유하기 위해서는 IPC(Inter Process Communication)와 같은 방식이 필요하다.스레드: 스레드는 프로세스 내에서 프로세스의 자원을 가지고, 실제로 일하는 "일꾼"과 같으며, 각 스레드는 독자적인 Stack 메모리를 가지고, 그 외의 자원(메모리)은 프로세스 내에서 공유하게 된다.컬렉션 플레이로 워크(Collection Framework)에 대해 아는 만큼 내용을 해보세요.- Collection 인터페이스 - List 인터페이스: 배열과 거의 대동소이지만 추가할 때마다 자동으로 Boundary를 거의 매일 주는 구조로 중복된 데이터를 허용하고 순서가 존재할 것이다.ex) - Array List: 배열로 구현되어 있으며 인접해 있어 데이터 조회에 매우 빠르지만 자주 삽입, 삭제하면 새로운 배열을 만들고 데이터를 옮겨야 하므로 Linked List에 비해 속도가 느리다. Linked List: 링크 구조로 되어 있어 조회는 Array List에 비해 느리지만 삽입 삭제 시 링크를 끊고 새로 추가되는 데이터에 링크를 접속하기만 하면 되므로 삽입 및 삭제에 유리하다. Vector : 구현방식은 Array List와 거의 대동소이하지만 Vector를 개선한 것이 Array List입니다. 또한 Vector의 경우 Array List와 달리 Synchronized(동기화)가 걸려 있어 여러 스레드에서 동시에 접속할 수 없다.- Set 인터페이스: 집합과 같이 중복된 데이터를 허용하지 않으며 순서가 없다. 또한 오브젝트 내부의 중복 데이터를 배제하고자 할 경우 Object클래스의 equals메서드와 hash Code메서드의 재정의가 확신하도록 필요하다.(ex) - HashSet - TreeSet: 순서가 있는 Hash Set으로 2분 트리 구조로 되어 있다. 순서대로로 정렬되어 저장되기 위해서 Comparable을 실현해야 한다. Map 인터페이스: key와 value쌍으로 데이터를 저장하고 key는 중복될 수 없으며, value는 중복저장이 가능하다.(ex) - Hash Map - Tree Map - Properties: key value쌍으로 저장되지만 value타입이 String만 가능하다. Hashtable: HashMap과 구조는 동일하며 단순히 Synchronized(동기화)되어 있는 점이 다른 점입니다.​ 하나 2)쿠키(Cookie)과 세션(Session)의 공통점과 차이점은?-공통점:둘 다 사용자의 데이터를 저장하는 것이다.- 차이 - 쿠키: 쿠키는 Client 컴퓨터에 저장했다.서버 요청 시 네트워크를 타고 서버에 전달되기 때문에 보안에 취약하다. 세션 : 세션은 서버에 저장되고 브라우저 단위로 관리된다. 캐시에 비해 보안이 좋다.​ 하나 3)Request전송 방식에는 어 떤 적이 있는지 아십니까?Get 방식: URL 쿼리 문자열에 데이터를 함께 전달하는 방식으로 데이터 길이에 제한이 있어 보안에 취약하다. - POST 방식: 헤더에 데이터를 넣어 보내기 때문에 보안에 약간 유리하고 데이터 길이에 제한이 없다. 그러나, Get에 비해 조금 늦다. - DELETE 방식: RESTFUL에서 삭제 기능을 할 때 주로 사용된다.- PUT/PUSH 방식: RESTFUL에서 수정 작업을 할 때 주로 사용된다.​ ​ 하나 4)RESTFUL은.:해당 URL만 봐도 당장에 떨리는 작업을 하는지를 알게 1의 데이터는 1의 URL을 갖게 작업하는 방식 ​ ​ 하나 5)Spring에서 DI라는 무오쯔잉지 알고 있습니까?:DI는 Dependency Injection(의존성 주입)의 약어로, 오브젝트들 간의 의존성을 줄이기 위해서 사용되는 Spring의 IOC대사 나쿠의 구체적인 실장 방법입니다. DI는 기존처럼 개발 코드 부분에서 오브젝트를 발발하는 것이 아니라 팩토리 패턴처럼 오브젝트의 발발과 데이터를 주입만 후에 받는 Factory에 해당하는 다른 공간에서 오브젝트를 발발하고, 데이터간의 의존성을 주입하여 개발 코드에서는 이를 가져옴으로써 의존성을 줄이는 방식입니다. 이 때, Factory 패턴의 Factory Class의 역할을 스프링 환경설정 파일이 후순위로 미뤄질 것이다.​ ​ 하나 6)Spring의 AOP는?:AOP은 Aspect Oriented Programming관점 지향 프로그래밍의 약어로, 기존의 OOP(객체 지향 프로그래밍)에서 기능별로 class를 분리한 소리에도 불크하, 여전히 로그, 트랜잭션, 자원의 해제, 성능 테스트 메서드처럼 공통적으로 반복되는 중복 코드가 여전히 발발되는 단점을 해결하려고 나선 방식으로 이런 공통 코드를 "횡단의 관심사"라고 표현하고 개발 코드에서는 비즈니스 로직에 집중하고 실행시에 비즈니스 로직의 앞, 뒤)등 원하는 지점에 해당, 공통 관심사를 수행할 수 있게 함으로 중복 코드를 줄일 수 있는 방식입니다.​ ​ 하나 7)Filter과 Interceptor방식의 차이?:​ ​ 하나 8)디자인 패턴 알것인가.하나)싱글 튼(SingleTone Pattern):대표적으로 Calendar객체나 dataSource객체처럼 객체가 만 발발해야 할 경우, 모두 코드로 1의 객체만 존재할 수 있도록 다시 발발한 객체가 있으면 그 객체를 사용하는 방식입니다.2)팩토리 패턴(Factory pattern):객체 간의 의존성을 줄이기 위한 오브젝트의 발발과 데이터의 주입을 후(후) 하는 Factory Class를 정의하고 개발 코드 부분이 발발한 객체를 가지고 사용하는 것으로서 의존성을 줄이는 방법입니다.3)옵저버 패턴(Observer Pattern):날씨 정보와 같이 RSS수신시 1의 객체가 바뀌면 다른 오브젝트에 객체가 달라졌다는 사항을 알려야 하는 경우에 주로 사용뎁니다.​ ​ 하나 9)MVC패턴이란?-Model:data처리와 접근을 뒤(뒤)당-View:Client에 보이는 화면을 후(후)당-Controller:Model과 View를 제어하는 3개 부분으로 나누는 것으로, 데이터와 화면 간의 의존 관계를 칭우오날이 가능하도록 개발 방법입니다.​ ​ 20)프로젝트 개발 수순?대체로...하나)요구 분석 기획 및 이이에키보ー도의 작성 2)WBS(Work Breakdown Structure)작성:작업 분해도에서 프로젝트 범위와 최종 제품을 세부 요소로 분할한 계층적 구조도 3)논리 ERD작성 4)물리 ERD작성 5)개발 6)Testing7)보수 ​ ​ 2개)오버로드와 오보 라이디은의 차이?-오버로드:메서드 이름은 같지만 매개 변수 유형과 개수를 달리하고 선언하는 방식-오보 라이디은:상속한 아이에서 부모의 메소드를 재정의하는 방식 ​ 22)Servlet vs JSP-Servlet:자바에서 웹 개발 때문에 만들어진 것으로 Container가 이해할 수 있도록 구성된 순수 자 바 코드로만 구성된 것-JSP:html기반으로 JAVA코드를 블록화하고 삽입한 것으로 Servlet을 더 쉽게 접근할 수 있도록 만들어진 것 ​ 23)Wrapper Class의 사용 이유를 아세요?: 기본 데이터 타입은 객체가 아니기 때문에 Object에서 받는 다형성을 지원할 수 없다. 그러나 메서드에서 실재로 기본 데이터 타입을 다형성으로 넘겨야 하는 경우가 빈번하게 발생하는데, 이때 기본 데이터 타입을 오브젝트로 변환하여 전달하기 위해 사용되며 최근에는 AUTO Boxing, AUTO Un Boxing이 지원된다.​ ​ 24)DataBase에서 Index는?:Table에 대한 동작 속도를 높이고 있는 자료 구조로서 빠른 검색을 가능하게 한다.​ ​ 25)private, protected, public, default지에오쟈에 대해서 설명하고 봐라-private 같은 class내부에서 "만"접근할 수 있다.- public : 어디서나 자유롭게 접근할 수 있음.- protected: 같은 class내부+상속된 아이는부모 클래스에 액세스 할 수 있다.default: 아무런 선언도 하지 않을 경우 동일한 패키지 내부에서만 접근할 수 있다.​ ​ 26)SI가 무엇을 하는지 알겠나요?System Integration의 약자로 시스템 통합사업을 통해 고객의 기존 전산시스템을 통합하거나 새로운 시스템을 구축하는 작업입니다.​ ​ 27)SW개발시에 가장 큰 비중을 두어야 할 부분은 어디라고 소견 1요?Testing 부분입니다. ​ ​ 28)자바의 제네릭라니?클래스 내부에서 사용하는 데이터 타입을 인스턴스(객체)발발 시 표결하는 방식-------------------------------------------------------------------------------------여기까지는 제가 예상하는 면접 질문을 주고 이 아래에서는 실제로 제가 기술 면접 당시에 받은 질문들입니다.[기술 면접 질문]1. CVS나 SVN에 대해 알게 되는 대로 설명해 주세요. 2.64bit CPU와 32bit CPU의 OS적 관점에서의 차이를 설명하고 보세요. 3. 프로세스와 스레드의 차이에 대해서 설명하고 보세요.(메모리 구조를 포함)4.'벽'이란 무오쯔이코 이를 해결하기 위한 비결을 설명하고 보세요.-교착상태로도 한정된 자원을 여러 곳에서 사용하고자 할 때 발발할 수 있다.- 대기로 들어간 프로세스가 실행 상태로 변경될 수 없을 때 - 시스템 내에서 상호 배제, 점유 대기, 비선점, 순환 대기 모두가 동시에 성립될 때 발발할 것이다.- 교착상태 예방 및 회피: 교착상태가 일어나지 않음을 보장 - 교착상태 탐지 및 회복 : 교착상태 발생시 회복 - 교착상태 무시 : 대부분의 시스템은 교착 상태가 잘 일어나지 않고 교착 상태를 해결하는 것이 보다 비용이 크다. ​ 5. 변수 명명 법이 중요한 이유를 설명하고 예를 들어 보세요.-가독성 저하-메서드와 변수를 대등한 이름으로 작성해도 X-Camel 케이신 주의:한 글자의 경우 Snake와 혼동됨


    ​ 6. 자바의 JVM의 역할을 설명하고 보세요.2가지 기본 기능-자바 프로그램이 있는 기기 또는 어느 운영 체제 상에서도 실행할 수 있도록 Java와 OS사이에서 중개자 역할을 수행, Java이 OS에 독립적으로 실행 및 재사용이 가능하게 한다.- 프로그램 메모리를 관리하고 최적화하는 것 - 가비지 컬렉션 ** JDK (Java Development Kit) JavaSE, EE, ME 중 하한을 실장한 것. 자바SE: 자바 플랫폼.자바 가상 머신 규격 및 API 집합 포함. 자바 EE: 자바를 이용한 서버 측 개발을 위한 플랫폼. SE기능을 모두 포함합니다. -Java ME:이다 베디도우을 위한 Java플랫폼 ​ 7. 자바의 특징에 대해서 이야기하고 보세요. 8. Linux에서 톰캣 환경설정을 한다는 것을 설명해주세요. 9.WAS와 웹 서버의 차이점은?-웹 서버(Web Server)=아파치 클라이언트가 서버에 페이지를 요청하면 요청을 받고 정적 콘텐츠(. html, png, css등)을 제공하는 서버, 클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어 응답하는 역할(정적 데이터)정적인 자원을 제공할 때 WAS보다 빠르게 안정적이었다 날 정적 콘텐츠 요청 시->.html, png등의 응답(response)2. 동적 콘텐츠 요청 시->웹 서버에서 처리 X WAS에 부탁->WAS가 처리하고 준 콘텐츠를 받고 웹 서버가 응답-WAS(Web Application Server)=콤테이덱, 우에브콤테이덱, 사ー브렛토콤테이덱=톰캣 동적 콘텐츠를 제공하려고 만든 아기·케이션 서버(DB조회, 논리의 처리가 요구되는 콘텐츠)JSP, Servlet구동 환경의 제공*JSP, servlet을 수행할 수 있는 S/W=콤테이덱-차이 동적 콘텐츠 처리를 실행 가능한가 아닌가. WAS는 정적·동적 처리 모두 가능하지만, 정적 처리를 WAS가 하면 부하가 걸리므로 좋지 않다.sound 톰캣(WAS)에는 아파치(웹서버) 기능(웹서비스 데이먼, htpd)이 포함되어 있다. (일반적인 WAS, Web Server 구조가 아님)


    >


    하나 0.Jquery와 Ajax에 대해서 알아?Jquery:자바 스크립트 라이브러리의 1종 Ajax:new주소로 이동 없이 화면 상의 객체를 자유롭게 뵤은교은하 것 개인 데이터 입출력이 가능하다.하나하나. 비동기와 동기방식의 차이점에 대해서 내용을 좀 풀어보세요.(네트워크 동기 비 동기 없는 것)의 동기식:A작업이 끝난 뒤 B작업을 시작할 수 있는 소리(single thread)동기:A작업과 B작업을 동시에 실행 가능(multi thread)하나 2. 개발 시에 중요하다 교은헤한 요소를 3개 기술하고 보세요.예외처리, 테스트, 협업예외처리: software적인 에러로 개발자가 수정하고 수정할 수 있는 부분. 보다 안정적이고 에러에 강한 프로그램을 만들 수 있다.역시 인터넷에서는 보안, 접근, 위치 등의 이유로 많은 예외 정세가 존재하기 때문에 그에 따른 대처나 고려가 필수적입니다.테스트: 작은 단위로 테스트를 해야 버그를 찾고 수정하는 데 용이하다는 견해다. 규모가 커질수록 문재의 원인을 찾기 어렵다.협업 : 개발은 혼자가 아닌 팀 단위로 이루어집니다. 자기만 고집한다, 과도한 팀 내 규칙을 지키지 않는 등 이기적인 태도는 팀원 전체를 괴롭힐 것이고 이는 곧 개발할 제품의 퀄리티도 떨어뜨릴 것이라는 견해를 보일 것이다. 하나 3. 스프링의 MVC에 대해서 설명하시오. 하나 4.AOP란 한 사람, 왜 사용하는지 하나 5.'에쟈 1'방법론에 대해서 알아?​ 하나 6. 스프링의 환경 설정 혼자 잡을 수 있는가? 대충 어떻게 해야하는지 설명해봐요. 하나 7. 웹 서버 내부의 구동 방식에 대해서 설명할 수 있는가?웹 서버 클라이언트로부터 HTTP의 요청을 받아 웹페이지를 클라이언트로 보내는 서버. 그림, HTML, CSS, 자바스크립트를 포함한 HTML 문서를 클라이언트에 전송한다. ex. 아파치, nginx - 웹 브라우저의 웹 서버에서 수신한 HTML 문서, 리드 등을 화면에 표현하는 소프트웨어 브라우저별로 각각의 방식으로 HTML 문서를 해석하여 화면에 과인 처리한다.인터넷 익스플로러, 크롬-구동 방식 하나. 사용자가 웹 서버에 접속하면 2. 웹 서버에서는 미리 정해진 규칙에 따라서, index파 1를 검색하게 된다.3.index파 1은 보통 index.html, index.php, index.jsp등에서 나 누가 되고 있다.4. 찾은 파 1은 서버 사이드 스크립트 언어이며 이를 웹 서버에서 처리하고 사용자에게 html파 1형식으로 전송하는 것이다.5. 즉, 웹 서버가 할 역할은 서버 사이드 스크립트 언어를 해석하고 사용자에게 전달하는 것입니다.6. 정적 파 1즉시 사용자에게 전송하고 동적 파 1은 서버에서 처리 과정을 거친 뒤 html형식으로 변환하고 전송하는 것이다.18. 스프링 DI란? 하나 9.UML그리고 본 적 있나? 20.Node js나 Angular JS을 사용하고 본 적이 있는가? 2개. 현금이나 세션의 같은 점과 차이점에 대해서 내용하고 보세요.https://blog.naver.com/hanblueblue/22개 709056735


    22. 디자인 패턴 아는 것만 간략히 설명하고 보세요. 23.DataBase에서 index관련 질문 이옷눙데 잘 모르니까.기억이..24. 크롬과 파이어 폭스에서 개발 툴을 사용하고 디버깅을 하고 봤나? 25.JDBC가 있을까?


    >


    - 자바 Database Connectivity-자바 프로그램과 관계형 데이터 원본에 대한 인터페이스-자바 프로그램 내에서 DB와 관련된 작업을 처리할 수 있도록 지원하는 한 가지를 한다.JDBC 라이브러리는 관계형 데이터베이스에 접속하여 SQL 쿼리문을 수행할 비법을 제공한다.- JDBC 드라이버: 각 DBMS에 적합한 클라이언트 - JDBC API가 없었던 이전에는 각각의 DB마다 각각의 SQL 문장을 사용한다. 즉, 이 쿼리문 작성의 극의의 차이가, 과잉인식의 개발에 문재가 있었다. 그 결과로 function이 과의 structure, 전역변수 등을 통합문법으로 만든다=JDBC API-즉, JDBC API를 사용할 경우 DBMS에 적합한 JDBC 드라이버만 있으면 어느 DB에서도 사용할 수 있다. *API Application Programming Interface 응용프로그램에서 사용할 수 있도록 OS인 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 한 인터페이스 UI가 사용자와 사용자가 다루는 대상(하드웨어 or 소프트웨어)을 연결한다면 API는 프로그램과 또 다른 프로그램을 연결해 주는 하나의 다리라고 할 수 있다.데이터를 신속하고 안전하게 하달, 처리하면서, 어기플리케이션이나 데이터베이스의 사이에 커뮤니케이션 레이어로서 기능한다.이기플리케이션의 최종 사용자는 API를 사용하여 하나의 솔루션으로 여러 개의 애플리케이션 작업을 완료하고, 필요할 때 언제 어디서나 과인정보를 받을 수 있다.단화된 문법 및 의사소통의 비법을 만들어, 이기플리케이션과 데이터베이스의 상호작용을 가능하게 한다. 이 그대로는, 애플리케이션과 서버와의 사이에 가능한 상호 작용 규칙, 및 재빠른 교환이 가능하도록 데이터 형식화법에 대한 규칙을 정의한다.​ 26. 스프링을 사용하지 않고 MVC를 JSP에서 만들어 보았는가. 27.DB옵티마이저에 대해서 알고 있나?​ ​ 출처:https://rongscodinghistory.tistory.com/44[악덕인 고용주의 개발개의]


    댓글

Designed by Tistory.