전체 글 166

Python - 북극 해빙 면적 그래프

PYTHONimport pandas as pdimport matplotlib.pyplot as pltimport numpy as np # numpy를 임포트하여 평균 계산# 파일 경로path = '경로' # 파일위치 경로file_name = 'ice size count.csv' # CSV 파일 이름# 데이터 출처# 해빙 면적 : https://oceanclimate.kr/seaice_area/?start=&end=&area=nh&var=all&month=allfile_path = path + file_name # 파일 경로# CSV 파일 읽기df = pd.read_csv(file_path, encoding='cp949') # pd.read_csv == pandas의 함수로 CSV 파일을 읽어줌 ..

javaboiii의 python 2024.12.06

Python - AOI와 서울 기온 그래프

PYTHONimport pandas as pdimport matplotlib.pyplot as pltimport mplcursors # mplcursors 추가# 파일 경로path = "경로" file_name = 'temp(2019.12~2022.02 seoul)+ao.csv'# 데이터 출처# aoi : https://arctic.noaa.gov/report-card/report-card-2021/surface-air-temperature-2/# 서울기온 : https://data.kma.go.kr/stcs/grnd/grndTaList.do?pgmNo=70file_path = path + file_name# CSV 파일 읽기data = pd.read_csv(file_path, encoding='cp9..

javaboiii의 python 2024.12.05

Python Project - 북극한파 예상하기 (AOI)

AO(Arctic Oscillation) : 북극진동- 북극에 있는 찬 공기의 소용돌이(제트기류)가수십일 또는 수십년을 주기로 강약을 되풀이 하는 현상AOI(Arctic Oscillation Index) : 북극진동지수북극진동을 지수한 것으로 북반구 북위 60도 이상의 고위도 해면기압과중위도 해면기압을 측정해 차이를 계산한 것으로 0을 기준으로 -5 ~ +5 사이의 값으로 표현됨북극의 기온이 낮아지면 북극진동지수는 양의 값을 가지게 되는데중위도 지방의 기압이 높고 북극의 기압이 낮은 상태가 됨 북국의 기온이 올라 고온 상태가 되면 북극진동지수는 음의 값을 가지게 되는데중위도 지방의 기압이 낮고 북극의 기압이 높은 상태가 됨 AOI가 낮다는 것은 북극진동이 강해져서 냉기가 저위도 지역으로 이동한다는 것을 ..

프로젝트_리뷰 2024.12.04

Python - 그래프

PYTHON파이썬을 이용해 그래프를 찍어보자필요한 라이브러리 pandas: 데이터 처리 및 분석 (CSV 파일 읽기, 그룹화 등)matplotlib: 그래프 시각화CSV 파일에는 "날짜"와 "전지구 평균" 기온 데이터가 포함  연도별 평균 기온을 pandas로 그룹화하여 연단위 평균 계산matplotlib로 1981년부터 2024년까지의 연도별 기온 변화를 시각화x축에 1981년과 2024년은 반드시 포함되도록 설정   # 인터프리트언어의 고유한 별칭설정import matplotlib.pyplot as pltimport pandas as pdpath = 'csv 파일 경로'file_name = 'csv 파일 이름'file_path = path + file_name# pandas로 CSV 파일 읽기df =..

javaboiii의 python 2024.12.03

Interview 벼락치기

객체지향이란 기능이 아닌 객체가 중심이며 "누가 어떤일을 할 것인가"가 핵심입니다. 추상화 - 객체들이 공통적으로 필요로하는 속성이나 동작을 추출하는 작업 코드의 중복을 줄이고 재사용성 증가 상속 - 상위 클래스의 변수와 기능을 하위 클래스에게 물려주는 것 코드의 중복을 줄이고 재사용성 증가 다형성 - 객체 혹은 메서드가 여러가지 타입을 가질 수 있는 성질 오버로딩과 오버라이딩이 대표적인 예 오버로딩 - 함수명 중복 정의 허용 오버라이딩 - 함수 재정의 코드의 중복을 줄이고 재사용성 증가 유지보수성 상승 캡슐화 - 외부에서 접근하지 못하도록 보호하는 개념 생성자 - 멤버변수 초기화 기능 컬렉션 프레임워크 - 다수의 데이터를 쉽고 효과적으로 관리할 수 있게하는 클래스의 집합 List는 순서가 있고 중복 허..

