분류 전체보기 (336) 썸네일형 리스트형 02. 19 TIL : GPT API 도입 간 참고할 점 : 웹 검색에 대해 ** GPT API 도입 시 2025년 현재, 어떤 API 모델도 웹 검색 기능을 제공하고 있지 않다. 따라서, 해당 기능이 필요한 경우, 1) 웹 브라우저가 있는 ChatGPT (Pro 사용자용 GPT-4-turbo Browsing 기능)ChatGPT Plus를 사용하면 OpenAI의 웹 브라우징 기능이 활성화되어 URL을 직접 입력하고 뉴스 내용을 요약할 수 있습니다.그러나 API에서는 해당 기능이 제공되지 않습니다2) Python/Java 등의 웹 스크래핑 + GPT API 조합 (추천 ✅)뉴스 기사의 HTML을 크롤링한 후, 해당 텍스트를 GPT API에 전달하여 요약할 수 있습니다.BeautifulSoup (Python) 또는 Jsoup (Java) 같은 라이브러리를 사용하면 웹에서 기사 내용.. 이펙티브 자바 읽고 정리해보기 10-1 3 장 : Obejct의 메서드, 모든 객체의 공통 메서드 아이템 10 : equals는 일반 규약을 지켜 재정의하라 equals 메서드는 다음과 같은 상황일 때는 재정의하지 않는 것이 좋다.- 각 인스턴스가 본질적으로 고유하다값을 표현하는 게 아니라 동작하는 개체를 표현하는 클래스들이 그 예시로(Thread), Object 클래스의 equals가 이에 적합하게 구현되어 재정의할 필요가 없다- 인스턴스의 논리적 동치성을 검사할 일이 없다java.util.regex.Pattern 클래스는 equals를 재정의하여 두 Pattern의 인스턴스가 같은 정규표현식을 참조하는지 논리적 동치성을 검증하기 위해 equals 메서드를 재정의했다. 다만 설계자에 따라 이 방식이 불필요하다고 여겨질 경우에는 재정의할 필요.. 정수원의 Spring Security Oauth2 (5) : CORS CORS- Http 헤더를 사용해 한 출처에서 사용 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제- 웹 애플리케이션이 리소스가 자신의 출처와 다를 때 브라우저는 요청 헤더에 Origin 필드에 요청 출처를 함께 담아 교차 출처 Http 요청을 실행한다- 출처 비교 로직은 서버 구현 스펙이 아닌 브라우저에 구현된 스펙 기준으로 처리되며 브라우저는 클라이던트의 요청 헤더와 서버의 응답 헤더를 비교해 최종 응답을 결정한다- 두 개의 출처를 비교하는 방법은 URL의 구성요소 중 Protocol, Host, Port 세 가지가 동일한지를 확인함으로 비교 ex) http://abc.com 에서 XMLHttpRequst, ajax(또는 FetchAPI) .. 정수원의 Spring Security Oauth2 (4) : Http Basic 가장 일반적인 Http의 인증방식은 Basic 인증 방식이다 RFC 7235 표준으로, 인증에 필요한 인증 정보를 Base 64로 인코딩해 서버에 인증을 요청한다(Base 64는 디코딩이 쉽기 때문에 Https와 같은 TLS를 함께 사용해야 한다) 1. HttpBasicConfigurer- Basic 인증 초기화를 진행하며 속성에 대한 기본값 설정- 기본 AuthenticationEntryPoint는 BasicAuthenticationEntryPoint이다- 필터는 BasicAuthenticaionFilter를 사용 2. BasicAuthenticaionFilter기본 인증 서비스 제공, 요청 헤더의 인증정보 유효성을 체크하며 인증정보인 아이디와 패스워드를 추출한다. 인증 결과에 따라 Authentica.. 01. 06 TIL : YEARWEEK()의 연말 연초 값 이슈 YEARWEEK() 쿼리 함수를 사용한 기간 사칙 연산의 경우, 연말 연초 간 연도가 변경될 때문제ex) YEARWEEK(2024-12-29) + 1 = '202452' + '000001'을 수행하고, 이 결과 값은 '202453' ~ 2024년의 주차는 52주차까지 있기 때문에, 해당 조건절을 통해 데이터가 아무것도 나오지 않게 된다. 해결YEARWEEK(DATE_ADD(2024-12-29, INTERVAL 1 WEEK)) 방식으로 함수를 사용하면, 해당 함수는 정상적으로 '202501'을 반환하게 된다. 빼기 등 다른 사칙연산의 경우에도 동일하게 적용 가능하다 웹에서 테이블 Row를 엑셀처럼 다루기 웹에서 테이블에 데이터를 추가하고, 복사하고, 삭제하고 수정할 필요가 있어 해당 로직을 구현하게 되었다. 1. 강조(하이라이트)Table Row에 대해 내가 어떤 row로 작업하는지, 프로그램과 내가 모두 알 수 있도록 하기 위해 필요하다function fnHighlightRow(row, event) { const table = row.closest('table'); const rows = Array.from(table.querySelectorAll('tr')); const currentIndex = rows.indexOf(row); if (event.type !== 'mousemove' && event.type === 'mousedown' && !isDragging) { isDragging = tru.. 12. 24 TIL : DB의 대소문자 별칭 구분 문제 : 로컬에서는 이상 없이 동작하는 코드가 개발 환경으로 올리면 호출되지 않음-> 왜 그런지 살펴보다가 쿼리를 Dbeaver로 날려보니까 별칭의 대소문자를 구분하지 않았다는 것을 알게되었다 시도한 것 :1) IDE 이슈인지 구글링 : 관련 내용 없음2) 팀원들에게 공유 : DB 설정 때문이라는 점을 알려주셨다 해답 :MYSQL은 기본적으로 테이블 및 별칭의 대소문자를 구분하지 않지만,초기 설정 및 이후에 변경(MYSQL 재시작 필요)을 통해 구분하게 할 수 있다 my.cnf에서 lower_case_table_names 설정 lower_case_table_names의 값을 1로 설정시 : 대소문자 구분 X, 0으로 설정 시 : 대소문자 구분 O 12. 06 TIL : 구독형 결제 구현 간 배운 점 토스 페이먼츠에서 제공하는 결제에 대해 확실하게 경험을 쌓을 수 있었다. 이번 스프린트에서 가장 많이 다룬 JSONObject인듯 하다 그 전엔 별 생각없이 사용하던ObjectMapper, JSONObejct, JsonObject의 차이(심지어 JSONObject는 org.json.simple.JSONObject와 org.json.JSONObject 라이브러리가 다르기 때문에어떤 것을 사용해야할 지 고민이 필요하다) 다음 주에 프론트와 소통 및 QA를 통해, 출시 전 수정사항을 반영할 생각에 기분이 들뜬다 이전 1 2 3 4 ··· 42 다음