분류 전체보기 112

[JPA] JPA 엔티티 기본 매핑 어노테이션 완벽 정리

01 엔티티 매핑이란?JPA에서 엔티티는 데이터베이스 테이블과 매핑되는 객체입니다.엔티티 매핑은 객체 중심의 프로그래밍과 관계형 데이터베이스의 데이터를 연결하는 핵심 요소로, 객체와 테이블 간의 매핑을 설정해줍니다.이를 통해 개발자는 SQL을 직접 작성하지 않고도 객체를 통해 데이터베이스를 다룰 수 있습니다.이번 글에서는 기본적인 매핑 어노테이션을 정리해보겠습니다.02 @Entity와 @Table1. @Entity@Entity는 JPA에서 엔티티 클래스를 정의하는 데 사용됩니다. 이 어노테이션이 선언된 클래스는 데이터베이스 테이블과 매핑됩니다.속성name : JPA에서 사용할 엔티티 이름을 지정합니다. 기본값은 클래스 이름과 동일합니다.주의사항기본 생성자가 반드시 필요합니다.final, enum, int..

BackEnd/JPA 2024.12.20

[네트워크] HTTP의 정의와 HTTP 메서드의 속성

웹 개발에서 HTTP는 클라이언트와 서버 간 데이터를 주고받는 가장 기본적이고 중요한 프로토콜입니다.하지만 HTTP 메서드의 속성과 올바른 활용 방안을 충분히 이해하지 못하면, 예상치 못한 오류가 발생할 수 있습니다.특히, 안전성, 멱등성, 그리고 캐시 가능성과 같은 HTTP 메서드의 속성은 RESTful API 설계와 성능 최적화에서 핵심적인 역할을 합니다.이 글에서는 HTTP 메서드와 그 속성을 살펴보고, 각 속성을 기반으로 메서드를 어떻게 활용할 수 있는지 정리해보겠습니다.01 HTTP란1. HTTP의 정의HTTP(HyperText Transfer Protocol)는 클라이언트-서버 모델을 기반으로 동작하는 웹 통신 프로토콜입니다.클라이언트가 요청(Request)을 보내면 서버가 응답(Respons..

[Docker] 도커를 시작해야 하는 이유

소프트웨어 개발에 있어 다양한 환경에서 일관되게 동작하는 애플리케이션을 만들기는 어렵습니다.이러한 문제를 해결하기 위해 등장한 도구가 바로 "도커"입니다.도커는 컨테이너 기술을 기반으로 애플리케이션의 개발, 배포, 실행을 편리하게 만들어줍니다.이 글에서는 도커가 무엇인지, 도커를 배워야 하는 이유, 그리고 도커가 가져온 혁신에 대해 알아보겠습니다.01 컨테이너란 무엇인가?도커는 컨테이너 기술을 기반으로 하는 도구입니다.컨테이너란 애플리케이션과 해당 애플리케이션의 실행에 필요한 라이브러리, 종속성, 설정 파일 등을 패키지화한 가상화 기술입니다.이를 통해 컨테이너는 어떤 환경에서도 동일하게 실행될 수 있습니다.컨테이너 이전에 사용되던 가상머신(VM)과 비교해볼 수 있는데,VM은 OS 전체를 포함한 무거운 구..

BackEnd/Docker 2024.12.18

[JPA]JPA와 영속성 컨텍스트

JPA는 객체와 데이터베이스 사이에서 데이터를 효율적으로 관리해주는 기술입니다.이때 핵심 역할을 하는 것이 영속성 컨텍스트입니다.영속성 컨텍스트는 엔티티를 저장하고 관리하는 메모리 공간으로, 객체의 상태를 추적하고 데이터베이스와의 동기화를 돕습니다.이 글에서는 영속성 컨텍스트의 개념과 엔티티의 생명주기, 그리고 1차 캐시, 변경 감지, 쓰기 지연 등 주요 특징을 정리해보겠습니다.01 엔티티 매니저 팩토리와 엔티티 매니저지난번 JPA를 시작하며 엔티티 매니저 팩토리를 통해 엔티티 매니저를 생성하는 과정을 거쳤습니다.//엔티티 매니저 팩토리 생성EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");//엔티티 매니저 생성Ent..

BackEnd/JPA 2024.12.17

[네트워크] TCP 기반 웹소켓 기술

최근 네트워크 계층에 대해 공부하면서,데이터를 안정적이고 효율적으로 주고받는 데 중요한 역할을 하는 전송 계층에 대해 깊이 이해하게 되었습니다.특히, 전송 계층에서 제공하는 TCP 기반의 통신 방식을 활용한 기술 중 하나인웹소켓(WebSocket)은 실시간 애플리케이션에서 필수적인 도구로 자리 잡고 있습니다.이번 글에서는 전송 계층의 기본 개념을 바탕으로, 제가 최근 프로젝트에서 직접 활용했던 웹소켓 기술에 대해 정리해보고자 합니다.1. 전송 계층이란?1.1 네트워크 계층 vs전송 계층네트워크 계층은 데이터를 목적지에 전달하기 위해 경로를 결정하는 역할을 합니다.반면, 전송 계층은 이 데이터를 애플리케이션 계층에 적절히 전달하며 신뢰성을 보장합니다.네트워크 계층의 주요 기능: 패킷 포워딩, 라우팅전송 계..

[JPA] SpringBoot + JPA 시작하기

JPA는 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스입니다.즉, 구현을 하기 위해서는 라이브러리를 선택해야 하는 것입니다.일반적으로 JPA에서는 Hibernate를 구현체로 선택하는 경우가 많습니다.그러나 반드시 Hibernate를 사용할 필요는 없습니다!!01 의존성 주입하기스프링 프로젝트에 JPA를 적용하기 위해서는 의존성 주입이 필요합니다.MVN Repository에서 Spring boot starter data jpa와 Mysql connector를 가져옵니다.1. Spring Data JPA스프링부트 버전에 맞추어 자동으로 JPA 관련 라이브러리들의 버전을 관리해주는 라이브러리입니다. org.springframework.boot sprin..

BackEnd/JPA 2024.12.13

[SSAFY] SSAFY 1학기를 마무리하며, 1학기 회고

싸피 12기로 입과하고 어느덧 5달이라는 시간이 지났다.1학기가 끝난 뒤의 나는 어떤 모습일까 걱정 반 기대 반이었는데이제 2학기를 앞두고 방학을 보내고 있다니 기분이 이상하다.7월부터 지금까지 싸피에서 있었던 일들을 정리해보며 한 학기를 마무리해보고자 한다.12월 현재의 기억이라 약간의 왜곡은 있을지도…7월01 임시반아는 사람 한 명 없던 싸피에서 처음 친해진 사람들.첫 팀 프로젝트 구성원 모두가 좋아서 오랜만에 팀플이 재미있었다.그뒤로 한 학기 동안 알고리즘 스터디를 함께 할 정도로 좋은 사람들을 만났다.02 자치회싸피 자기소개서에도 적었듯이 자치회 활동이 하고 싶었다.임시반 마지막날 소규모 회식자리에서 맞은편에 앉았던 오빠와 마침 같은 반이 되었다.그 자리에서 자치회 하고 싶은 사람!을 물었을 때 ..

Programming/SSAFY 2024.12.12

[네트워크] 네트워크 계층에서의 QoS 관리

1. QoS란?Quality of Service. 네트워크 트래픽의 우선순위를 관리하여 서비스 품질을 보장하는 기술QoS는 네트워크에서 데이터 흐름의 우선순위를 정하고,이를 바탕으로 트래픽을 제어하여 성능을 보장하는 기술입니다.한국어로 번역하면 서비스 품질이라는 뜻으로, 다양한 데이터 유형의 요구사항을 충족하기 위해 사용됩니다.QoS는 특히 실시간 서비스와 비실시간 서비스의 차이를 맞추고트래픽이 원활히 전달되도록 우선순위를 보장하는데 초점을 맞춥니다.2. QoS의 주요 요소QoS를 이해하기 위해 네트워크 성능에 영향을 미치는 주요 요소 4가지를 알아봅시다.1) 대역폭(Bandwidth)데이터 전송을 위해 사용할 수 있는 네트워크 용량입니다.QoS는 특정 데이터 흐름에 필요한 대역폭을 보장하여 혼잡 상태에..

