Published 2023. 4. 5. 17:03

✔ 직렬화 ( Serialization ) 

 객체의 상태 혹은 데이터 구조를 기록할 수 있는 포맷으로 변환해줌
 나중에 재구성 할 수 있게 자바의 객체를 JSON 으로 변환해주거나 , JSON을 자바객체로 변환해주는 라이브러리 

 

✔ Hash란 ? 

 데이터 삽입 및 삭제시, 기존 데이터를 밀어내거나 채우지 않고 데이터와 연관된 고유한 숫자를 생성해 인덱스로 사용하는 방법, 검색속도가 매우 빠름 

 

✔ 배열과 연결리스트의 차이? 

배열은 인덱스를 가지고, 원하는 데이터를 한번에 접근하기 때문에 접근속도가 빠름  
but 크기 변경이 불가능하며, 데이터 삽입 및 삭제시 그위치의 다음 위치부터 모든 데이터 위치를 변경해야함

연결리스트는 인덱스 대신 현재 위치의 이전/ 다음위치를 기억함
크기는 가변적, 인덱스 접근이 아니기 때문에 연결되어 있는 링크를 쭉 따라가야 접근이 가능 (배열보다 속도느림) 
데이터 삽입 및 삭제가 용이  
 - 데이터 양이 많고 삽입/삭제가 없음. 데이터 검색을 많이 해야할  때 -> Array
- 데이터 양이 적고 삽입/삭제가 빈번함 -> LinkedList

 

✔ 메모리 , 성능을 개선하기 위해 생각나는 방법은? 

 static을 사용해 선언한다 
 인스턴스 변수에 접근할 일이 없으면, static메소드를 선안하여 호출 
모든 객체가 서로 공유할 수 있기 때문에 메모리가 절약되고 연속적으로 그 값의 흐름을 이어갈 수 있는 장점

 

✔ 클래스와 구조체의 차이 ?

구조체는 하나의 구조로 묶일 수 있는 변수들의 집합

클래스는 변수뿐만아니라, 메소드도 포함 시킬수 있음 

 

 

✔ 프로레스와 스레드의 차이 

프로세스는 메모리상에서 실행중인 프로그램을 말하며, 스레드는 이 프로세스 안에서 실행되는 흐름 단위 

프로세스 마다 최소 하나의 스레드를 보유, 각각 별도의 주소공간을 독립적으로 할당받음 (code, data, heap, stack)

스레드는 이중에 stack만 할당받고, 나머지 영역은 스레드끼리 서로 공유함 

>> 프로세스 : 자신만의 고유 공간과 자원을 할당받아 사용
      스레드 : 다른 스레드와 공간과 자원을 공유하면서 사용 

 

✔ 오라클 시퀀스 

unique한 값을 생성해주는 오라클 객체 , pk와 같이 순차적으로 증가하는 컬럼을 자동생성 

 

✔ DBMS의 기능은?

- 정의 기능 (DDL : Data Definition Languae) 

데이터 베이스가 어떤 용도이며, 어떤 식으로 이용될 것에 대한 정의  ( CREATE, ALTER, DROP, RENAME)

- 조작기능 (DML: Data ManipulationLangauge)

데이터 베이스를 만들었을때 그 정보를 수정하거나 삭제, 추가 검색할 수 있어야함 ( SELECT,INSERTM, UPDATE, DELETE) 

-제어기능 (DCL: Data Control Language) 

데이터 베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어 ( GRANT, REVOKE)

 

✔ UML이란?

프로그램 설계를 표현하기 위해 사용하는 그림으로된 표기법. 이해하기 힘든 복잡한 시스템을 의사소통하기 위해 만듦

 

✔ VIEW란 ? 

허용된 데이터를 제한적으로 보여주기 위한것, VIEW에 나타나지 않는 데이터를 간편히 보호할 수 있는 장점 존재 

 

 

✔ 정규화란? 

중복을 최대한 줄여 데이터를 구조화하고, 불필요한 데이터를 제거해 데이터를 논리적으로 저장하는 것 , 

 

 

✔ 데이터 베이스를 설계할때 가장 중요한것? 

무결성을 보장해야함 

* 무결성이란?  테이블에 있는 모든 행들이 유일한 식별자를 가질 것을 요구 외래키 값은 NULL이거나 참조테이블이 PK값이어야함 , 한 컬럼에 대해  NULL허용 여부와 자료형, 규칙으로 타당한 데이터 값 지정 

(데이터를 조작하는 프로그램 내에서 데이터 생성, 수정, 삭제시 무결성 조건을 검증함)

 

✔트리거란? 

자동으로 실행되도록 정의된 저장 프로시저 (INSERT, UPDATE,DELETE문에 대한 응답을 자동으로 호출) 
- 업무 규칙 보장, 업무처리 자동화, 데이터 무결성 강화

 

✔ 오라클과 MY SQL의 차이는?

오라클: 대규모 트랜잭션 로드를 처리하고, 성능 최적화를 위해 여러 서버에 대용량 DB를 분산함

MY SQL: 단일 데이터베이스로 제한되어 있고 , 대용량 데이터베이스로는 부적합, 작은 프로젝트에서 적용시키기 용이하며 , 이전상태를 복원하는데 COMMIT과 ROLLBACK만이 존재 

 

✔ Commit과 Rollback이란?

Commit : 하나의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝났을 때, 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산

Rollback : 하나의 트랜잭션 처리가 비정상적으로 종료되어 DB의 일관성을 깨뜨렸을 때, 모든 연산을 취소시키는 연산

 

✔ index란 ? 

 책의 목차 / DBMS에서 저장 성능을 희생하여 데이터 읽기 속도를 높이는 기능

B+- Tress 인덱스 : 원래의 값을 이용하여 인덱싱 
Hash인덱스 : 칼럼값으로 해시 값 계산하여 인덱싱, 메모리 기반 DB에서 많이 사용 

 

✔ get과 post의 차이

http 프로토콜을 이용해 서버에 무언가 요청할때 사용하는 방식

GET : url을 통해 모든 파라미터를 전달하기 때문에 주소창에 전달값이 노출 , 길이제한, 인코딩 필요

POST: HTTP BODY에 데이터를 포함해서 전달

 

✔ Annotation

소스 코드에 @ 어노테이션 형태로 표현하며 클래스,필드,메소드의 선언부에 적용할 수있는 특정기능이 부여된 표현법 

애플리케이션 규모가 커질수록 xml환경설정이 매우 복잡해지는데 이런 어려움을 개선시키기위해 자바 파일에 어노테이션을 적용해서 개발자가 설정파일작업을 할때 발생시키는 오류를 최소화해줌. 

  • @Autowired : 자동으로 의존성 주입하기 위한 어노테이션

 

✔ MyBatis

객체, 데이터베이스, Mapper 자체를 독립적으로 작성하고, DTO에 해당하는 부분과 SQL실행결과를 매핑해서 사용할 수 있도록 지원 

기존에는 DAO에 모두 sql문이 자바 소스상에 위치했으나, MyBatis를 통해 SQL은 XML 설정파일로 관리
설정파일로 분리하면, 수정할 때 설정파일만 건드리면 되므로 유지보수에 좋음,

복사했습니다!