목록분류 전체보기 (37)
백엔드 개발 공부 일지

● 웹소켓이란? HTML5 표준 기술로, HTTP 환경에서 클라이언트와 서버 사이에 하나의 TCP연결을 통해 실시간으로 전이중 통신을 가능하게 하는 프로토콜이다. TCP 블로그 : https://velog.io/@seaworld0125/WEB-TCP%EB%9E%80 전이중 통신 : 일방적인 송신 또는 수신만이 가능한 단방향 통신고 ㅏ달리 가정에서의 전화와 같이 양방향 송신과 수신이 가능한것을 말함 실시간 알림, 실시간 채팅 등 실시간이라는 키워드가 들어가는 기능들을 위해서는 대부분 웹소켓 기술이 필요하다. ● 웹소켓의 통신 방식 웹 소켓은 전 이중 통신이므로, 연속적인 데이터 전송의 신뢰성을 보장하기 위해 Handshake 과정을 진행한다. 기존의 다른 TCP 기반의 프로토콜은 TCP layer에서의 H..

● Spring Data JPA Spring Data JAP는 Spring Framework에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트로서 CRUD처리를 위한 공동 인터페이스를 제공한다. Repository 개발 시 인터페이스에만 작성하면 실행 시점에 Spring Data JPA가 구현 객체를 동적으로 생성해서 주입시키므로 데이터 접근 계층을 개발 할 떄 구현 클래스 없이 인터페이스만 작성해도 개발을 완료할 수 있도록 지원한다. Spring Data JPA를 사용하기 위해 일반적으로 'JpaRepository' 인터페이스를 상속한 Repository 인터페이스를 정의한다. 단지 인터페이스를 상속했을 뿐인데, 기본적인 메서드를 이미 장착한 상태이고, 심지어 정의한 인터페이스를 구현할 필요가 ..
● JPQL 이란? JPA만의 기술을 사용했을 때는 DB의 데이터 조회를 식별자를 통한 조회와 객체 그래프를 통한 탐색만 가능하다. 식별자를 통한 조회 : em.find() 객체 그래프 탐색: a.getB().getC() 하지만 두가지 조회 방법으로만 어플리케이션 개발을 한다면 모든 엔티티를 메모리에 올려두고 애플리케이션에 필터링 하는 등의 성능 낭비가 발생한다. 이러한 낭비를 막으려면 데이터 베이스에서 상황별 조건에 맞게 필터링하여 데이터를 가져올 기술이 필요하다. JPA는 이러한 기능 제공을 위해 JPQL을 제공하고 있다. JPQL은 Java Persistence Query Language의 약자로 JPA에서 SQL을 추상화하여 만든 객체 지향 쿼리 언어이다. SQL을 추상화 하였기에 특정 데이터베이..

◆ JPA 란? JPA는 Java Persistence API 의 약자로서, RDBMS와 OOP 객체 사이의 불일치에서 오는 패러다임을 해결하기 위해서 만들어진 ORM (Object-Relational Mapping) 기술이다. ORM이란 Object Relation Mapping, 객체-관계 매핑의 줄임말로서 OOP 객체 구현 클래스와 RDBMS에서 사용하는 테이블을 자동으로 매핑하는 것을 의미한다. 이 때, 클래스와 테이블은 기존부터 호환 가능성을 두고 만들어진 것이 아니므로 불일치가 발생하는데 이를 ORM을 통해서 객체 간의 관계를 바탕으로 SQL 문을 자동으로 생성하여 불일치를 해결한다. 이 방법을 통해서 SQL문을 구현할 필요없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있다. JPA는 ..
● 컬렉션 프레임 워크 우리가 사용하는 프로그램은 대부분 데이터를 사ㅏ용하여 구현한다. 메일 시스템은 메일을, 채팅앱은 친구 목록과 채팅 내용등을 관리한다. 프로그램을 실행할 때 데이터를 효율적으로 관리하기 위해 자료구 조를 사용한다. 이 포스트에서는 자료 구조를 구현한 다양한 인터페이스와 클래스를 소개한다. 1. 제네릭 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍 하는 것을 '제네릭 프로그래밍'이라고 한다. 우리가 학습할 컬렉션 프레임워크에서도 많은 부분이 제네릭으로 구현되어 있다. 제네릭 클래스 정의 제네릭에서는 여러 참조 자료형을 사용해야하는 부분에 Object가 아닌 하나의 문자로 표현합니다. public class GenericPrinter { priva..