본문 바로가기

백엔드(Back-End)55

[JPA] - 영속성 컨텍스트(Persistence Context), Entity의 생명 주기(Life-Cycle), 영속성 컨텍스트의 다양한 이점 정리 1. 데이터베이스 Dialect 1-1. 데이터베이스 Dialect(Database dialect) (1) JPA는 특정 데이터베이스에 종속적이지 않도록 설계되었다. (2) 각각의 관계형 데이터베이스는 SQL syntax와 제공되는 관련 함수들이 조금씩 상이하다. (3) 데이터베이스 Dialect는 위의 (2)번과 같은 특징으로 SQL 표준을 지키지 않는 특정 데이터베이스만의 고유한 성질이나 기능을 말한다. (4) JPA 구현체인 Hibernate는 40가지 이상의 데이터베이스 Dialect를 지원하고 있다. (5) javax.persistence.~ : - Hibernate 라이브러리에 종속적이지 않은 다른 JPA 구현체 라이브러리들을 사용할 수 있다.(표준을 지킨 property로 볼 수 있음) 2... 2023. 9. 25.
[JPA] - JPA란 무엇일까? JPA를 통해 해결할 수 있는 문제들 1. JPA를 시작하기 전에 1-1. 개요 (1) 실무에서는 적어도 수 십개의 테이블과 객체가 존재하고 서로 복잡하게 연관되어 객체 간 상호 통신이 이루어진다. (2) JPA를 실무에 적용하기 어려운 이유 중 하나가 바로 이러한 객체들과 데이터베이스의 테이블을 정확하게 매핑하는 부분에 있어서 어려움을 느끼기 때문이다. (3) 핵심적으로 JPA 내부 동작 방식을 이해하는 것이 중요하다. 1-2. SQL(Structured Query Language) 중심 개발의 문제점 - (1) (1) 무한 반복, 지루한 코드 (2) 변경에 따라 관계형 데이터베이스의 SQL에 대한 의존적 개발을 피하기 어려워진다. (3) 객체와 관계형 데이터베이스 사이의 패러다임 불일치 문제를 해결하기 어렵다. - 상속, 연관관계, 데이.. 2023. 9. 19.
[MariaDB] - 10.4 version 이후 admin Password 설정 시 ERROR 1356 (HY000) MariaDB(MySQL) 10.4 이후 버전 업부터 발생한 비밀번호 설정 시 발생한 관련 오류에 대해 포스팅하고자 합니다. 1. 문제 상황 1-1. 프로젝트와 데이트베이스 연동 문제 (1) HomeBrew를 통해 MariaDB를 설치하고 IntelliJ에서 Spring Boot 프로젝트와 데이터베이스를 연동하는 과정에서 아래와 같은 오류가 발생하였습니다. 1-2. 프로젝트 간 연동문제는 비밀번호가 설정되지 않아 발생하는 오류로 확인 (1) 관련 내용을 찾아봤을 때 MariaDB를 설치하고 계정 비밀번호를 설정하지 않은 상태에서 MariaDB를 다른 개발 환경에서 연동하고자 할 때 이러한 문제가 발생할 수도 있다는 것을 확인했습니다. 1-3. 이후 iTerm2에서 MariaDB에 접속 후 root 계정의.. 2023. 8. 25.
인증(Authentication) & 인가(Authorization) Spring Security는 애플리케이션을 위한 인증(Authentication), 권한 부여(인가, Authorization) 및 기타 보안 기능을 제공하는 프레임워크로써 Spring Security를 사용하기 전 인증과 인가에 대한 정확한 개념과 차이점을 간단하게 정리하고자 합니다. 1. 인증(Authentication) 1-1. 정의 (1) 인증(Authentication)이란, 어떤 개체의 신원을 확인하는 과정을 의미합니다. (2) 특정한 인증 요소를 통해 자신의 신원을 확인할 수 있고 인터넷이 연결된 웹, 앱 서비스에서는 자신의 ID, PW를 입력하는 행위를 인증으로 볼 수 있습니다. (3) 단일 인증 이후에도 여러 개의 인증 절차를 거칠 수 있습니다. (은행과 같은 금융권 서비스의 경우 초기.. 2023. 7. 26.
Spring Boot 3.x 이상 버전에서 프로젝트 빌드에 실패하는 경우 (Mac OS 기준) 이번 포스팅에서는 IntelliJ를 이용해 Spring Boot 3.x 버전 이상의 프로젝트를 생성하는 과정에서 발생한 문제에 대해 해결한 부분을 공유하고자 합니다. 1. 문제 상황 (1) Spring Boot 3.x 이상의 신규 프로젝트 생성 과정에서 문제가 발생했습니다. 2. 문제 확인 (1) 확인 시, 3.x 이상 버전부터는 Java 11을 지원하지 않고, Java 17 이상부터 지원한다고 합니다. (2) 이에 따라, 기존에 설치되어 있던 Java 11 대신 새로운 Java 17을 설치하고 환경 변수 설정을 변경하게 되었습니다. 3. 문제 해결 진행 (1) 터미널을 열고 brew install openjdk@17 커맨드를 실행합니다. brew install openjdk@17 (2) 터미널에서 이에.. 2023. 6. 29.
[Spring] - 객체 지향 설계 5대 원칙 (SOLID) 이번 포스팅에서는 객체 지향 설계 5대 원칙이라고 불리는 "SOLID"에 대해서 공부한 내용을 정리해 보고자 합니다. 1. 객체 지향 설계 5대 원칙 : SOLID - 객체 지향 설계 5대 원칙, SOLID는 클린 코드(Clean code)의 저자로 유명한 로버트 마틴이 좋은 객체 지향 설계를 위해 5가지 원칙을 정리한 것을 의미합니다. - 크게 아래와 같이 5가지 원칙이 존재합니다. (1) SRP(Single Responsibility Principle) : 단일 책임 원칙 (2) OCP(Open-Closed Principle) : 개방 - 폐쇄 원칙 (3) LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 (4) ISP(Interface Segregation Pri.. 2023. 2. 15.