목록분류 전체보기 (205)
주뇽's 저장소
https://web.stanford.edu/class/cs224w 목차 - 그래프 표현 선택 - 방향 그래프와 무방향 그래프 - 이분 그래프 - 인접 행렬 👉 그래프 표현 선택 1. 동종그래프 2. 이종그래프 1. 일반적인 그래프(동종) 그래프는 노드와 엣지로 구성되어 있고 수식으로 G(V, E)로 표현한다. 일반적인 그래프는 아래와 같이 동종의 그래프이다. 노드의 특징이 동일하며 노드와 노드를 연결하는 엣지들이 존재한다. 아래와 같은 노드와 엣지를 가진 그래프가 있을 때 Actor1과 Actor2는 Movie1에 같이 출연했다로 해석할 수 있다. 노드 : 배우 엣지 : 영화 2. Heterogeneous graph(이종 그래프) 이종 그래프는 위의 동종의 그래프와는 다르게 노드가 단일 종류가 아닌 여..
https://web.stanford.edu/class/cs224w/ 목차 - 왜 그래프인가 - GNN의 어려움 🤔 왜 그래프인가? 그래프는 관계/상호 작용이 있는 엔티티를 설명하고 분석하기 위한 일반적인 언어이다. 그렇다면 관계 또는 상호작용이 있는 엔티티란 무엇일까? 아래의 다양한 형태의 데이터 그래프를 보면 직관적으로 이해하기 쉽다. 다양한 형태의 데이터 그래프 아래 그림과 같이 소셜 네트워크, 지하철 노선도, 인터넷, 네트워크, 분자구조 등 다양한 데이터들은 그래프로 표현이 가능하다. 🤖 그래프 머신러닝 위 그림에서와 같이 복잡한 도메인은 풍부한 관계 구조를 가지고 있으며, 이는 관계 그래프로 표현할 수 있다. 그래프 머신러닝은 이러한 관계를 명시적으로 모델링함으로써 더 나은 성능을 얻을 수 있다..
[Spring Boot] 실시간 채팅 기능을 위한 WebSocket, SockJS, STOMP 실시간 채팅 기능은 현대 웹 애플리케이션에서 필수적인 요소 중 하나이다. 사용자가 실시간으로 정보를 교환할 수 있게 함으로써, 애플리케이션의 상호작용성과 사용자 경험을 크게 향상시킨다. 이 글에서는 Spring Boot 애플리케이션에 실시간 채팅 기능을 구현하기 위한 세 가지 주요 기술인 WebSocket, SockJS, STOMP에 대해 소개하고, 각각의 장단점 및 적합한 사용 사례를 탐구한다. WebSocket WebSocket 프로토콜은 실시간 양방향 통신을 가능하게 하는 웹 표준이다. 이는 서버와 클라이언트 간의 지속적인 연결을 유지하며, 데이터를 신속하게 교환할 수 있도록 설계되었다. WebSocket..
1. OPENAI GPT API 및 요청 및 응답 데이터 확인 준비물 : OpenAI API를 이용하기 위해서는 OpenAI에 신용카드를 등록해야 한다. 이후 자신의 API Key를 확인. API 레펀러스 페이지에서 초록색 API Keys 문구를 클릭하여 자신의 새로운 API Key를 생성하고 확인한다. 1-1 GPT 요청 형식 확인하기 curl https://api.openai.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "gpt-3.5-turbo", "messages": [ { "role": "user", "content": ..
스프링 시큐리티 필터 체인 설정 스프링 시큐리티(Spring Security)는 자바(Java) 기반의 애플리케이션을 위한 강력한 인증 및 접근 제어 프레임워크다. 스프링 프레임워크(Spring Framework)의 일부로, 웹 애플리케이션과 메소드 수준의 보안을 제공한다. 이는 애플리케이션의 보안을 강화하기 위해 맞춤화하고 확장할 수 있는 다양한 기능들을 포함하고 있다. 주요 특징 인증(Authentication): 사용자가 누구인지 확인하는 과정이다. 스프링 시큐리티는 다양한 인증 메커니즘을 지원하며, 이를 통해 사용자 이름과 비밀번호, 토큰 기반 인증, LDAP, OAuth 등 다양한 방식으로 인증을 수행할 수 있다. 권한 부여(Authorization): 인증된 사용자가 특정 자원에 접근하거나 특..
Difference Array Technique 이 기법은 주로 누적 합(Prefix Sum)과 함께 사용되며, 배열의 연속적인 부분에 대한 업데이트를 빠르게 수행할 수 있도록 해준다. 효율적인 업데이트: 배열의 큰 구간을 한 번의 연산으로 업데이트할 수 있다. 이는 구간에 포함된 각 요소를 개별적으로 업데이트하는 것보다 훨씬 빠르다. 시간 복잡도: 각 업데이트는 O(1) 시간에 수행된다. 전체 배열에 대한 누적 합 계산은 O(N) 시간이 소요된다 예시: 온도 조절 상황 : 7일 동안의 온도 기록을 가지고 있다. 각 날짜의 초기 온도는 0도로 설정되어 있다. 일: 1 2 3 4 5 6 7 온도: 0 0 0 0 0 0 0 이제 다음과 같은 온도 조절 작업을 수행한다고 가정해 보자 : 1. 2일부터 4일까지..
점프 투 스프링부트 3 Spring Boot와 React를 이용하여 게시판 풀스택 프로젝트를 진행 중에 Question 엔티티와 Answer 엔티티의 양방향 관계 때문에 JackSon 무한루프에 빠져 오버플로우가 발생하는 문제가 생겼다. 에러 내용은 너무 길어서 가장 윗 부분만 잘라 왔다. // Question Entity의 일부 @OneToMany(mappedBy = "question", cascade = CascadeType.REMOVE) private List answerList = new ArrayList(); // Answer Entity 일부 @ManyToOne private Question question; 해당 문제가 발생한 이유는 다음과 같다. 예를 들어, Question 객체를 JSON..
IaaS(Infrastructure as a Service) 하드웨어, 네트워킹, 가상화(AWS의 경우 EC2)만 제공하고 나머지는 담당해야함 ex) 리눅스 인스턴스에 파이썬 앱을 배포한다고 가정 리눅스 설치 -> 파이썬 설치 -> 애플리케이션 설치 OS 업데이트, 애플리케이션 런타임, 오토 스케일링, 로드밸런싱, 등등 직접 해야함 PaaS(Platform as a Service) IaaS의 대안이 되며 클라우드가 제공하는 플랫폼을 사용 하드웨어, 네트워킹, 가상화(AWS의 경우 EC2), OS, Application Runtime을 제공하고 Application만 담당 파이썬 코드와 원하는 파이썬 버전을 실행 OS, 파이썬 설치는 신경쓰지 않고 애플리에키션 코드만 담당 OS 업데이트, 애플리케이션 런타..