[JPA] JPA를 배워야 하는 이유는? SQL Mapper vs ORM

스프링으로 개발을 시작할 때 처음에는 새로고침하거나 프로그램을 다시 실행하면데이터가 사라지는 사이트를 만들어본 경험이 있을 것입니다.이 문제를 해결하기 위해 프로그램과 데이터베이스를 연결해야 합니다. 저는 처음 DB를 학습할 때 SQL 쿼리 작성 방법을 배우고MyBatis를 통해 MySQL과 연결하는 방법으로 프로그램을 만들었습니다.이때 사용한 MyBatis와 같은 기술을 Persistence Framework라고 합니다.오늘은 Persistence Framework의 종류를 정리하고 비교해보려고 합니다. 1. Persistence Framework란?어떤 종류가 있는지 알아보기에 앞서 Persistence Framework가 무엇인지 정리해봅시다.Persistence = 영속성프로그램이 종료되더라도 사..

BackEnd/JPA 2024.12.10

[네트워크] 데이터 링크 계층의 하위 계층 MAC vs LLC

컴퓨터 네트워크에서 데이터가 신뢰성 있게 전달되기 위해,OSI 7계층 모델은 계층별로 명확한 역할을 부여합니다. 그중 데이터 링크 계층은 네트워크에서 안정적으로 데이터를 전송하는 데 핵심적인 역할을 합니다.이 계층은 물리 계층에서 전달된 데이터를 상위 계층으로 올리고,데이터 프레임의 전송, 오류 제어, 흐름 제어와 같은 중요한 작업을 담당합니다. 데이터 링크 계층은 다시 MAC 계층과 LLC 계층이라는 하위 계층으로 나뉩니다.이 두 계층은 서로 협력하여 네트워크 데이터가 올바른 목적지에 정확히 도달하도록 만듭니다.이 글에서는 MAC 계층과 LLC 계층의 역할과 주요 기능, 그리고 차이점을 비교하며 자세히 알아보겠습니다.  1. MAC 계층 (Media Access Control)MAC 계층은 네트워크의 ..