INTERVIEW_EX 2024.11.18

Spring - 용어 정리 (파싱, 바인딩, 직렬화, 역직렬화, 맵핑)

Spring파싱 (Parsing)파싱은 텍스트나 문자열을 의미 있는 구조로 분석하는 과정예를 들어, 문법적으로 정확한 형태로 분해 해구조체나 트리와 같은 형태로 데이터를 변환하는 작파싱은 주로 텍스트 데이터를 컴퓨터가 이해할 수 있는 구조로 변환하는 데 사용됨EX)JSON 문자열을 객체로 변환하는 과정 등바인딩 ( Binding)바인딩은 프로그램에서 변수, 함수, 객체 등을 실제 값이나 메모리 주소와 연결하는 과정즉, 변수가 값이나 객체를 참조하도록 설정하는 것바인딩은 컴파일 시 또는 메서드 호출 시에 이루어짐특히 객체 지향 프로그래밍에서 중요한 개념EX)변수와 값 간의 연결함수 호출과 함수 구현이 연결되는 과정 등직렬화 (Serialization)직렬화는 객체나 데이터를 특정 형식(주로 텍스트나 바이너..

javaboiii의 Spring 2024.11.13

프로젝트 - 비동기처리와 멀티스레드(OpenAI Assistant API)

본인은 OpenAI Assistant API를 이용한 챗봇 구현에비동기 처리를 이용함 동기처리를 사용했을 때 문제점은서버가 하나의 작업을 처리하는 동안다른작업을 처리하지 못하는 상황(서버 블로킹)이발생할 수 있음ex) 사용자가 질문을 하면 응답이 올 때 까지 아무것도 못하고 기다려야됨 또한 본인이 구현한 로직에서는챗봇과의 대화는 따로 저장하지 않기 때문에대화 내용이 사라지거나 누락될 수 있는 위험이 있음 따라서 비동기 방식을 이용함 챗봇과의 대화 요청이 오면 서버로 비동기 요청을 함서버에선 API요청 -> openAI 서버 내에서 생성된 스레드 id를 응답 받음-> 해당 스레드에 메세지를 삽입-> 해당 스레드를 실행-> 실행된 스레드 내의 assistant 응답을 가져옴 위 로직이 하나의 비동기 요청에서..

프로젝트_리뷰 2024.11.11

프로젝트 - 바인딩 왜 안됨 ? (커맨드 객체)

본인은 이미지 파일 업로드 요청 시 MultipartFile 타입 DTO 변수에 커맨드 객체를 이용해 자동 바인딩을 하고 싶었음하지만 바인딩이 되지않고 415에러나 nullPointer예외가 발생함 자료를 찾아보니 아래와 같은 내용을 찾을 수 있었고또한@RequestBody와 MultipartFile과는 호환되지 않는다는 내용을 찾아볼 수 있었음 그 방법중 하나가 Spring이 제공하는 Converter 설정이였고자료를 찾아보며 어노테이션의 차이점을 알 수 있었음 @RequestBody와 @ModelAttribute@RequestBody와 @ModelAttribute 모두 클라이언트에서 보낸 데이터를JAVA에서 사용할 수 있는 오브젝트로 만들어주는 공통점이 있음하지만두 어노테이션은 세부 수행 동작에서 차..

프로젝트_리뷰 2024.11.09

API - OpenAi Assistant API (feat.JAVA) - 사용하기

WEB생성한 Assistant 사용하기현재 Assistant API는 베타버전이기 때문에요청 시 헤더에 "OpenAI-Beta : assistant=v2" 를 붙여줘야됨 1. Assistant 생성2. Thread 생성  // 스레드 생성 요청public static SimSimeDTO getThread(SimSimeDTO simsimeDTO, JSONParser parser) { System.out.println("KosimeFunction.java getThread() 시작"); HttpClient client = HttpClient.newHttpClient(); // 스레드 생성 요청 본문 (assistant ID 포함) String threadRequestBody = "{}"..

javaboiii의 Web 2024.11.06