ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 면접준비
    개발/알아둘 기본 개념 2023. 5. 29. 13:18
    728x90

    1. 스프링과 스프링부트

     

    스프링 :

    자바기반의 백엔드 프레임워크.

     

    특징 : 의존성 주입(DI), 제어반전(IOC) 등이 있다.

     

    의존성주입(DI) : 구성요소간의 의존관계가 소스코드 내부가 아닌

    외부의 설정파일을 통한 방식.

     

    JAVA에서 데이터를 저장하고 가져오는 기능을 외부의

    Oracle Database,JDBC,iBatis 등 서로다른

    프레임워크로 짤 수 도 있다.

    이 때 스프링을 이용하면 그때마다

    필요한 부분을 뺐다 꼈다 하면서 적절한 상황에 필요한 기능을 해낼 수 있다.

     

     

    제어반전(IOC) :  객체(인스턴스)의 생성부터 소멸까지 

    객체 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해주는 것.


    스프링 부트 : 스프링의 확장 버전

    스프링 개발을 더 쉽게 만들어주는 역할을한다.

     

    스프링을 이용하여 개발을 할 때 세팅을 해야되는 요소들이 많은데

    스프링부트는 매우 간단하게 프로젝트를 설정할 수 있게 하여

    스프링 개발을 쉽게 만들어주는 역할을 한다.


    2. JVM이란?

    자바 가상 머신의 줄임말

     

    운영체제(OS)에 상관없이 자바 어플리케이션을 사용할수있게 해준다.


    3. 가비지컬렉션

    JVM의 메모리관리 기법 중 하나로 시스템에서 동적으로 할당됐던 메모리 영역 중에서

    필요없어진 메모리영역을 관리해주는 기법.


    4.객체지향프로그래밍(OOP)이란?

     

    프로그래밍에서 필요한 데이터를 추상화시켜 행위와 상태를 가진 객체를 만들고

    객체들의 상호작용을 통해 로직을 구성한 프로그래밍 방법.

     

    캡슐화 : 데이터와 코드의 형태를 외부로부터 은닉하고, 데이터의 구조와 역할, 기능을 하나의 캡슐형태로 만드는방법

     

    상속 : 부모클래스에 정의된 변수 및 메서드를 자식 클래스에서 상속받아 사용하는 것.

    중복되는 코드의 재사용성을 위해사용

     

    추상화 : 클래스들의 공통적인 특성(변수,메소드)들을 묶어 표현하는 것.

     

    다형성 : 프로그램 언어 각 요소들(상수,변수,메소드 등)이 다양한 자료형(타입)을 가질수 있는 것


    5.MyBatis란?

    자바의 관계형 데이터베이스 프로그래밍을

    좀 더 쉽게 도와주는 프레임워크이다.

     

    기존 JDBC의 중복작업을 간소화해준다.

    또한, XML 파일 형태의 mapper를 통해 

    프로그램 코드로부터 SQL쿼리를 분리되는 환경을 제공한다.

     

    장점

    ○ 기존 JDBC보다 사용하기 편리

    ○ 복잡한 쿼리 또는 다이나믹한 쿼리를 지원

    ○ 프로그램 코드와 SQL쿼리의 분리로 간결성 및 유지보수성 향상

    ○ 빠른개발과 생산성 향상


    6. 오버 라이딩과 오버로딩?

     

    오버라이딩 : 상위 클래스의 메서드를 하위 클래스에서 재정의 하는 것.

     

    오버로딩 : 같은 클래스내에서 동일한 메서드의 이름을 가지지만,

    매개변수의 타입, 갯수를 다르게 구현하는것.


    7.  Java에서 제공하는 원시타입 종류와 몇바이트인지?

     

    정수형 : byte(1바이트) , short(2바이트), int(4바이트) , long(8바이트)

    실수형 : float(4바이트), double(8바이트)

    문자형 : char(2바이트)

    논리형 : boolean(1바이트)


    8. 지역변수와 인스턴스변수의 의미

     

    인스턴스 변수 : 클래스에서 정의되어 클래스

    전체의 영역 안에서 존재하게된다.

     

    지역변수 : 메서드 안에서 정의되어 메서드 안의 영역에서만 존재.


    9. 접근제어자 종류

     

    public : 접근제한이없다.

     

    protected : 같은 패키지내에서, 다른패키지의

    자손 클래스에서 접근이 가능하다.

     

    default : 같은 패키지내에서만 접근가능.

    private : 해당 클래스 내에서만 접근이 가능


    10. get과 post

     

    get: 서버에서 데이터를 가져올 때  사용한다.

    값이나 내용, 상태 등을 바꾸지 않는 경우에 사용을 하는 것입니다.

     

    전송 할 데이터를 url에 담는다.

    때문에 보안에 취약하다.

     

    post: 클라이언트에서 서버로 리소스를 생성하거나

    업데이트하기위해 데이터를 보낼 때 사용되는 메서드

     

    전송 할 데이터를 http body부분에 담아 서버로 보낸다.

    용량이 큰 데이터를 보낼 때 사용한다.

     

    차이점

    사용목적 : get은 데이터를 요청할 때 , post는 생성하거나

    업데이트할 때 사용한다.

     

    DB로 따지면 get은 select, post creat에 가깝다고 보면된다.


    11.MVC(Model View Controller)

     

    Model : 백그라운드에서 동작, 사용자가 원하는 데이터나 정보를 제공한다.

     

    데이터베이스에서 데이터를 가지고 올 수 있고

    데이터를 가지고 있을 수 있다.

     

    데이터베이스와 소통한다.

    컨트롤러에게 데이터를 전달한다.

     

     

     View : 사용자의 요청을 화면으로 출력한다.

                유저가 보는 화면을 보여주게하는 역할.

                컨트롤러와 소통한다.

     

     

    Controller : 사용자의 요청을 처리하고, 요청에 따른 전체적인 흐름을 제어한다.

                       뷰에서 액션과 이벤트에 대한 인풋값을 받는다.

                       모델에서 전달해주기 전에 데이터를 가공할 수 있다.

                       뷰와 모델에게 받은 데이터를 가공할 수 있다.


    12. MVC1 vs MVC2

     

    MVC1

     

    뷰와 컨트롤러의 역할이 합쳐져있다.

    JSP가 뷰와 컨트롤러 역할을 모두한다.

     

    1. 사용자 요청 

    2. JSP가 model에 요청

    3. model이 DB에 요청(쿼리)

    4. model이 jsp에 응답

    5. jsp가 사용자에게 응답.

     

    장점 : 상대적으로 설계가 간단하여 개발속도가

    빠르고 작은 프로젝트에 알맞다.

     

    단점 : Jsp에 java,html,css등의 코드가 섞여있어

    가독성이 좋지않고, 유지보수가 어렵다.


    MVC2

     

    JSP는 뷰의 역할만 하게하고, 컨트롤러 역할을 Servlet이 수행한다.

     

    1.사용자 요청

    2. Servlet(Controller)이 model에 요청

    3. model이 DB에 요청(쿼리)

    4.model이 Servlet(Controller)에 응답

    5.Servlet(Controller)이 JSP에 응답

    6.JSP(View)가 사용자에게 응답.


    13. 컴파일러와 인터프리터의 차이

     

    컴파일러 : 인간의 언어에 가까운 고급 언어를 기계어로 변환해주고, 한번에 번역을 한다.

    인터프리터 : 런 타임 이전의 기계어로 한 줄씩 번역을 한다.


    14. 동기처리와 비동기처리

     

    동기처리 : 요청과 결과가 동시에 이루어지는 것을 의미한다.

    설계가 간단하고 직관적이지만, 결과가 주어질 때 까지

    아무것도 하지못하고, 대기해야한다는 단점이 있다.

     

    비동기처리 : 요청과 결과가 동시에 일어나지 않는다.

     

    동기보다 복잡하지만, 결과가 나오기 전에 다른작업을 할 수 있어

    자원을 효율적으로 사용할 수 있다는 장점이 있다.


    15.SQL 구문

     

    select :

     

    ○ select 컬럼명 from 테이블명;

     

    ○ select 컬럼명 from 테이블명 whwer 조건;

     

    ○ select 컬럼명 from 테이블명 where 조건

    order by 컬럼명 ASC(오름차순) or DESC(내림차순);

     

    ○ select 컬럼명 from 테이블명 where 조건

    order by 컬럼명 ASC or DESC LIMIT 갯수;


    insert :

    ○ insert into 테이블명(컬럼명1,2,3) values(값1,2,3)

     

    ○ insert into values(값1,2,3) 

    =>컬럼명을 입력하지 않는 경우 모든컬럼의 값을 입력한다는 의미


    update :

    ○ update 테이블명 set 컬럼명 = 변경할 값

     =>테이블에 있는 모든 데이터의 컬럼 값을 변경.

     

    ○ update 테이블명 set 컬럼명 = 변경할 값 where 조건

    => where 조건에 해당하는 데이터만 변경             

     

    ○ update 테이블명 set 컬럼명1 =

    변경할 값1, 컬럼명2 = 변경할 값2 where 조건

    =>변경할 컬럼 여러개일 때

     


    delete :

    ○ delete from 테이블명

    ○ delete from 테이블명 where 조건 

    where 조건에 부합하는 데이터만 삭제한다.

     


    16. List 와 Map

     

    ○ Map : 검색할 수 있는 인터페이스,

    데이터를 삽입할 때 key 와 value의 형태로 삽입.

     

     key를 이용해서 value를 얻을 수 있다.

    데이터 순서를 보장하지않고, key값은 중복x , value 값은 중복 o

     

    ○ List : 순서가 있는 Collection 데이터 중복이 허용된다.

     

    차이점 : List는 순서를 보장하지만 Map은 순서를 보장하지 않는다.

     


    17.HTTP와 HTTPS의 차이점?

     

    ○ HTTP : 텍스트 기반의 통신규약으로 인터넷에서 데이터를

    주고받을 수 있는 프로토콜

     

     단점  : 암호화 과정을 거치지 않아, 보안에 취약하다.

     

    ○ HTTPS : HTTP의 단점을 보완하고자, HTTP에 암호화과정을 거친것.


    18.Join 문이란?

     

    한 데이터베이스 내의 여러 테이블의

    레코드를 조합하여 하나의 열로 표현한 것.

     

    서로 관계있는 데이터가 여러 테이블로 나뉘어 저장되므로

    각 테이블에 저장된 데이터를 효과적으로 검색하기 위해 사용한다.


    19.  Primary Key , Foreign Key

     

    ○ Primary Key(기본 키) : 후보 키 중에서 선정된 키.

    유일성 O, 최소성 O, Null값을 가질 수 없음.

     

    ○ Foreign Key(외래 키 ) : 다른 테이블의 Primary Key를 참조하는 컬럼

     

    기본키 외래키
    테이블의 레코드를 고유하게 식별한다 테이블 간의 관계를 설정하고 다른 테이블의 기본 키 이다.
    테이블에는 기본키가 하나만 존재. 테이블에는 여러 외래키가 존재할 수 있다.
    Null값을 가질 수 없다. Null 값을 가질 수 있다.
    중복값을 가질 수 없다. 중복 값을 가질 수 있다.

    20. 클래스 와 객체란?

     

    ○ 클래스 : 객체를 정의하는 틀 또는 설계도와 같은 의미

     

    ○ 객체 : 설계도로 구현한 모든 대상

    자신의 속성을 가지고 있고, 다른 것과 식별 가능한 것을 말한다.

    728x90

    '개발 > 알아둘 기본 개념' 카테고리의 다른 글

    SQL이란?  (0) 2023.08.15
    HTTP 프로토콜  (0) 2023.06.30
    RestAPI  (0) 2023.05.22
    프론트엔드 로드맵  (0) 2023.05.16
    프론트엔드 면접준비(질문 및 답변)  (0) 2023.05.15

    댓글

Designed by Tistory.