📚 개발백과
-
[FastAPI, PostgreSQL] postgresql://와 postgresql+asyncpg:// 의 차이📚 개발백과 2024. 10. 18. 17:06
글을 작성하게 된 이유:FastAPI 에서 Session 생성을 하기 위해 postgresql url 을 주입하는 도중에 여러 프로젝트의 소스코드마다postgresql://로 시작하는 url도 있고 postgresql+asyncpg:// 로 시작하는 url도 있었는데 그 차이가 궁금했다.그리고 이것 때문에 프로젝트 실행하는 과정에서 삽질을 하기도 했다. 두 URL은 주로 동기 방식과 비동기 방식의 데이터베이스 연결 및 쿼리 실행 방식에 차이점이 있다. postgresql://이 url은 psycopg2와 같은 동기식 드라이버를 사용해 PostgreSQL 에 연결한다.이게 표준 연결 문자열이다. (당연해보이죠?) 이는 파이썬*의 일반적인 동기 실행 모델을 따르기 때문에, 데이터베이스 작업을 수행하는 동..
-
[ROS2 Humble] rosbag db3 데이터를 JSON으로 출력하기📚 개발백과 2024. 10. 15. 09:26
이 포스트는 .db3인 rosbag 데이터를 파이썬 라이브러리를 활용해 추출하는 방법을 다룬다. 추출 방법 순서는 다음과 같다. 1. .db3(rosbag) 내용 읽기 2. .db3의 데이터를 역직렬화해서 사람이 읽을 수 있는 형태로 변환한다. 3. ROS Message 타입을 ROS2 라이브러리를 활용해 OrderedDic 형태로 변환한다. 4. OrderedDic 형태를 JSON으로 변환한다. 전체 코드더보기# 데이터 읽기 및 역직렬화에 사용import rosbag2_pyfrom rosidl_runtime_py.utilities import get_messagefrom rclpy.serialization import deserialize_message# 메시지 형식 변환에 사용# ROS Messag..
-
오프라인 상태에서 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 를 ..
-
2의 보수는 왜 쓰는 걸까?📚 개발백과 2024. 7. 28. 23:57
Binary Indexed Tree 에서 bit 연산을 하며 2의 보수 개념을 사용하는데왜전산학의 정수 표현법에서 2의 보수가 가장 널리퍼진 방식인지 궁금해졌다. 라고 했으나 사실 2년전쯤 컴기초수업에서 들은 게 기억이 안난 것일지도 2의 보수는 2진수 표현 방식 중 하나이다. 2진수 표현 방식들은 다음과 같다.* 부호화 절대값* 1의 보수* 2의 보수 2진수 표현방식이 채택된 이유- 라 함은다시 말해 부호화 절대값과 1의 보수의 단점을 극복한, 2의 보수만의 특별한 이유가 있기 때문이다. 이는 바로 "0의 표현방식이 한 가지뿐(0000)" 이다. 0의 표현 방식이 하나가 아니라면 연산 중에 불필요한 복잡성이 추가된다. 말 안해도 알겠지만, 이는 결과의 정확성을 해칠 수 있고 오류를 유발할 수 ..