취업 이직 이야기

취업준비] IT회사 필기시험 준비

anyjava 2014. 4. 6. 00:43

IT회사 필기시험 준비


지금 내 경력 4년 9개월차 2009년 신입으로 구직활동에 뛰어 들어 신입으로 취뽀에 성공하고 이직을 한번 하였다. 수많은 필기 시험 면접을 봤지만, 이때까지 정리한번 제대로 해둔게 없어서 이번기회를 빌어 정리를 해두려고 한다. 곧 아니, 머지않아 다시 보게 될지도 모르기 때문에...

이 포스팅은 새로운 주제가 생길때 마다 추가되어 수정될 예정이다.

1. JVM의 메모리 영역과 특징

  • 메소드영역(Method Area)
- JVM이 기동되어 class 파일이 로딩되면 메소드영역에 저장되게 된다. 메소드정보 클래스 변수(static variable)정보도 함께 이영역에 저장되게 된다.
  •  힙(Heap)
- new 키워드로 생성되는 인스턴스(객체)들이 저장되는 공간이다. 즉, 인스턴스변수(instance variable)들이 생성되는 공간이다.  무한반복으로 new 키워드로 객체를 만들어 보면 OutOfMemoryException : Java Heap space 관련 예외를 볼 수 있을 것이다.

  •  호출스택(Call Stack 또는 Execution Stack)
 - 호출스택은 메서드 호출과 관련된 작업에 필요한 메모리 공간이다. 메소드 호출되면 이전 메소드 정보는 호출스택에 쌓이게 되며 호출이 될수록 Stack 구조를 이용하여 저장되게 된다. 이때 메소드가 작업을 수행하는 동안 지역변수(매개변수 포함)들과 연산의 중간결과 값등을 저장하는데 사용된다.
   이렇게 할당된 메모리들은 메소드 실행이 끝나게 되면 반환되어 진다. 재귀구조를 간혹 잘못 짜다 보면  java.lang.StackOverflowError 를 만난 경우가 있을 것이다. 이것은 호출스택이 가득차서 나타나는 에러이니 반복문이나 재귀적 호출구조에서 오류가 없는지 확인해야 한다.

2. ThreadLocal
  - 여러 쓰레드에 파라미터를 통하지 않고 공유변수를 이용할떄 쓰는 클래스이다. Java 1.2 부터 사용가능

3. Java Reflection
자바 리플렉션을 사용하면 클래스와 데이터 구조에 대한 정보를 이름을 기반으로 동적으로 얻을 수 있다는 점에서 매우 유용하다. 뿐만 아니라 리플렉션을 사용하면 자바 프로그램을 실행하는 동안에 해당 클래스를 조작할 수 있다. 이 기능은 믿을 수 없을 정도로 강력하며, C, C++, 포트란, 파스칼과 같은 자바 이외의 언어에서는 리플렉션에 해당하는 기능이 전혀 없다.
[참고사이트] http://socurites.com/60

4. IoC ( Inversion of control, 제어의 역전 )
  과거에는 객체관의 관계를 개발자가 직접 정해주고 코딩을 하였지만 현대의 프레임워크에서는 그 관계를 컨턴이너내부에서 정해주어 객체관의 결합도를 느슨하게 해주고 있다. Spring에서의 DI (  setter Injection,  Constructor Injection, Method Injection )가 대표적이다.

5. AOP ( Aspect Oriented Programming )
  공통의 관심사(보안인증, 로깅)를 프로그램의 특정 위치에 끼워넣는 개념의 프로그래밍 기법이다. 
  .JoinPoint : 횡단관심 모듈의 기능이 삽입되어 동작할 수 있는 실행 가능한 특정위치
  .PointCut  : 어떤 클래스의 어느 조인포인트를 사용할 것인지를 결정하는 선택기능
  .Advise    : 각 조인포인트에 삽입되어져 동작 할 수 있는 코드
  .Aspect    : PointCut + Advise

6. Java의 Exception, RuntimeException의 개념과 사용 용도

  - Error 클래스 : 프로그램의 치명적인 오류, 메모리부족 같은 상황, H/W적인 오류, 어쩔수 없는 심각한 오류
  - Runtime Exception : 프로그래머의 실수에 의해 발생하는 런타임 상황의 오류 예를 들면, 배열의 범위를 벗어난다던가(IndexOutOfBoundsException), 값이 null인 참조변수의 멤버를 호출하려 했다던가(NullPointerException), 클래스간의 형변환을 잘못했다던가(ClassCastException), 전의 예제에서 본 것처럼 정수를 0으로 나누려 했다던가(Arithmetic- Exception)하는 경우에 발생하는 예외들이다.
  - Exception 클래스 : 그외 예외들


7. Inheritance vs Composition
  -  [참고사이트] http://stevenjsmin.tistory.com/37

8. Java의 접근 제한자 종류
  - public : 모든 클래스와 다른 패키지에서 접근 가능합
  - protected : 동일패키지에서 접근가능함, 그리고 다른패키지일 경우 상속을 통해서 접근도 가능
  - private : 나 자신의 클래스 내부에서만 접근 가능 
  - default ( friendly ) : 동일 패키지 에서만 접근 가능함.


===================================================
2014.04.06 추가
- 좋은직원을 채용할수 있는 최고의 면접질문 13


아무 쪼록 이글을 읽는 여러분들도 좋은 결과 있으시길 바랍니다!!







반응형