전체 글
-
JPA와 Hibernate, Spring data JPA🌱 spring 2022. 10. 10. 22:21
ORM ❓ ORM (Object Relational Mapping) 객체 관계 매핑 객체가 테이블이 되도록 매핑시켜주는 프레임워크 프로그램의 복잡도를 줄이고 자바 객체와 쿼리를 분리할 수 있어 트랜잭션 처리나 DB관련 작업들을 좀 더 편리하게 처리할 수 있다. SQL Mapper vs ORM SQL Mapper SQL ← mapping → 객체 Mybatis의 프레임워크 SQL Mapper는 SQL문으로 직접 DB를 조작한다. 직접 SQL문을 작성해 복잡한 쿼리도 처리할 수 있다. 관계를 직접 명시할 수 있다. 단점 SQL문을 직접 작성해야 한다. 객체모델과 관계 모델을 각각 개발해야해서 유지보수가 힘들다. DBMS마다 SQL문이 달라 DBMS에 종속적이다. ORM DB 데이터 ←mapping→ 객체 객..
-
CheckedException 과 UncheckedException☕️ java 2022. 10. 10. 14:57
에러(Error) 와 예외(Exception) 에러(Error)는 시스템에 비정상적인 상황이 발생한 경우를 말한다. 시스템이 종료되어야 할 수준의 상황 애플리케이션 코드에서 잡을 수 없다. → 개발자가 미리 예측하여 방지할 수 없다. ex) OutOfMemoryError, ThreadDeath, StackOverflowError 등 예외(Exception)은 개발자가 구현한 로직에서 발생한 실수 또는 사용자의 영향에 의해 발생한다. 개발자가 **미리 예측하여 방지할 수 있기에 상황에 맞는 예외처리(Exception Handle)**를 해야한다. Checked Exception과 Unchecked Exception으로 구분할 수 있다. ✔️ Checked Exception RuntimeException을 ..
-
가비지 컬렉션(GC) ❓☕️ java 2022. 10. 10. 13:40
🗑️ Garbage Collection (GC) 가비지 컬렉션은 자바의 메모리 관리 방법중 하나이다. JVM의 Heap 영역에서 동적으로 할당했던 메모리 영역중 필요없게된 메모리 영역을 주기적으로 삭제하는 프로세스 C 나 C++에서는 이런 가비지 컬렉션이 없어 프로그래머가 수동으로 메모리를 할당하고 해제해줘야 한다. 반면, Java는 JVM에 탑재되어 있는 가비지 컬렉터가 메모리 관리를 대신해주어 개발자는 메모리 관리 메모리 누수(memory leak) 문제에 대해 완벽하게 관리하지 않아도 되고 개발에 집중할 수 있다. 메모리 누수 (memory leak) 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상 할당된 메모리를 사용한 다음 반환하지 않고 누적이 되어 메모리 누수 발생 장 / 단점 장점..
-
Java version 별 특징☕️ java 2022. 10. 9. 20:01
Java 8 Lambda stream interface default method Optional new Date, Time API Lambda Java 8 이전 익명 클래스의 사용을 람다를 이용해 더 간결하고 직관적으로 구현을 할 수 있게 되었다. 람다식 (Lambda Expression) 함수를 하나의 식(expression)으로 표현한 것이다. 함수를 람다식으로 표현을 하면 메소드 이름이 필요 없어, 람다식은 익명 함수의 한 종류라고 볼 수 있다. 불필요한 코드를 줄이고, 가독성을 높였다. 함수형 인터페이스의 인스턴스를 생성하여 함수를 변수처럼 선언한다. Runnable runnable = () -> System.out.println("Hello, World!"); Stream Java 8은 str..
-
HTTPS💻 computer science/🌐 network 2022. 10. 9. 19:34
HTTP HTTP (Hyper Text Transfer Protocol) 서버 / 클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜 80번 포트 사용 HTTP 특징 애플리케이션 레벨의 프로토콜 TCP/IP 위에서 작동 Stateless 프로토콜 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜 중요 내용을 주고 받으면 제 3자가 정보를 조회할 수 있다 HTTPS HTTPS (Hyper Text Transfer Protocol Secure) HTTP에 데이터 암호화가 추가된 프로토콜 443번 포트 사용 네트워크 상에서 중간에 제 3자가 정보를 볼 수 없도록 암호화를 지원 SSL / TLS SSL (Secure Socket Layer) 암호화 기반 인터넷 보안 프로토콜 전달되는 모든 데이터를 암호화..
-
TCP / UD💻 computer science/🌐 network 2022. 10. 9. 19:28
TCP (Transmission Control Protocol) 💡 인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 특징 연결 지향형 프로토콜 (1:1 연결) 3-way handshaking 과정을 통해 연결 설정, 4-way handshaking 을 통해 해제 높은 신뢰성 보장 흐름 제어 및 혼잡 제어 전이중, 점대점 방식 3-way handshaking 클라이언트와 서버가 통신할 때 3단계의 과정을 거친다. SYN 단계 클라이언트 → 서버 ISN을 담아 SYN을 보낸다. SYN + ACK 단계 클라이언트의 SYN을 수신하고 서버의 ISN을 보낸다. 승인번호로 클라이언트의 ISN + 1을 보낸다. ACK 단계 클라이언트는 서버의 ISN + 1한 값을 승인번호로 담아 A..
-
OSI 7 계층 과 TCP/IP 계층💻 computer science/🌐 network 2022. 10. 9. 19:26
계층 모형 현재의 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 통신규약(프로토콜)의 모음 각 계층은 담당하는 위치마다 처리 역할을 구분해 진행한다. 서로 간의 간섭을 최소화해 사용의 편리성을 높인다. 특정 계층에서 이상이 생겨도 문제 있는 계층만 고쳐서 문제를 해결할 수 있다. 통신이 일어나는 과정을 단계별로 파악하기 용이하다. 다른 계층끼리는 데이터의 전달 과정을 구체적으로 알 필요가 없기 때문에, 데이터의 캡슐화와 은닉이 가능하다. OSI 7계층 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것. 네트워크 호환을 위해 OSI 7계층이라는 표준 네트워크 모델을 만들었다. 실제로는 OSI 7 Layer model 이 아닌 TCP/IP 가 표준 1. 물리 계층 전기적, 기계적, 기능적인 특성을..
-
HTTP💻 computer science/🌐 network 2022. 10. 9. 19:21
HTTP 🌐 HyperText Transfer Protocol 웹 서버와 웹 브라우저 사이에서 데이터를 주고 받기 위한 통신 규약 서버 / 클라이언트 모델을 따른다. Application layer로 TCP/IP 위에서 작동한다. 동작하는 환경 / 구조 HTTP는 기본적으로 Server - Clinet 환경에서 동작한다. 애플리케이션 영역에서 사용되는 프로토콜이고 주로 TCP을 사용하는 환경에서 사용된다. 클라이언트는 서버로 요청 Request를 전송하고 서버는 요청에 대한 응답 Response 를 함으로써 통신을 하게 된다. 특징 1. 클라이언트 서버 구조 클라이언트가 서버에 요청을 보내면 서버는 그에 대한 응답을 보내는 클라이언트 서버 구조 Request - Response 클라이언트는 서버에 요청을..