📚 개발백과
-
[Fixture Monkey] CustomArbitraryIntrospector를 등록하는 여러 방법📚 개발백과 2025. 10. 19. 22:21
[Fixture Monkey] 불변 객체를 위한 사용자 정의 인트로스펙터 예제 코드 - 기초편불변 객체(`google.common.collect.Range`)를 위한 사용자 정의 인트로스펙터 예제 코드입니다.사용 버전: 1.1.11 ⬇️ 코드만 먼저 보기더보기더보기더보기/** * Range 타입에 대한 값을 반환하는 사용자 정the0.tistory.com이전 포스팅 글(사용자 정의 인트로스펙터 예제 코드 - 기초편)과 이어집니다. 공식문서를 참고하여 Fixture Monkey의 CustomArbitrayIntrospector를 만들고customIntrospector를 objectIntrospector에 등록했다.참고: https://naver.github.io/fixture-monkey/v1-1-0-k..
-
[Fixture Monkey] 불변 객체를 위한 사용자 정의 인트로스펙터 예제 코드 - 기초편📚 개발백과 2025. 10. 6. 12:11
불변 객체(`google.common.collect.Range`)를 위한 사용자 정의 인트로스펙터 예제 코드입니다.사용 버전: 1.1.11 ⬇️ 코드만 먼저 보기더보기더보기/** * Range 타입에 대한 값을 반환하는 사용자 정의 인트로스펙터 예제 */public class RangeInstantArbitraryIntrospector implements ArbitraryIntrospector { @Override public ArbitraryIntrospectorResult introspect(ArbitraryGeneratorContext context) { // 1단계: 이 인트로스펙터가 이 타입을 처리해야 하는지 확인 // Range.class 추출 Property p..
-
[Spring Data JPA] 서비스 레이어의 어느 메서드에 @Transactional을 안붙이면?📚 개발백과 2025. 6. 27. 01:38
Spring 3.x, Spring Data JPA(+ Hibernate) 를 쓰는 환경이다. 예시 코드 설명:exampleService 클래스의 한 메서드인 example() 이다.example()은 authUser 를 인자값으로 받아 이를 userRepository에 Read로 접근한다.public exampleResponse example(AuthUser authUser) { User user = userRepository.findByOauthId(authUser.getOauthId()) .orElseThrow(() -> new BusinessExceptionHandler("유저가 존재하지 않습니다.", ErrorCode.NOT_FOUND_ERROR)); ...} 내가..
-
[Spring Data JPA] 커넥션은 언제 릴리즈 될까 (w/ @Transactional)📚 개발백과 2025. 6. 26. 16:53
Spring Data JPA 와 Hibernate를 사용하고@Transactional 어노테이션이 명시된 서비스 레이어의 메서드가 존재한다고 가정한다. 이 아티클은 connection.close()가 실행되는 step을 트레이싱한다. AbstractPlatformTransactionManager에서는doCommit() 혹은 doRollback() 이후 doCleanupAfterCompletion()이 실행된다. 레퍼런스더보기0. AbstractPlatformTransactionManager 의 doCleanupAfterCompletion() 설명https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/tran..
-
[FastAPI, PostgreSQL] postgresql://와 postgresql+asyncpg:// 의 차이📚 개발백과 2024. 10. 18. 17:06
글을 작성하게 된 이유:FastAPI 에서 Session 생성을 하기 위해 postgresql url 을 주입하는 도중에 여러 프로젝트의 소스코드마다postgresql://로 시작하는 url도 있고 postgresql+asyncpg:// 로 시작하는 url도 있었는데 그 차이가 궁금했다.그리고 이것 때문에 프로젝트 실행하는 과정에서 삽질을 하기도 했다. 두 URL은 주로 동기 방식과 비동기 방식의 데이터베이스 연결 및 쿼리 실행 방식에 차이점이 있다. postgresql://이 url은 psycopg2와 같은 동기식 드라이버를 사용해 PostgreSQL 에 연결한다.이게 표준 연결 문자열이다. (당연해보이죠?) 이는 파이썬*의 일반적인 동기 실행 모델을 따르기 때문에, 데이터베이스 작업을 수행하는 동..
-
오프라인 상태에서 cURL 사용하기📚 개발백과 2024. 10. 1. 14:13
오프라인 상태에서 cURL을 사용할 수 있을까? 1. 요청 대상이 동일 네트워크/서버 요청할 대상이 동일 네트워크나 서버에 있으면 인터넷 연결 여부와 상관없이 cURL 테스트가 가능하다. > 왜?서버나 다른 대상이 같은 로컬 네트워크 내에 있으면 데이터는 같은 네트워크를 통해 직접 전송된다.이 경우, 내부 네트워크의 라우팅 기능이 데이터를 대상 서버로 직접 전달하기 때문에 외부 인터넷 연결이 필요하지 않다.> 예를 들면?같은 로컬 네트워크 내의 서버에 접근할 때, 요청은 인터넷을 통해 외부로 나갔다가 다시 들어오는 대신에 내부적으로만 라우팅되어 처리된다. 2. 요청 대상이 외부 서버 오프라인 상태에서 외부 서버로 요청을 보내는 것은 불가능하다. 외부 서버는 인터넷을 통해 접근할 수 있기 때문에서버가 인..
-
[Docker] 컨테이너 실행 시 외부에서 .yml 주입하기📚 개발백과 2024. 9. 26. 15:52
원하는 바:도커 이미지를 docker run으로 실행할 때 application.yml을 주입하고 싶음. > 이유: 업데이트된 yml을 주입하고 싶기 때문.yml 설정이 바뀔때마다 이미지를 새로 생성해서 가져가는일이 번거롭다; 방법: 기존) 컨테이너를 실행하는 명령어 참고로 `--network host`는 개인적으로 한 설정이다.기존과 수정 명령어간 차이만 봐주시면 된다.docker run -d \--name my-backend \-p 7778:7778 \--network host \ (개인 설정이므로 무시해도됨.)my-backend .. 에서 두 가지 옵션을 추가해준다.-v 와 -edocker run -d \--name my-backend \-p 7778:7778 \--network host \ (..
-
[Spring] 유효성 검사에서 @Valid 와 setField 중 무엇이 먼저 실행될까📚 개발백과 2024. 8. 8. 14:41
public class RequestDto { @Getter public static class BaseInfo { @Schema(description = "유저의 계좌 id", example = "123456789012") @NotNull(message = "계좌번호 입력은 필수입니다.") @TrimmedSize(value = 12, message = "계좌번호는 12자리이어야 합니다.") private String accountId; private void setAccountId(String accountId){ this.accountId = (accountId != null) ? accountId.trim..