CS/Spring
-
Maven 빌드 과정CS/Spring 2025. 3. 31. 08:13
1. Maven의 기본 생명 주기Maven에는 세 가지 기본 생명 주기(Build Lifecycle)가 있습니다.① Clean Lifecycle기존 빌드 결과물을 정리하는 과정주요 단계:pre-clean: 정리 전에 실행clean: 빌드 결과물 삭제post-clean: 정리 후 실행② Default (Build) Lifecycle가장 중요한 생명 주기로, 프로젝트의 빌드 과정이 포함됨주요 단계:validate: 프로젝트가 정상적인지 검증 (pom.xml 파일 존재 여부, 필수 정보 확인)compile: 소스 코드 컴파일test: 단위 테스트 실행 (src/test/java의 테스트 코드 실행)package: 실행 가능한 형태로 패키징 (.jar 또는 .war 생성)verify: 패키징된 결과물이 정상적인..
-
Spring JPA가 Auto Configuration(자동 설정) 되는 과정 + Connenction, CPCS/Spring 2025. 2. 27. 16:49
JPA 연결 과정Data를 연결하고 관리하기 위해서는 원래 다음과 같은 과정들을 거쳐야 합니다. 1. yml 설정datasource를 연결하기 위한 설정 정보를 yml로 작성합니다. 2. DataSource 생성JPA가 DB와 연결되기 위해서는 DataSource가 필요합니다.따라서 DataSource를 생성하고 빈으로 등록합니다. 3. EntityManagerFactory 생성JPA는 EntityManagerFactory를 통해 EntityManager를 생성하며, 이 과정에서 DataSource를 사용합니다.Spring Boot에서 LocalContainerEntityManagerFactoryBean을 이용해 EntityManagerFactory를 생성합니다. 4. TransactionManager..
-
JPA 개념과 특징CS/Spring 2025. 1. 20. 01:50
SQL Mapper & ORMSQL Mapper와ORM은 개발자가 직접 JDBC Programming을 하지 않도록 기능들을 제공해주는Persistence Framework 종류이다.SQL Mapper:Object와 SQL의 필드을 매핑하여 데이터를 객체화하는 기술.객체와 테이블간의 관계를 매핑하는 것이 아니라, SQL문을 직접 작성하고 쿼리 수행결과를 어떠한 객체에 매핑하여 줄 지 바인딩하는 방법.즉 SQL 의존적인 방법이다.ex) JdbcTemplate, MybatisMyBatis: SQL을 xml파일로 분리하여 관리하고, SQL결과와 객체 인스턴스의 매핑을 도와주는 역할을 수행. 동적쿼리를 지원하여 다이나믹하게 변경되는 쿼리 작성가능.단점SQL을 개발자가 직접 작성하는 문제.DBMS에 종속적인 문제..
-
동시성 제어CS/Spring 2024. 9. 30. 04:41
transactional & syncronizedtransactional이 syncronized보다 범위가 클 경우트렌젝션이 끝나기 전(commit 처리가 완료되는 시점)에 syncronized가 끝나므로 다른 스레드도 접근할 수 있게 된다 .그 경우 해당 스레드는 갱신이 되지 않은 데이터를 사용하게 된다.따라서 transactional이 syncronized보다 범위 클 경우에 동시성 제어가 되지 않을 수도 있다. transactional이 syncronized보다 범위가 작을 경우트렌젝션이 끝나도 syncronized가 끝나지 않았으므로 다른 스레드가 접근할 수 없다. 따라서 이 경우에 동시성 문제를 줄일 수 있다. 비관적 락, 낙관적 락비관적 락은 commit이 완료되면 lock이 풀린다. ..
-
spring Batch 5.x (2) - 실습CS/Spring 2024. 9. 23. 00:02
저번 블로그에서는 스프링 배치의 기본 개념과 용어를 알아봤다.이번에는 실제로 스프링 배치 환경 구축을 해서 실행시켜볼 것이다. 환경 구축build.gradle 작성//build.gradle//spring batch 사용을 위한 의존성implementation 'org.springframework.boot:spring-boot-starter-batch'//jpa 사용을 위한 의존성implementation 'org.springframework.boot:spring-boot-starter-data-jpa'//rdbs - mariadb 사용을 위한 의존성implementation 'org.mariadb.jdbc:mariadb-java-client' yml 파일 작성 batch: jdbc: initi..
-
spring BatchCS/Spring 2024. 9. 16. 02:13
spring batch 란? 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기 및 리소스 관리 등 대량의 레코드를 처리하는 데 필수적인 재사용 가능한 기능을 제공 최적화 및 파티셔닝 기법을 통해 고용량 및 고성능 배치 작업을 가능하게 하는 고급 기술 서비스 및 기능을 제공 단순한 배치 작업뿐만 아니라 복잡하고, 대용량의 배치 작업도 프레임워크를 활용하여 확장 가능한 방식으로 처리할 수 있어 댜랑의 정보를 효율적으로 처리할 수 있음왜 사용하는걸까?다양한 도메인 내의 많은 애플리케이션은 보통 비즈니스 운영을 수행하기 위해 대량의 데이터 처리가 필요그래서 가볍고 포괄적이며 Spring Framework의 특성인 생산성, POJO 개발 방식, 일반적인 사용 편의성을 기반한 Spring Ba..
-
JPA - ID 생성 전략CS/Spring 2024. 8. 26. 02:23
ID 생성 전략이란?jpa에서 ID생성 전략이라고 하면 생소할 수도 있지만, 아래 코드를 보면 익숙한 코드일 것이다.@GeneratedValue(stratgy = GenerationType.IDENTUTY) 바로 이 코드가 ID생성 전략중 하나이다. - ID 생성 전략은 JPA(Java Persistence API)에서 엔티티의 기본 키(ID)를 자동으로 생성하고 관리하는 방법을 결정하는 설정이다.- JPA는 다양한 데이터베이스와 호환되도록 설계되었기 때문에, 서로 다른 데이터베이스에서 효과적으로 ID를 생성하고 관리할 수 있도록 여러 가지 ID 생성 전략을 제공한다.- JPA에서 ID 생성 전략을 지정할 때는 @GeneratedValue 어노테이션을 사용하고, 이 어노테이션의 strategy 속성을 통..
-
Kafka(1) - 카프카란 무엇일까?CS/Spring 2024. 7. 26. 01:32
Kafka란?아파치 카프카(Apache Kafka)는 LinkedIn에서 개발한 분산 스트리밍 플랫폼이다. 발행-구독 모델을 기반으로 동작한다. 기존 링크드인의 데이터 처리 시스템은 그림과 같이 각 애플리케이션과 DB가 end-to-end 로 연결되어 있고, 요구사항이 늘어남에 따라 데이터 시스템 복잡도가 높아지면서 장애 발생 대응이 어렵고 확장성이 떨어져 관리의 어려움을 겪었다.이러한 문제를 해결하기 위해 새로운 시스템의 개발 필요성이 높아졌고, 다음과 같은 목표를 가지고 새로운 시스템을 개발했다.모든 시스템으로 데이터를 전송할 수 있고, 실시간 처리도 가능하며, 급속도로 성장하는 서비스를 위해 확장이 용이한 시스템을 만들자! 카프카를 적용함으로써 앞서 말했던 문제점들이 어느정도 완화되었다.모든 ..