JPA ORM(Object-Relational Mapping) -JPA_performance

안녕하세요. 오늘은 JPA ORM 사용시 JPA_performace를 높이는 방법을 알려드리고자 합니다. 어제는 JPA 사용하는 방법의 엔티티 그래프와 QueryDSL를 설명했습니다. 기술적인 사용을 알게되면 어떻게 효율적으로 ORM을 사용할까라는 고민을 할 수 있습니다. 그러한 방법에 대해서는 여러가지가 있습니다. 지연 로딩과 즉시 로딩의 적절한 사용: JPA에서는 지연 로딩(Lazy loading)과 즉시 로딩(Eager loading)을 선택할 수 있습니다. 지연 로딩은 연관된 엔티티를 실제로 … Read more

JPA ORM(Object-Relational Mapping) -1

안녕하세요. 오늘은 JPA를 사용하면서 공부했던 내용을 적어보고자 합니다. Named 엔티티 그래프 Named 엔티티 그래프는 JPA(Java Persistence API)에서 사용되는 기능 중 하나로, 엔티티와 그와 연관된 속성들을 명시적으로 로딩하는 방법을 지정하는 기능입니다. 이를 통해 성능 최적화와 불필요한 데이터 로딩을 방지할 수 있습니다. 보통 JPA를 사용하여 엔티티를 조회하면, 모든 연관 관계(Eager 또는 Lazy)가 로딩됩니다. 하지만 모든 경우에 모든 … Read more

Stream Chat React

오늘은 Stream Chat React으로 채팅을 만들어보려고 합니다. Stream Chat는 사용자에게 채팅 API와 SDK를 제공하여 맞춤형 메시징 애플리케이션을 구축할 수 있도록 도와주는 도구입니다. 이를 통해 사용자는 빠르게 실시간 채팅을 구축할 수 있으며, 높은 신뢰성을 가진 채팅 인프라를 통해 쉽게 앱 내 메시징 기능을 제공할 수 있습니다. 실습방법 How to Create a Stream Application (스트림 어플리케이션을 생성하는 … Read more

React 채팅웹 만들기 [토이프로젝트-3, 개요]

오늘은 React 채팅웹 만들기 해보려고 합니다.   채팅을 구현하기 위해서는 통신 프로토콜이 중요합니다.   기본적으로 채팅을 하려면 아래와 같은 통신 프로토콜이 필요합니다. Firebase: Firebase는 RESTful API를 통해 데이터를 전송합니다. 클라이언트에서 HTTP 요청을 보내고, 서버에서 HTTP 응답을 받는 방식입니다. 푸시어로: 푸시어로는 WebSocket 프로토콜을 사용하여 양방향 실시간 통신을 지원합니다. 클라이언트와 서버 간에 영구적인 연결을 유지하며 데이터를 양방향으로 … Read more

aws elasticache vs Redis [AWS-1]

오늘은 aws elasticache와 Redis를 비교해보겠습니다. 이 두 서비스는 모두 관리형 Redis 인스턴스를 제공하지만, 각각의 특징, 사용 사례 및 고려 사항들이 다릅니다. Redis 개발자들을 매료시킨 성능과 단순성, 인 메모리 기능 덕분에 가장 인기있는 키-밸류 스토어로 자리잡고 있다. 놀랍도록 빠른 속도 덕분에 Redis는 캐싱 활용 사례로 사실상 인정받고 있다. 인 메모리 데이터 구조에 대한 많은 지원 덕분에 실시간 … Read more

코딩테스트-2

코딩테스트-2 차에는 LinkedList에 대해서 코드로 구현해 보겠다.   구현 방식은 위에 있는 작업 방식대로 SingleLinkedList와 DoubleLinkedList로 나뉘어서 만들어보겠다.   싱글 링크드 리스트(단순 연결 리스트) 데이터 구조는 노드를 기준으로 여러 개의 노드를 순서대로 연결하여 저장한다. 각각의 노드들은 Head Node를 시작으로 Data와 다음 노드를 연결하는 주소값이 저장되어 있다. 밑에 있는 코드는  노드 생성  싱글 링크드 리스트 생성  싱글 … Read more

코딩테스트-1

코딩테스트에 대해서 글을 작성해보고자 한다. ArrayList, LinkedList 관련해서 작성 하려고 합니다. 그날 공부한 내용을 블로그+Git + Jupyter Notebook을 선택해서 기록하기로 했다. 일단 코테를 공부하기 전에 기본 자바문법을 숙지한 상태에서 공부를 시작하였다. 매일 포스팅할 내용은 남을 위해 보여주기 보다는 어떤 공부를 했고 그리고 어떤식으로 숙지했는지 기록용도로 적어보고자 한다. 그래서 남이 보기엔 When, What, How를 기초에서 적지 않아 … Read more

Docker COMPOSE

오늘은 Docker COMPOSE를 하려고 합니다. (터미널 환경 Only!!!) Docker 설치하기  -이미 설치 했다면 윈도우 혹은 맥에 cmd 혹은 terminal에서 docker-compose -v 명령어를 확인한다 설치가 안되어 있을 경우 https://github.com/docker/compose/releases 접속하여 운영체제 맞는 것으로 설치한다. PIP이 설치되어 있다면 PIP을 이용해서 명령어 으로 설치한다. pip install -U docker-compose Docker compose 파일을 자신의 운영체제 시스템에 어떤 위치에든 docker-compose.yml 작성한다. linux명령어 기준으로 … Read more

프로그래머스 – 1 SQL 고득점 Kit

오늘은 프로그래머스에서 SQL 고득점 Kit 를 풀어보고자 합니다. 첫번째 문제입니다. SELECT ANIMAL_TYPE, IFNULL(NAME, ‘No name’) As NAME, SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC; 두번째 문제입니다. SELECT A.ANIMAL_ID AS ANIMAL_ID, A.NAME AS NAME FROM ANIMAL_OUTS AS A WHERE A.ANIMAL_ID NOT IN (SELECT B.ANIMAL_ID FROM ANIMAL_INS AS B) ANIMAL_ID JOIN 을 안쓰고 NOT EXIST 문법으로 해결해보았다 문제가 … Read more

스프링부트 배포 – 토이프로젝트-1

안녕하세요. 오늘은 스프링부트 배포에 대해서 알려 드리겠습니다. 개발 환경은 인텔리J와 SpringBoot 프레임워크에 gradle 방식이다. 이렇게 프레임워크를 선택한 이유는 배포가 굉장히 쉽기 때문이다. start.spring.io 사이트에 접속해서 간단한 프로젝트를 생성합니다. . intellij 를 설치합니다.  build.gradle에서 Name과 버전, 파일 네임을 설정할 수 있다.윗 사진처럼 따로 설정이 없으면 프로젝트+버전 으로 생성된다. bootJar{ archiveBaseName=’-‘ archiveFileName=’-.jar’ archiveVersion= “0.0.0” } test { useJUitPlatform() … Read more