본문 바로가기

분류 전체보기

(83)
AWS - AWS OpenSearchService 구축하고 django에서 연결하기 혼자서 구축하고 연결하느라 엄청난 뻘짓을 하였습니다만 다른 이들은 손쉽게 연결하십사 이렇게 기록을 남깁니다. AWS OpenSearch 도메인 생성 먼저, AWS OpenSearch Service를 이용하기 위해 도메인을 생성해야 합니다. 최소의 비용이 들게끔 설정을 조정한 후에, Django 서버에서 다음과 같은 코드로 OpenSearch와의 연결을 시도했습니다: from elasticsearch import Elasticsearch es = Elasticsearch( ['your-opensearch-endpoint'], scheme="https", port=443, ) 그러나, 이렇게 연결을 시도하니 다음과 같은 오류 메시지가 반환되었습니다. AuthorizationException(403, '{"M..
java - 변수와 리터럴의 접두사와 접미사 이해하기 변수와 리터럴의 접두사와 접미사 이해하기 안녕하세요, 이번 포스트에서는 Java에서의 변수와 리터럴, 그리고 이들의 접두사와 접미사에 대해 이야기해보려 합니다. 이것들은 Java 프로그래밍의 기본적인 요소이며, 이해하고 활용하는 것이 중요합니다. 변수와 리터럴 변수는 데이터를 저장하는 메모리 공간의 이름입니다. Java에서 변수를 선언할 때에는 해당 변수의 타입을 명시해야 합니다. 예를 들어, int num;은 정수를 저장할 수 있는 'num'이라는 이름의 변수를 선언한 것입니다. 리터럴은 소스 코드 내에서 직접 표현되는 고정된 값입니다. 예를 들어, int num = 10;에서 '10'은 정수 리터럴입니다. 접두사와 접미사 Java의 리터럴에는 특별한 접두사와 접미사를 사용하여 해당 값의 데이터 타입을..
Java - javac.exe, java.exe, 클래스와 main 메서드 이해하기 Java 공부 시작 - javac.exe, java.exe, 클래스와 main 메서드 이해하기 안녕하세요, 오늘은 Java 공부의 시작, 'javac.exe', 'java.exe', 그리고 클래스와 main 메서드에 대해 이야기해볼까 합니다. 이 포스트를 통해 Java가 어떻게 작동하는지 기본적인 이해를 할 수 있을 것입니다. javac.exe 와 java.exe Java 프로그램을 작성하고 실행하기 위해서는 먼저 Java 개발 도구인 JDK(Java Development Kit)를 설치해야 합니다. JDK에는 'javac.exe'와 'java.exe'라는 두 가지 중요한 실행 파일이 포함되어 있습니다. 'javac.exe'는 Java 컴파일러로, 개발자가 작성한 Java 소스 코드(.java 파일)를 ..
server - 도커를 통해 엘라스틱서치(오픈서치)db를 로컬에 구축하기 처음의 목표 엘라스틱 서치 db를 구축하는 것이 목표였고, 이를 위해 리서치를 진행한 결과 엘라스틱서치보다 aws에서 오픈소스화한 오픈서치를 설치하는 것이 맞다고 판단하였습니다. 이를 위해 진행한 단계를 설명드리겠습니다. 우선 첫번째로는 aws rds에서 elsaticsearch나 opensearch db를 지원해주지 않기 때문에 aws에서 진행하는 Amazon OpenSearch Service로 진행하려 하였으나, 이는 구동에 들어가는 최소한의 서버스펙으로도 월 십몇만원에 달하는 비용이 들것으로 추산되었기 때문에 다른 방법을 찾기로 하였습니다. 두번째로는 aws ec2에서 opensearch를 설치하여 ec2로 db를 사용하려는 시도를 하였으나, 이마저도 현재는 테스트가 목적인데도 불구하고 opense..
web - XSS(Cross-site Scripting) vs CSRF(Cross-Site Request Forgery) XSS(Cross-site Scripting) vs CSRF(Cross-Site Request Forgery) XSS와 CSRF는 웹 보안 취약점 중 가장 일반적인 두 가지 유형입니다. 두 방법 모두 악성 사용자가 무분별한 행동을 할 수 있게 하지만, 그들이 어떻게 작동하고 어떻게 방어해야 하는지에는 차이가 있습니다. Cross-Site Scripting (XSS) Cross-Site Scripting은 악성 스크립트를 신뢰할 수 있는 웹 사이트에 삽입하는 공격 방식입니다. XSS 공격이 성공하면, 공격자는 사용자의 세션 토큰을 훔칠 수 있고, 사용자 인터페이스를 조작하거나, 사용자의 개인정보를 수집할 수 있습니다. XSS는 크게 세 가지 유형으로 분류됩니다: Stored XSS: 공격자가 웹사이트에 악..
web - WebRTC란 무엇인가? WebRTC란 무엇인가? WebRTC의 개요 WebRTC(Web Real-Time Communication)는 웹 브라우저 간에 플러그인의 설치나 서드파티 응용프로그램 없이 실시간 통신을 가능하게 하는 오픈 소스 프로젝트입니다. 이 기술은 음성, 비디오, 파일 공유 등의 데이터를 웹 페이지나 모바일 애플리케이션을 통해 직접 교환할 수 있게 해줍니다. 이는 웹 애플리케이션 개발자가 사용자 간의 실시간 통신 기능을 쉽게 구현할 수 있게 해주며, 이로 인해 채팅, 비디오 회의, 멀티미디어 게임 등 다양한 애플리케이션에서 WebRTC가 활용되고 있습니다. WebRTC의 중요성 WebRTC는 실시간 통신을 웹의 핵심 기능으로 만들어, 사용자 경험을 향상시키고 새로운 형태의 커뮤니케이션을 가능하게 합니다. 이는 웹..
cs - 객체지향,restful,시간공간복잡도,nosql,함수형프로그래밍,https,GIL,devops,git branch 전략 1. 캡슐화, 상속, 다형성이란 무엇이며, 이들이 객체 지향 프로그래밍에서 어떤 역할을 하는지 설명해 주시겠어요? 캡슐화는 객체의 속성과 행동을 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉하는 것입니다. 이는 객체의 상태를 직접 변경하는 것이 아니라, 객체의 메서드를 통해서만 변경할 수 있도록 하는 것입니다. 이를 통해 객체의 내부 구조를 보호하고, 외부에서의 접근을 제어할 수 있습니다. 상속은 클래스간의 코드를 공유하는 방법으로, 기존 클래스의 특성을 재사용하고 확장할 수 있게 해줍니다. 부모 클래스(슈퍼 클래스)에서 정의된 속성과 메서드를 자식 클래스(서브 클래스)가 물려받아 사용하는 것입니다. 이를 통해 코드의 재사용성을 높이고, 중복된 코드를 최소화할 수 있습니다. 다형성은 하나의 인..
Ai - Elasticsearch를 이용한 개인화 검색 알고리즘 구현 Elasticsearch를 이용한 개인화 검색 알고리즘 구현 사용자 중심의 검색 서비스에서 가장 중요한 부분 중 하나는 사용자의 검색어에 가장 잘 맞는 결과를 빠르고 정확하게 찾아주는 것입니다. 이를 위해 Elasticsearch라는 강력한 검색 엔진을 활용하여 개인화된 검색 알고리즘을 구현하였습니다. from elasticsearch import Elasticsearch es = Elasticsearch() KEYWORD_SYNONYMS = { "로맨틱": ["로맨틱", "조용한", "아늑한"], "재밌는": ["활기찬", "재미있는", "힙한"] } def analyze_query(query): for keyword, synonyms in KEYWORD_SYNONYMS.items(): if keywo..