1. 트랜잭션한 묶음으로 처리되어야 하는 작업 (SQL 명령문) 들의 집합커밋 (commit)“정상 종료”트랜잭션의 실행 결과를 DB에 최종 반영하는 것롤백 (rollback)트랜잭션의 실행 결과를 반영하지 않고 취소하여 원래 상태로 되돌리는 것⇒ 복수 사용자의 동시 접근성 제어, 장애 발생 시 안정적으로 데이터 복구하기 위해 필요!! 2. 트랜잭션의 ACID 특성Atomicity (원자성)트랜잭션 안의 작업을 모두 성공적으로 완료 or 모두 철회하여 무효화 해야 함 ⇒ 전부 혹은 전무 (All or Nothing) 실행 규칙 적용Consistency (일관성)DB가 트랜잭션 실행 전의 일관된 상태 → 트랜잭션 실행 후 또 다른 일관된 상태 로 전환되어야 함Isolation (고립성)여러 개의 트랜잭..
1. ChatGPT APIOpenAi에서 제공하는 언어 모델 API이 API를 활용하면 개발자가 애플리케이션에 대화형 AI 기능을 쉽게 통합할 수 있음RESTful APIHTTP 요청을 통해 쉽게 호출 가능JSON 형식으로 데이터를 주고 받음 2. api key 발급2-1. 회원가입 및 로그인https://platform.openai.com/docs/overview 접속우측 상단의 버튼으로 로그인(회원가입)진행 2-2. api key 발급우측 상단의 프로필 > Your profile 클릭 프로필 페이지에서 User API keys 클릭 Create new secret key 클릭 Name과 Permissions 를 생성 의도에 맞게 설정 후 Create secret key 클릭 상단에 API key ge..
지난 게시글2024.09.02 - [Spring Boot] - [Spring Boot] 스프링 이미지 업로드 예제 (0) - 예시 상황, 공통 코드2024.09.02 - [Spring Boot] - [Spring Boot] 스프링 이미지 업로드 예제 (1) - 프로젝트 내부 디렉토리에 업로드2024.09.02 - [Spring Boot] - [Spring Boot] 스프링 이미지 업로드 예제 (2) - DB에 이미지 직접 저장1. 설명예제(2) 에서 DB에 이미지를 직접 저장함실제 프로젝트 배포 시 트래픽이 많아져서 업로드 되는 이미지가 많다면 DB에 무리가 갈 수 있음 ⇒ 성능 저하 초래 가능!서버 ↔ 클라이언트 간 이동해야 할 데이터 양이 많아짐 ⇒ 속도 느려질 수 있음!외부 경로에 이미지를 업로드 ..
2024.09.02 - [Spring Boot] - [Spring Boot] 스프링 이미지 업로드 예제 (0) - 예시 상황, 공통 코드 [Spring Boot] 스프링 이미지 업로드 예제 (0) - 예시 상황, 공통 코드1. 예제 프로젝트 설명 게시글을 작성하는 기본 CRUD 프로젝트 가정게시글 작성 시 이미지 업로드를 포함하여 구현하고 싶음 2. 공통 코드이미지 업로드 로직을 제외한 기본적인 게시글 작성, 조blogan99.tistory.com 1. 설명(로컬 환경) 이전 방법( https://blogan99.tistory.com/138?category=1148702 )으로 이미지 저장 시 문제점resources > static > image_upload에 이미지가 업로드 되더라도 인텔리제이에서 프로..
2024.09.02 - [Spring Boot] - [Spring Boot] 스프링 이미지 업로드 예제 (0) - 예시 상황, 공통 코드 [Spring Boot] 스프링 이미지 업로드 예제 (0) - 예시 상황, 공통 코드1. 예제 프로젝트 설명 게시글을 작성하는 기본 CRUD 프로젝트 가정게시글 작성 시 이미지 업로드를 포함하여 구현하고 싶음 2. 공통 코드이미지 업로드 로직을 제외한 기본적인 게시글 작성, 조blogan99.tistory.com 1. 설명프로젝트 내부 디렉토리 (resources > static > image_upload) 에 업로드 된 이미지 저장할 것이미지 이름 중복 방지를 위해 "UUID로 생성한 랜덤값 + 실제 이미지 이름" 으로 저장이미지 업로드 시 처리할 예외 (조건 추가)..
1. 예제 프로젝트 설명 게시글을 작성하는 기본 CRUD 프로젝트 가정게시글 작성 시 이미지 업로드를 포함하여 구현하고 싶음 2. 공통 코드이미지 업로드 로직을 제외한 기본적인 게시글 작성, 조회 로직만을 포함 * 구현한 이미지 업로드 프로젝트 *내부 디렉토리에 업로드 https://blogan99.tistory.com/138DB에 이미지 직접 저장 https://blogan99.tistory.com/139외부 경로에 업로드 https://blogan99.tistory.com/140AWS S3에 업로드 https://blogan99.tistory.com/151 2-1. 공통 의존 라이브러리build.gradledependencies { implementation 'org.springframework..
1. MapStruct 란?자바 bean 유형 간 (ex. DTO ↔ Entity간) 의 매핑코드를 자동으로 생성하는 라이브러리컴파일 시점에 매핑 코드 자동 생성 → 런타임에서 안정성 보장반복되는 객체 매핑에서 발생할 수 있는 오류 줄일 수 있음 2. 사용 방법2-1. dependency (의존성) 추가build.gradledependencies { ... implementation 'org.mapstruct:mapstruct:1.5.3.Final' annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.3.Final' ...}📌 주의Lombok 라이브러리에 먼저 의존성 추가가 되어 있어야 함MapStruct : Lombok의 ge..
1. 데이터 바인딩 (data binding)클라이언트 요청 데이터 → 자바 객체로 변환하는 과정을 뜻함사용자 입력을 데이터 모델 (자바 객체)로 쉽게 매핑 (변환) ⇒ 효율성, 유지보수성, 유효성 검사에 용이 2. Spring MVC 데이터 바인딩@RequstParam : GET 방식 ⇒ 쿼리 스트링URL을 통한 데이터 전달 (ex. localhost:8080/name=홍길동)@ModelAttribute : POST 방식 ⇒ Form 객체message의 body에 쿼리 스트링 형식으로 데이터 전달@RequestBody : REST API 방식일반적으로 JSON, XML 형식 2-1. @RequestParam 예제html게시글로 이동Controller@GetMapping("/board")public..