일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- python
- Value too long for column
- pytest
- k8s #kubernetes #쿠버네티스
- Spring Batch
- 코루틴 빌더
- 겨울 부산
- 개성국밥
- preemption #
- JanusWebRTC
- vfr video
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- 달인막창
- 오블완
- terminal
- PytestPluginManager
- kotlin
- table not found
- mp4fpsmod
- 깡돼후
- tolerated
- 코루틴 컨텍스트
- VARCHAR (1)
- JanusWebRTCServer
- taint
- 티스토리챌린지
- 자원부족
- PersistenceContext
- JanusWebRTCGateway
- JanusGateway
목록개발/Spring Boot (32)
너와 나의 스토리
[처음 배우는 스프링 부트 2] 책에서 스프링 부트 배치 파트를 따라서 코딩하다가 다음의 에러에 직면했다. 프로젝트 구성 InactiveUserJobTest.java package com.example.batch; import com.example.batch.user.enums.UserStatus; import com.example.batch.user.repository.UserRepository; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.batch.core.BatchStatus; import org.springframework.batch.cor..
Spring Boot Batch 설명 배치(Batch)란? 프로그램의 흐름에 따라 순차적으로 자료를 처리한다는 뜻 배치 처리 = 일괄 처리 ex) 휴면회원 전환 기능 -> 대용량 데이터를 일괄 처리 Job 배치 처리 과정을 하나의 단위로 만들어 표현한 객체 하나의 job 안에는 여러 step이 있다. 각 step을 배치의 기본 흐름대로 구현하다. Job 객체를 만드는 빌더는 여러 개 있다. 여러 빌더를 통합 처리하는 공장인 JobBuilderFactory로 원하는 Job을 쉽게 만들 수 있다. Job은 Step 또는 Flow 인스턴스의 컨테이너 역할을 하기 때문에 생성하기 전에 인스턴스를 전달받는다. JobBuilderFactory 클래스 JobBuilderFactory 클래스의 get() 메서드로 Jo..
Transaction의 속성: ACID ACID Atomicity(원자성): 트랜잭션은 하나 이상의 관련된 동작을 하나의 작업 단위로 처리하고, 그 결과가 성공 또는 실패할 경우 관련된 동작은 모두 동일한 결과가 나온다. 즉, 작업 중 하나라도 실패한다면 관련된 트랜잭션 내에서 먼저 처리한 동작들도 모두 처음 상태로 돌아간다. Consistency(일관성): 트랜잭션이 성공적으로 처리되면 데이터베이스의 관련된 모든 데이터는 일관성을 유지해야 한다. Isolation(고립성): 트랜잭션은 독립적으로 처리된다. 서로 다른 트랜잭션이 동일한 데이터에 동시에 접근할 경우 적절한 동시 접근 제어를 해야 한다. Durability(지속성): 트랜잭션이 성공적으로 처리되면 그 결과는 지속적으로 유지되어야 한다. 이 ..
1. Service 생성 서비스 영역은 일반적으로 "Service interface"와 "Service Implementation" 클래스 두 개로 나누어 작성한다. 이와 같이 인터페이스와 구현체를 분리하는 이유: "느슨한 결합"을 유지하여 각 기능 간의 의존관계를 최소화 -> 기능의 변화에도 최소한의 수정만 필요 모듈화를 통해 어디서든 사용할 수 있도록 하여 재사용성을 높임 스프링의 IoC/DI 기능을 이용한 bean 관리 기능을 사용할 수 있다. "BoardService" interface 생성 package com.example.board.board.service; import com.example.board.board.dto.BoardDto; import java.util.List; public ..
2021/01/11 - [개발] - [Spring] MySQL 연동 - 설정하기 2021/01/11 - [개발] - [Spring] 마이바티스(MyBatis)란? & 연동하는 방법 위에 두 포스팅을 통해 세팅을 미리 진행한 후, 다음의 작업을 수행하였습니다. 1. 디비 먼저 세팅하기 JPA 사용할 경우, 디비 먼저 생성할 필요 없음 JPA가 사용되는 entity에 맞는 테이블을 알아서 생성해 주기 때문 즉, 데이터 중심이 아니라 객체를 중심으로 생각하고 개발하게 됨 그렇지만 여기서는 먼저 전통적인 웹 애플리케이션을 개발하고 추후 JPA를 사용하도록 변경할 예정이기 때문에 디비 구성부터 시작 나는 database로 "board" 생성하고 그 안에 다음의 테이블 생성했음 CREATE TABLE t_board..
MyBatis란? 쿼리 기반 웹 애플리케이션을 개발할 때 가장 많이 사용되는 SQL 매퍼(Mapper) 프레임워크이다. 마이바티스를 사용하지 않고 직접 JDBC를 이용할 경우 문제점: 개발자가 반복적으로 작성해야 할 코드가 많고, 서비스 로직 코드와 쿼리를 분리하기가 어렵다. 또한 커넥션 풀의 설정 등 개발자가 신경 써야 할 부분이 많아 여러 가지 어려움이 있다. 따라서, JDBC를 이용해서 직접 개발하기보다는 마이바티스와 같은 프레임워크를 사용하는 게 일반적이다. JDBC를 이용하여 프로그래밍을 하는 방식: 클래스나 JSP와 같은 코드 안에 SQL문을 작성하는 방식 따라서 SQL의 변경 등이 발생할 경우 프로그램을 수정해야 한다. -> 유연하지 않다, 코드가 복잡하게 섞여 있어서 가독성도 떨어짐 마이바..
1. MySQL 설치 homebrew를 이용하여 설치 $ brew install mysql 2. 필요한 dependency 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.4' compileOnly 'org.projectlombok:..
Spring DI 객체들 간의 의존성을 줄이기 위해 사용되는 Spring의 IoC 컨테이너의 구체적인 구현 방식 객체 자체가 아니라 프레임워크에 의해 객체의 의존성이 주입되는 설계 패턴 객체간의 의존성을 자신이 아닌 외부에서 주입하는 개념 객체를 주입 받는다는 것은 외부에서 생성된 객체를 넘겨받는 것이다. 이렇게 하면 결합도를 낮출 수 있고, 런타임시에 의존관계가 결정 되기 때문에 유연한 구조를 가진다. 왜? 모듈 간의 결합도를 낮춰서 유연한 변경을 가능하도록 하기 위해서 * 런타임 & 컴파일 타임 - 컴파일 타임: 작성된 소스코드를 기계어코드로 변환 되어 실행 가능한 프로그램으로 만듦 - 런타임: 컴파일 과정을 마친 프로그램은 사용자에 의해 실행되어 지며, 이러한 응용프로그램이 동작되어지는 때를 런타임..