(base) iseoyeon@iseoyeon-ui-MacBookPro ~ % brew install mongodb-community==> Would install 1 formula:mongodb-communityError: Refusing to load formula mongodb/brew/mongodb-database-tools from untrusted tap mongodb/brew.Run `brew trust --formula mongodb/brew/mongodb-database-tools` or `brew trust mongodb/brew` to trust it. 위와 같은 에러가 발생했을 때 해결방법brew trust mongodb/brewbrew install mongodb-community ..
데이터 스트리밍이란?데이터를 일정한 크기의 청크(Chunk) 나 이벤트 단위로 끊임없이 실시간으로 전송하고 처리하는 방식이다. AI 를 사용할 때, 스트리밍 방식으로 해두면 중간 과정을 토큰으로 받아온다. 완료 후에 보내면 사용자가 너무 오래 기다리니까, AI 와 채팅할 때 중간중간 오는 것들이 데이터 스트리밍 방식이다.(생성 ➡️ 전송 ➡️ 렌더링) 데이터가 생성되는 즉시 처리하여 실시간성, 데이터의 시작과 끝이 정해져 있지 않고 계속 흘러가는 지속성, 메모리에 전체 데이터를 올릴 필요가 없어 효율성이 있다. Apache Kafka, Apache Flink, Spark Streaming, AWS Kinesis 등의 도구를 통해 구현할 수 있다. 데이터가 끝난 걸 어떻게 알까?스트리밍은 보통 이벤트 ..
자바를 설치할때 어떤 버전을 설치해야 할 지 고민이 될 것이다. 이때, 고려해야 하는것이 아래의 두 가지 이다. LTS 버전인지언제 까지 지원하는지 LTS 버전이란?LTS(Long-Term Support) 는 장기 지원 버전이라는 말로, 일반 버전과 달리 장기간에 걸쳐 보안 업데이트와 버그 수정을 보장받을 수 있다. 현재의 Java 버전은 아래와 같다. LTS 버전만 확인해보면 Java 8, 11, 17, 21, 25 버전 대상임을 알 수 있다. 하지만 너무 과거의 버전은 지원 만료 기간이 더 다가올 뿐더러, 최신 버전의 주요 기능을 사용할 수 없다는 단점이 있다. 25 버전은 현재 출시 전이기 때문에 가장 최신 버전인 21 버전을 설치하는 것이 좋을 것 같다. 만약 이전 버전을 사용하는 프로..
순환참조란?두 개 이상의 객체가 서로를 참조하여 끊을 수 없는 고리를 만드는 상황이다. 가비지 컬렉터 (Garbage Collector) 가 더 이상 사용되지 않는 객체라고 판단하지 못해서 메모리에서 해제하지 못하는 문제가 발생할 수 있다. 결국, 메모리 누수로 이어질 수 있다.주로 객체들이 서로를 필요로 하는 복잡한 관계를 가질 때 발생한다. Spring Bean 생성 메커니즘Spring IoC 컨테이너는 Bean 을 생성하고 관리하기 위해 체계적인 단계가 있다. 순환 참조는 이 과정에서 두 개 이상의 Bean 이 서로의 생성을 기다리며 무한 대기 상태에 빠질 때 발생한다. Bean 의 생성 과정 1. 정의(Definition)가장 먼저, Spring 컨테이너는 Bean을 어떻게 만들어야 하는지에 대..
1. 프론트에서 받아오는 kakao-redirect-uri 와 백엔드에서 사용하는 kakao-redirect-uri 가 달라서 발생하는 문제이다. 위 경로를 동일하게 변경해주니 해결되었다. 2. accesstoken은 정상적으로 전달하면서, 로그에는 아래와 같이 KOE320 에러가 남았다. 와이래요... 심지어 해당 accesstoken 으로 사용자 정보도 잘 조회된다 ....
1편 서버 구축 기본 개념 보러가기1편을 보고오는 게 AWS 서버 구축 시리즈의 포스팅을 이해하는 데 도움 된다. 이전에는 GCP(Google Cloud Platform) 를 사용하여 서버를 유지했었다. 그런데, 사용량이 많지 않음에도 불구하고 호출이 지연되거나 하는 등의 문제가 발생했다. 기존의 사용량으로 보아 AWS Lambda 의 무료 버전을 사용할 수 있다고 판단하였다. 이에 비용적인 측면의 부담을 줄이기 위해, 성능을 조금 포기하더라도 무료 비용인 서비스들을 연결하여 사용하는 것을 결정하였다. 일단 같은 무료 서비스이면서, GCP 의 성능보다 더 나은 것을 찾아보았다. (실제로 나은지는 모르겠음 ..) 데이터베이스: Neon (무료)백엔드: AWS Lambda (무료)API 엔드포인트: La..
서버와 클라우드 컴퓨팅서버는 서비스를 제공하는 컴퓨터이다. 우리가 사용하는 온라인 서비스들은 모두 서버에서 실행되고 있다. 서버 컴퓨터를 통해 특정 요청을 보내고, 서버는 그 요청을 처리하여 데이터를 우리에게 전송한다.클라우드 컴퓨팅은 기업들이 구축해놓은 데이터 센터의 컴퓨팅 자원을 빌려 쓰는 방식이다. 아래 외에도 여러 기업들이 서버를 제공하고 있다. 클라우드 서비스 제공자 (CSP) Amazon AWS (Amazon Web Services)가장 대중적인 선택지.프리티어 서비스도 제공Google GCP(Google Cloud Platform)Google이 운영하는 서비스로, 데이터 분석, 머신러닝, 네트워킹 분야에 강점Microsoft Azure 기존에 Windows 서버나 다른 MS 제품을 많이 ..
빌드를 실행하는데 자꾸 entityManagerFactory 오류가 발생했다. 억울한게, Entity 추가한 것도 없고 나는 그저 순박하게 Dto 만 추가했을 뿐이라구 .... 그리고 추가한 코드를 전부 주석처리하고 실행해도 계속 에러가 발생했다.Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unsatisfied dependency expressed through method 'entityManagerFactory' parameter 0: Error crea..
이 포스팅은 단계 4번이다. 프로세스 전체 개요 및 이전 단계를 확인하고 싶으면 아래 게시글에서 확인이 가능하다.https://skylarcoding.tistory.com/343 프로필 요청변수요청변수는 별도로 없고, 요청 헤더에 접근 토큰 값을 전달하면 된다. 프로필 요청 링크 샘플curl -XGET "https://openapi.naver.com/v1/nid/me" \ -H "Authorization: Bearer AAAAPIuf0L+qfDkMABQ3IJ8heq2mlw71DojBj3oc2Z6OxMQESVSrtR0dbvsiQbPbP1/cxva23n7mQShtfK4pchdk/rc=" 요청 응답정보1편에서 신청한 정보들이 넘어오게 된다. 구현 코드 UserService.getUserInf..
이 포스팅은 단계 3번이다. 프로세스 전체 개요 및 이전 단계를 확인하고 싶으면 아래 게시글에서 확인이 가능하다.https://skylarcoding.tistory.com/342 접근토큰 요청 변수프론트에서 받아온 code 와 status 값을 이용해 접근토큰을 발행해야 한다. 프론트에서 Callback 으로 전달받은 정보 (code, status) 를 이용해 접근 토큰을 발급받는다. 해당 값들은 최초 1번만 수행할 수 있으며 재사용이 불가능하다. 접근토큰 링크 샘플접근토큰을 요청하기 위한 링크 샘플은 이와 같다. https://nid.naver.com/oauth2.0/token?grant_type=authorization_code&client_id=jyvqXeaVOVmV&client_secret=52..