분류 전체보기

클래스의 인스턴스를 얻을 때 일반적으로 public 생성자를 사용한다. 하지만 개발자는 클래스에 생성자 대신(혹은 함께) 정적 팩토리 메소드를 제공해 클래스의 인스턴스를 반환할 수 있다. public class Person { private String name; private int age; // 생성자를 통한 인스턴스 생성 private Person(String name, int age) { this.name = name; this.age = age; } // 정적 팩토리 메소드: 이름과 나이를 받아 Person 객체 생성 public static Person createPerson(String name, int age) { return new Person(name, age); } // 정적 팩토리 ..
·Back-end
☁️ Hibernate에서의 객체 캐싱 😶‍🌫️ 1차 캐시(First-Level Cache) JPA의 Persistence Context에서 사용되는 핵심 메커니즘 영속성 컨텍스트 내부에서 트랜잭션 단위로 엔티티 인스턴스를 저장하고 관리하는 저장소 1차 캐시는 기본적으로 활성화되어 있으며 영속성 컨텍스트가 곧 1차 캐시라고 할 수 있음 트랜잭션을 Commit 하거나 Flush 할 경우 1차 캐시에 있는 엔티티의 변경 사항들을 DB에 반영 ❄️ 1차 캐시의 조회 동작 1. 조회 시 식별자(ID)를 통해 1차 캐시에 데이터가 있는지 확인하고, 데이터가 있으면 가져옴 2. 1차 캐시에 데이터가 없으면 DB에 데이터 요청 3. DB에서 받아온 데이터를 재사용할 수 있도록 1차 캐시에 저장 😶‍🌫️ 공유 캐시(S..
·Back-end
스프링 프레임워크에서 어노테이션을 통해 트랜잭션을 읽기 전용 모드로 설정할 수 있다. 이는 예상치 못한 엔티티의 등록, 변경, 삭제를 예방할 수 있고 성능을 최적화할 수 있다. 🧐 성능이 왜 최적화되지? JPA, Hibernate, Spring Data JPA에 대한 이런저런.. 정리 [JPA] JPA, Hibernate, Spring Data JPA에 대한 이런저런.. 정리 ☁️ JPA 인터페이스 🫧 EntityManagerFactory JPA 설정을 기반으로 EntityManager 인스턴스를 생성하는 팩토리 역할 (여러 EntityManager 생성 가능) 보통 애플리케이션이 시작될 때 EntityManagerFactory 인스턴스를 chaewsscode.tistory.com 해당 글을 읽기 전에 ..
·Back-end
☁️ JPA 인터페이스 EntityManagerFactory EntityManager Persistence Context 관련 정보를 찾다가 이해에 도움이 될 찰떡같은 비유가 있어서 해당 블로그 사진을 참조한다. 🫧 EntityManagerFactory JPA 설정을 기반으로 EntityManager 인스턴스를 생성하는 팩토리 역할 (여러 EntityManager 생성 가능) 애플리케이션이 DB를 하나만 사용하는 경우 EntityManagerFactory 인스턴스를 한 번만 생성하고 재사용 더보기 🤔 여러 개의 DB를 사용하는 경우에는 EntityManagerFactory 인스턴스를 어떻게 다룰까? 1. 단일 EntityManagerFactory 인스턴스 사용 여러 DB를 사용하더라도, 모든 DB의 설정..
·Back-end
🌊 배포 흐름 🧐 GitHub Actions란 Github가 공식적으로 제공하는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼 GitHub Actions 사용 시 repository에서 이벤트(PR 혹은 push)가 발생할 때 특정 작업을 실행해 개발 및 배포 프로세스를 자동화할 수 있다. CI/CD 워크플로우 push, PR(Pull Request) 생성, Issue 등의 이벤트에 대해 지정된 작업을 실행하여 지속적으로 통합하고 배포한다. 이를 통해 빌드, 테스트, 코드 리뷰, 배포 등의 과정을 자동화할 수 있다. 테스트 자동화 코드 변경 사항을 테스트하여 품질 관리를 강화하고, 테스트 결과를 보고 및 분석하여 문제를 식별한다. 워크플로우 자동화 프로젝트 관리, 버전 관리, 알..
1️⃣ 인가 코드 받기 1. 서비스 서버가 카카오 인증 서버로 GET https://kauth.kakao.com/oauth/authorize 를 통해 인가 코드 받기 요청 2. 카카오 인증 서버가 사용자에게 카카오계정 로그인을 통한 인증 요청 3. 사용자가 카카오 계정으로 로그인 4. 카카오 인증 서버가 사용자에게 동의 화면을 출력하여 인가를 위한 사용자 동의 요청 인증(Authentication) ID와 비밀번호로 사용자 신원 확인 각 서비스에 사용자가 카카오계정으로 로그인할 수 있는 기능 지원 서비스에서 각 사용자를 식별할 수 있는 고유한 회원번호 제공 인가(Authorization) 사용자 개인정보와 같은 자원(Resource)에 대한 접근 권한 획득 5. 사용자가 필수 동의 항목, 선택 동의 항목..
·Back-end
1. 가비지 컬렉션(Garbage Collection)이란? 가비지 컬렉션(Garbage Collection, 이하 GC)은 자바의 메모리 관리 방법 중의 하나로 JVM(자바 가상 머신)의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체(garbage)를 모아 주기적으로 제거하는 프로세스를 말한다. C언어의 경우 free()메서드를 이용해 직접 메모리를 해제할 수 있지만 Java나 Kotlin은 JVM의 가비지 컬렉터가 불필요한 메모리를 알아서 정리해주기 때문에 개발자가 메모리를 직접 해제할 필요가 없다. 따라서 개발자는 메모리 관리, 메모리 누수 문제를 관리하지 않아도 되어 개발에만 집중할 수 있다는 장점이 있다. 하지만 GC에도 단점이 있는데 메모리 관리를 자동으로 해준다 해..
·Back-end
연결 과정 목차 yml 파일에 OAuth 클라이언트의 설정 정보 작성 SecurityConfig 수정 OAuthService 구현 OAuthAttributes 생성 build.gradle 의존성 추가 UserProfile 생성 OAuth2UserService를 구현한 CustomOAuth2UserService 구현 Spring Boot는 어떻게 yml 파일에 작성한 정보로 OAuth 설정을 할까? Spring Boot는 어떻게 yml 파일에 작성한 정보로 OAuth 설정을 할까? Spring Security OAuth2 라이브러리는 Spring Boot의 자동 구성 기능을 활용하여 yml 파일에 작성된 OAuth 설정을 인식하고 처리한다. 이를 위해 5가지 핵심 구성 요소가 작동한다. 1️⃣ OAuth2..
·Back-end
Spring Security OAuth2 라이브러리는 Spring Boot의 자동 구성 기능을 활용하여 yml 파일에 작성된 OAuth 설정을 인식하고 처리한다. 이를 위해 5가지 핵심 구성 요소가 작동한다. 1️⃣ OAuth2ClientProperties & OAuth2ProviderProperties OAuth2ClientProperties yml 파일의 spring.security.oauth2.client 아래에 작성된 클라이언트 설정을 나타낸다. OAuth2ProviderProperties spring.security.oauth2.provider 아래에 작성된 공급자 설정을 나타낸다. 2️⃣ OAuth2ClientPropertiesRegistrationAdapter OAuth2ClientPrope..
서채리
'분류 전체보기' 카테고리의 글 목록 (6 Page)