본문 바로가기

Java62

[Backend] 트랜잭션, Transaction (1) ✍️ 학습 목표 트랜잭션 트랜잭션 격리 수준 📌 트랜잭션 트랜잭션이란? 데이터베이스의 상태를 변화시키는 작업의 단위이다. Data Manipulation Language(DML)을 사용해서 DB에 접근하는 것을 말한다. 🧷 트랜잭션 특징, ACID Atomicity : 트랜잭션이 DB에 모두 반영되거나 반영되지 않아야 한다. Consistency : 트랜잭션 이전과 이후의 데이터베이스의 상태는 동일해야 한다. Isolation : 모든 트랜잭션은 다른 트랜잭션으로부터 독립적이다. Durability : 성공적으로 처리된 트랜잭션의 결과는 지속적으로 유지돼야 한다. 🧷 트랜잭션 연산 Rollback : 작업 도중 오류가 발생하면 이전 상태로 되돌린다. Commit : 작업이 성공적으로 처리되면 데이터베이스.. 2022. 10. 13.
[Security] Spring Security (1) ✍️ 학습 목표 Spring Security란? Architecture 이해하기 📌 Spring Security 스프링 프레임워크에서 보안(인증, 인가)을 담당하는 스프링 하위 프레임워크이다. 시큐리티를 공부하기 위해 짚고갈 용어들이 존재한다. 🔒 보안 용어 Authentication, 인증 : 애플리케이션을 접근하는 사람이 누구인지 확인하는 절차 Authorization, 인가 : 확인된 사용자의 권한을 확인하고 부여하는 절차 Principal, 접근 주체 : 접근하려는 대상 Credential, 자격증명 : 비밀번호, 열쇠와 같은 인증을 위한 키 정리하면 스프링 시큐리티는 보호된 리소스에 접근하는 대상이 '누구'인지 확인해주고 그 '누구'에게 부여된 권한에 맞게 기능들을 이용할 수 있게 한다. ✔️ .. 2022. 10. 5.
자바 ORM 표준 JPA 프로그래밍 : 영속성 관리 (3장) 📌 엔티티 매니저 팩토리와 엔티티 매니저 🧷 엔티티 매니저 팩토리 팩토리를 만들기 위해서는 많은 비용을 요구한다. 하나만 만들어서 애플리케이션 전체에서 사용한다. 설정 정보(persistence.xml)를 바탕으로 생성한다. 서로 다른 스레드 간에 공유해도 문제가 없다. 🧷 엔티티 매니저 생성하는데 비용이 거의 들지 않는다. 동시성 문제 때문에 스레드 간에 공유 금지. 필요한 시점까지 커넥션을 얻지 않는다. 보통 트랜잭션을 시작할 때 커넥션을 얻는다. 엔티티 매니저 팩토리를 생성할 때 커넥션풀도 만드는 방법은 J2SE 환경에서 사용하는 방법이다. 대부분의 JPA 구현체들이 사용하는 방법이다. 📌 영속성 컨텍스트란? JPA를 이해하는데 가장 중요한 용어는 영속성 컨텍스트(persistence context.. 2022. 9. 26.
[Java] Java 예외 처리 ✍️ 학습할 것 자바에서 예외 처리 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이 RuntimeException과 RE가 아닌 것의 차이 커스텀 예외 만드는 방법 📌 자바에서 예외 처리 (try, catch, throw, throws, finally) 프로그램 실행 중에 어떤 문제 때문에 오작동하거나 비정상적으로 종료되는 경우를 오류(Error)라고 한다. 보통 오류는 다음과 같이 3가지로 구분할 수 있다. 컴파일 에러 : 컴파일 시 발생하는 오류 런타임 에러 : 실행 도중에 발생하는 오류 논리 에러 : 실행은 되지만 의도치 않은 동작을 유발하는 오류 컴파일러를 통해 문제없이 컴파일을 마친다고 해서 런타임에 발생하는.. 2022. 9. 20.
[Spring] Servlet, 서블릿 ✍️ 학습 목표 Servlet 이해하기 Servlet Container 알아보기 📌 Servlet MVC 패턴에서 사용되는 Controller는 Servlet을 활용한 기술이다. 따라서 MVC 패턴을 준수하는 스프링 공부하기 위해선 Servlet에 대한 이해도 필수적이다. Servlet이란? 클라이언트의 요청을 처리하고, 처리 결과로 반환해주는 Java 기반의 CGI이다. CGI : 웹 서버 상에서 User Program을 동작시키기 위한 조합 ✔️ Servlet의 특징 결국 Servlet은 기존 웹 서버의 문제를 개선하고 동적인 여러 기능을 지원한다. 너무 기계적으로 적어둔 글이 많아서 핵심만 요약했고, 내용은 다음과 같다. 클라이언트의 요청에 대해 정적으로 작동하던 기존의 웹 프로그램의 문제점을 보완.. 2022. 9. 15.
TIL : Lombok 알아보기 (12) 💻 Java Lombok이란? Java의 반복되는 메소드를 Annotation을 사용해 자동으로 작성해주는 라이브러리이다! 중요한 어노테이션 위주로 가볍게 살펴보자. 1️⃣ @Getter, @Setter 필드 혹은 클래스에 선언해서 사용한다. getField() (boolean 타입은 isField())와 setField() 메소드를 자동으로 생성 2️⃣ @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor 생성자를 자동으로 생성해주는 어노테이션 @NoArgsConstructor : 파라미터가 없는 기본 생성자 @AllArgsConstructor : 모든 필드를 파라미터로 받는 생성자 @RequiredArgsConstructor : fina.. 2022. 9. 14.