2023. 1. 30. 01:16ㆍJAVA & Kotiln/etc.
# 객체지향 프로그래밍이란?(OOP)
- 현실 세계에 객체를 컴퓨터 메모리 상에서 구현하기 위한 프로그래밍 기법
- 특징 : 다형성, 상속, 추상화, 캡슐화
# Overloading 과 Override의 차이점
- Overloading : 메소드 다중 정의
> 동일한 이름의 파라미터가 다른 메소드를 여러 개 정의하는 것
> 파라미터의 갯수 또는 타입을 달리해야함
- Override : 상속받은 메소드를 재정의 하는 것
> 메소드명과 파라미터 타입 및 갯수, 리턴타입 변경 불가
> 내부 기능만 재정의 가능
# 추상클래스란?
- 우리가 지금 까지 사용해왔던 일반적인 클래스는 구체적(concrete)으로 데이터를 담아 인스턴스화 하여 직접 다루는 클래스이다. 그 반대로 추상 클래스는 구체적이지 않은 추상적인(abstract) 데이터를 담고 있는 클래스이다.
그래서 추상 클래스는 일반 클래스와 달리 인스턴스 화가 불가능한 클래스이며, 추상 클래스를 선언 할때는 abstract 키워드를 사용한다는 차이점이 있다
# 클래스와 인스턴스의 차이점
- 클래스 : 객체를 구현하기 위한 설계도와 같다.
- 인스턴스 : 해당 클래스를 메모리 내의 실체로 구현
# Reflection이란?
-구체적인 클래스 타입을 알지 못해도 그 클래스의 메소드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API
- 리플렉션은 힙 영역에 로드된 Class 타입의 객체를 통해, 원하는 클래스의 인스턴스를 생성할 수 있도록 지원하고, 인스턴스의 필드와 메소드를 접근 제어자와 상관 없이 사용할 수 있도록 지원하는 API이다.
# Spring JPA
https://engkimbs.tistory.com/category/Spring/Spring%20JPA?page=2
# JVM이란?
- 자바 가상 머신(Java Virtual Machine)
> 자바소스로부터 만들어진 바이너리파일 즉 [.class]파일을 실행하기 위해 필요합니다. java가 OS에 구애받지 않고 재사용가능하게 해줍니다. 그리고 자동메모리관리기법인 Garbage Collection을 수행합니다.
# Session과 Cookie의 차이
- Session : 세션은 일정시간동안 같은 브라우저로 들어오는 일련의 요구사항을 하나의 상태로 보고 그 상태를 유지하는 기능입니다. 서버에 오브젝트 형식으로 저장되며 브라우저 종료 시 사라진다
- Cookie : 쿠키는 클라이언트의 로컬에 저장되는 키와 값의 작은 데이터입니다. 텍스트 형식으로 저장되며, 브라우저 종료시에도 로컬에 남아있고 도메인당 20개, 쿠키당 4kb의 제한이 있다
> 쿠키는 서버의 부하를 줄이고자 보안상 중요하지 않은 데이터를 사용자 컴퓨터에 저장
> 보안에 취약하다
# Restful Api란?
RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스
Http 프로토콜을 더 유연하게 사용하며 서버의 자원을 추가, 수정, 삭제, 업데이트 할 수 있도록 하는것.
# Spring Framework의 특성
- IOC : 제어의 역행 , 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라 Framework에서 결정
- DI : 의존성 주입, 제어의 역행으로 인해 특정 객체에 필요한 의존성을 Framework에서 결정하여 주입
- AOP : 관점지향프로그래밍, 특정 비즈니스 로직이 동작하는 과정에 외부(공통모듈)기능이 특정 시점에서 동작하게 설정 가능한 프로그래밍 기법이다. (재사용에 용이)
# TCP vs UDP
- TCP : 연결형 서비스를 지원하는 전송 프로토콜, 호스트간 신뢰성 있는 데이터 전달과 흐름제어 및 혼잡제어 등을 제공
- UDP : 비연결형 서비스를 지원하는 전송 프로토콜, TCP보다 속도가 빨라 신뢰성을 요구하지 않는 데이터 전송에 용이하다
# Git 이란? 사용이유
- Git은 형상관리 도구중 하나이다. 소스코드를 효과적으로 관리 할 수 있게 해주는 무료 공개 소프트 웨어
- GitHub는 local에서 관리한 소스코드를 업로드하고 공유할 수 있는 공간.
# 변수란?
- 데이터를 담는 공간 , 한번에 하나의 데이터만 저장 가능
- 기본형과 참조형으로 구분
- 선언 , 초기화 과정을 거쳐서 사용 가능
# 참조형 변수와 기본형 변수의 차이점
- 기본형 변수는 실제 사용되는 데이터가 저장된다
- 참조형 변수는 실제 데이터(객체)의 위치를 담은 주소값이 저장된다
# 배열이란?
- 같은 데이터 타입의 데이터를 연속된 공간에 저장하는 구조
- 힙 영역에 배열이 생성되고, 새엉된 배열의 주소를 사용하여 데이터에 접근(참조형)
- 한 번 생성된 배열의 크기는 변경이 불가능
# 힙과 스택의 차이점
- Heap : 힙은 동적메모리를 사용하여 런타임시 메모리영역을 원하는 크기로 잡을 수 있다.
- Stack : 스택은 정적메모리를 사용하여 컴파일 시 크기가 정해져있다.
# 람다(lamda)식 이란?
- 식별자 없이 실행이 가능한 함수. 익명함수를 의미한다.
- JAVA 8 버전부터 지원한다.
- 장점 : 코드가 간결해 가독성이 좋다
- 단점 : 재사용이 불가능하고 디버깅이 어렵다.
참고 링크
- https://itellyhood.tistory.com/48
- https://haejun0317.tistory.com/238
'JAVA & Kotiln > etc.' 카테고리의 다른 글
| [TS] PropertyNamingStrategy deprecated. (since 2.12) (0) | 2023.03.24 |
|---|