📚 개발백과
-
[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..
-
[Naver Cloud] SSL 인증서 中 Chrome 호환성 정리 (2024.08 기준)📚 개발백과 2024. 8. 4. 22:14
구글 크롬에 NAVER Cloud Trust Services의 루트 인증서가 기본 설치되어있는 버전을 알아본다.(2024.08.04 기준)공식문서에 따르면 크롬 102부터 인증서가 지원된다고 하는데 125버전에서 접속이 차단되는 것을 확인했기에 글을 작성한다. NCP 인증서 호환성 이슈 시 증상NAVER Cloud Trust Services의 루트 인증서가 기본 설치되지 않은 운영체제 및 소프트웨어 버전을 이용하는 경우SSL/TLS 인증서를 신뢰할 수 없는 인증서로 판단하여 웹사이트, 애플리케이션, API로 통신할 때 접속이 차단되거나 오류가 발생할 수 있다. 참고https://guide.ncloud-docs.com/docs/certificatemanager-troubleshooting-certific..
-
[TWA] 웹으로 구현한 FCM을 앱에서 띄우기📚 개발백과 2024. 8. 4. 13:11
부제: Trusted Web Activity(TWA) 까지 오는데 너무 많은 시행착오들 웹으로 구현한 FCM을 앱으로도 띄우고 싶어요안드로이드 웹앱 구현하면 WebView? 쓴다던데?.. 웹뷰에서 알림 권한 받고 fcm 띄우고 싶어요.. 결론부터 말하자면, 웹뷰(WebView) 로는 불가능하다. 웹뷰를 쓸거면 네이티브 로직을 따로 구현해야 한다! 사실 웹뷰를 꼭 써야하는 건 아니다! 어떻게 하는지나 알려달라 --> 유레카: Trusted Web Activity (이하 twa)부터 보기 웹뷰에서는 웹으로 구현한 fcm을 진.짜. 살릴 수 없는지 궁금하다 --> 처음부터 ❌ 시도 1: 웹뷰 참고로 주인장은 안드로이드에 대한 지식이 없다고봐도 무방할 정도였다. 안드로이드 웹앱 구현하면 WebView 를 ..