Project

🔥 TypeScript Optional Chaining에서 흔히 발생하는 오류“Parsing error: Identifier expected.” 해결하기TypeScript / ESLint를 사용하다 보면 다음과 같은 에러를 경험하는 경우가 많다. Parsing error: Identifier expected. 처음 보면 무슨 말인지 감이 안 오는 에러지만, 대부분은 문법적으로 잘못된 optional chaining 사용 때문에 발생한다.이번 글에서는 실제로 흔하게 발생하는 상황을 쉽게 정리해보겠다.❌ 잘못된 코드 예시예를 들어 API 응답을 받은 뒤 배열의 첫 번째 값을 안전하게 접근하려고 이렇게 사용할 때가 있다: const items = response?.data.map((v) => v.name);..
즉, pydantic_settings라는 파이썬 패키지가 설치되어 있지 않아서 발생하는 문제입니다.해결 방법1. 패키지 설치아래 명령어를 터미널(파워셸)에서 실행하세요:pip install pydantic-settings > 만약 pip 대신 pip3를 써야 한다면 pip3 install pydantic-settings로 입력하세요.2. 추가적으로 필요한 패키지 설치pip install -r requirements.txt처음 환경 세팅이라면, 프로젝트 루트(rag-chatbot)에서 아래 명령어로 모든 의존성을 한 번에 설치하는 것이 좋습니다:3. 설치 후 다시 서버 실행uvicorn app.main:app --reload 만약 또 다른 ModuleNotFoundError가 뜬다면?해당 에러 메시지에..
❓SQL Server에서 "Collation conflict" 오류 해결하기1. 문제 상황최근 Stored Procedure를 실행하던 중 아래와 같은 에러를 만났습니다.Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Korean_Wansung_CI_AS" in the equal to operation.무슨 말일까요? 서로 다른 문자 정렬 방식(Collation)을 가진 문자열을 비교하려다 충돌이 발생한 것입니다.2. Collation이란?SQL Server에서 Collation(정렬 규칙) 은 문자열 데이터를 비교하거나 정렬할 때 사용하는 문자 집합/비교 규칙입니다.예를 들어:SQL_Latin1_Gener..
Java UnsupportedOperationException 오류 해결– .toList()가 문제 ✨ 문제 상황Spring Boot 프로젝트에서 사용자 목록을 처리하던 중, 다음과 같은 예외가 발생했다.java.lang.UnsupportedOperationException코드는 대략 다음과 같은 구조였다:List usernames = List.of("alice", "bob", "charlie");usernames.add("david"); // ❌ 여기서 예외 발생List.of(...)는 불변 리스트(immutable list)를 반환하기 때문에 .add()와 같은 수정 메서드는 허용되지 않는다.비슷한 문제는 Stream API의 .toList() 사용 시에도 발생할 수 있다.List usernames ..
ERRORType definition error: [simple type, class kr.---.---_open_api.dto.--DTO$Process]  🔹 simple type → Jackson이 복잡한 타입으로 인식하지 못했다는 뜻즉, 이 클래스(Process)를 직렬화/역직렬화 가능한 구조체로 판단하지 못했다는 것왜 못했냐? 바로 👇🔹 ---DTO$Process → 내부 클래스 (non-static inner class)$ 기호는 Java 컴파일러가 **내부 클래스(inner class)**를 표시할 때 사용하는 표기법즉, Process가 ---DTO 안의 static이 없는 내부 클래스라는 뜻이에요 🧠 Jackson 입장에서는?Jackson이 new Process()를 하려고 하는데,내..
문제모듈이 이미 존재한다고 다시 등록이 안됨..Module already exists   해결방법 1) modules.xml 파일의 내용 삭제https://ghi512.tistory.com/43 [IntelliJ] Module already exists 에러 해결 방법개요 아래는 "C:\Work\JAVA\fastcampus" 위치에 "Chap4" 라는 이름의 새로운 모듈을 생성하고자 하는 상황이다. 그런데 "Module already exists" 라는 에러 메시지가 뜨면서 모듈이 생성되지 않는다. 이미 존재하ghi512.tistory.com 방법 2)1번 방법이 되지 않아서 gpt가 알려줬다.. File-invaildate Caches-Restat 해보면   modules가 잘 설치된 것을 볼 수있다..
1. https 적용https 적용기 https 적용기기존의 문제점프로젝트를 진행하면서 사용자의 위치가 필요했다.사용자의 현재위치를 가져오는 API는 Geolocation API을 사용하려 했다. 이는 사용자에게 권한 확인을 받은 후 사용할 수 있다.navigatsesam-dev.tistory.com  2. 프론트에서 위치 정보(위도, 경도)를 받아왔다.클릭하면 위도, 경도를 받아올 수 있게 했다.const Location = () => { const userInfo = useSelector(state => state.loginCheck.loginInfo); const sendLocation = () => { if (navigator.geolocation) {..
기존의 문제점프로젝트를 진행하면서 사용자의 위치가 필요했다.사용자의 현재위치를 가져오는 API는 Geolocation API을 사용하려 했다. 이는 사용자에게 권한 확인을 받은 후 사용할 수 있다.navigator.geolocation 객체를 이용하면 된다. 그러나 해당 객체가 없을 수도 있으므로 다음과 같은 방식으로 처리하여 사용할 수 있다.if('geolocation' in navigator) { // 위치정보 사용 가능} else { // 위치정보 사용 불가능}  문제사용자의 위치를 가져오고 싶었지만, https환경에서만 사용가능 했다. HTTPS🔒http는 hypertext transfer protocol의 약자로 쉽게말해 브라우저와 서버의 통신 규약이다. 다시말해 우리가 데이터를 주고 받는..
1. VM 생성 & 고정 IP로 변경Docker+GCP로 프론트 배포 정리위에 링크해서 해두었다! VM 에 연결된 아이피를 고정 아이피로 변경로 변경도 해주어야 한다. 2. 외부 도메인에 네임서버를 GCP로 변경- 영역이름은 고유하게 만들면 된다.- DNS 이름은 도메인 이름을 넣는다- DNSSEC는 Domain Name System Security Extensions 라는 의미로 이름조회에 대한 응답을 인증하는 기능이다. 공격자가 DNS요청에 대한 응답을 조작 또는 악성 처리하는 것을 방지한다고 되어있는데, 자세한건 아래 사이트에서 확인해보는게 좋을거 같다. 기본값이 사용안함으로 되어있긴 한데, 여기서는 사용으로 했다.https://cloud.google.com/dns/docs/dnssec?hl=ko ..
문제com.mongodb.MongoCommandException: Command failed with error 18 (AuthenticationFailed): 'Authentication failed.'  MongoDB 서버에 인증 정보를 사용하여 로그인 시도가 실패했음을 의미한다. 오류 메시지는 "Authentication failed."로, 인증이 실패했다는 것을 나타낸다.   해결application.yml 파일에서 접속 URI를 바꾸어 주었다. 변경 전spring: application: name: chatting-service data: mongodb: username: root password: 1234 host: 35.192.--.--- p..
sesam
'Project' 카테고리의 글 목록