2025/03 14

[Spring Boot] JPA로 REST API 개발하기 (1)

Spring Boot와 JPA를 이용한 REST API 개발사용 기술 : Spring Tool Suite4(STS 4), Spring Boot, Spring Web, Spring Data JPA, Spring Boot DevTools, Oracle DB, Oracle Driver, Lombok, ThymeleafREST API(Representational State Transfer API) : 클라이언트와 서버 간 통신을 HTTP 프로토콜을 기반으로 설계하는 방식Resource(자원) 중심 설계 : URI를 통해 자원 식별HTTP 메서드GET : 데이터 조회POST : 데이터 생성PUT : 데이터 수정DELETE : 데이터 삭제JSON, XML 응답JPA(Java Presistence API) : Ja..

인덱스(Index) 활용

인덱스(Index)는 데이터베이스에서 데이터를 빠르게 검색하고, 접근할 수 있도록 돕는 검색 구조!특정 데이터를 빠르게 찾을 수 있도록 돕는 데이터 구조로 데이터베이스에서 인덱스를 사용하면 검색 성능이 향상된다.데이터베이스에서 인덱스를 생성하면, 데이터를 순차적으로 스캔하지 않고 인덱스 테이블을 사용해 빠르게 원하는 데이터를 찾을 수 있다.구조키(Key) : 데이터를 식별하는 값.값(Value) : 키와 관련된 실제 데이터의 위치 정보종류B-Tree 인덱스(기본 인덱스)구조 : 균형 이진 트리구조를 기반으로 데이터를 정렬하여 저장한다.특징 : 범위 검색에 매우 효율적이고, 대부분 데이터베이스에서 기본 인덱스로 사용한다.           [EX- WHERE x BETWEEN : x - 1 AND : x ..

개인 공부 2025.03.24

[Python] 네이버 웹툰 데이터 분석

데이터 준비https://www.kaggle.com/datasets/bmofinnjake/naverwebtoon-datakorean?resource=download Webtoon Dataset in Koreancomics serialized in webtoon platforms (Naver)www.kaggle.com위 사이트에서 naver.csv 파일을 받아서 사용했습니다.(로그인 필요) 데이터 로드 및 데이터 확인import pandas as pd# CSV 파일 로드df = pd.read_csv('naver.csv')# 데이터 크기 확인 : 행과 열 개수print('데이터 크기 :',df.shape)print('===================================================..

Python 2025.03.20

[Python] 신경망 모델 훈련

# 케라스 API를 사용해서 모델 훈련에 필요한 도구 알아보기# 데이터 준비from sklearn.model_selection import train_test_splitfrom tensorflow import keras(train_input, train_target), (test_input, test_target) = \ keras.datasets.fashion_mnist.load_data()train_scaled = train_input / 255.0train_scaled, val_scaled, train_target, val_target = train_test_split( train_scaled, train_target, test_size = 0.2, random_state = 42) tr..

Python 2025.03.14

[Python] 딥러닝

딥러닝 - 인공신경망(ANN, Artificial Neural Nework)- 딥러닝은 인공신경망을 기반으로 한 머신러닝 기술.인공신경망은 인간의 뇌 신경망을 모방하여 만든 모델로, 복잡한 데이터 패턴을 학습하고 예측할 수 있다.인공신경망(ANN) : 입력층(Input Layer), 은닉층(Hidden Layer), 출력층(Output layer)으로 구성된다.각 층의 뉴런이 가중치와 활성화 함수를 이용해 연결됨.기본 구조 : [입력층] > [은닉층1] > [은닉층2] > ... > [출력층]입력층 : 입력 데이터가 들어오는 층은닉층 : 여러 개의 뉴런이 가중치를 통해 연결됨출력층 : 최종 예측 결과가 출력되는 층뉴런(Neuron) : 여러 개의 입력 값을 받아 가중치를 곱하고 이를 활성화 함수를 통해 ..

카테고리 없음 2025.03.13

[Python] 비지도 학습

비지도 학습(Unsupervised Learning) : 레이블이 없는 데이터를 학습하는 머신러닝의 한 종류.- 입력 데이터에 대한 정답(레이블)이 없이 모델이 데이터의 숨겨진 패턴이나 구조를 학습한다.- 비지도 학습의 목적 : 데이터의 구조를 파악하거나, 유사한 특성을 가진 데이터들을 그룹화하거나, 차원 축소를 통해 데이터의 본질적인 특성을 드러내는 것.장점레이블이 없는 데이터 사용 : 정답(레이블)이 없는 데이터를 사용하여 학습할 수 있으므로, 데이터 레이블을 붙이는 작업이 불필요새로운 패턴 발견 : 기존에 알려지지 않은 패턴이나 구조를 발견하는 데 유용데이터의 이해 : 데이터를 자동적으로 그룹화하거나 축소하여 데이터의 본질을 이해하도록 도와줌비즈니스 적용 가능성 : 고객 세분화(클러스터링), 이상 ..

Python 2025.03.13

[Python] 머신러닝 (3)

결정트리(Decision Tree) : 데이터를 분류하거나 회귀 분석을 수행하는 머신러닝 알고리즘.노드(Node)와 가지(Branch)로 이루어진 트리 구조를 가지고, 특정 기준에 따라 데이터를 반복적으로 분할해서 예측을 수행한다.루트 노드(Root Node) : 처음 데이터를 나누는 시작점내부 노드(Internal Node) : 중간 의사결정을 담당하는 노드리프 노드(Leaf Node) : 최종적인 예측값을 제공하는 노드결정트리는 엔트로피와 지니 계수 같은 척도를 이용해서 데이터의 불순도를 측정하고, 가장 좋은 기준을 찾아서 데이터를 분할한다.알고리즘 작동 방식특성 선택 : 데이터를 가장 잘 나눌 수 있는 특성 선택분할 : 선택된 특성에 따라 데이터를 두 개 이상의 그룹으로 분할반복 : 리프 노드가 될..

Python 2025.03.10

[Python] 머신러닝 (2)

특성 공학과 규제특성 공학(Feature Engineering) : 머신러닝 모델의 성능을 향상시키기 위해 원본 데이터를 변형하거나 새로운 특성을 생성하는 과정.주요 기법다항 특성 생성 : 데이터의 비선형 관계를 포착하기 위해 입력 변수의 제곱, 세제곱 등의 다항식 변수를 추가하는 기법.표준화(Standardization)와 정규화(Normalization)표준화 : 평균이 0이고 분산이 1이 되도록 데이터를 변환해서 모델이 특정 변수에 치우치지 않게 한다.정규화 : 데이터의 스케일을 0 ~ 1 범위로 변환해서 학습을 안정적으로 만든다.불필요한 특성 제거 : 상관관계가 낮거나, 중요도가 낮은 특성을 제거해서 과적합을 방지하고, 학습 속도를 향상시킨다.차원 축소 : 고차원의 데이터를 저차원으로 변환하여 학..

Python 2025.03.08

[Python] 머신러닝 (1)

KNN(K-Nearest Neighbors Classfier) : 새로운 데이터 포인트의 클래스(label)를 예측할 때, 가장 가까운 K개의 이웃(데이터 포인트)의 클래스를 참고해서 결정하는 알고리즘.KNN의 특징거리 기반 알고리즘데이터가 많아질수록 연산 비용 증가(비효율적)학습 과정이 거의 없음(Lazy Leaning)데이터 분포가 명확하면 강력한 성능 발휘KNN의 동작 원리새로운 데이터 포인트가 주어지면 기존 데이터와의 거리를 계산가장 가까운 K개의 이웃을 선택이웃들의 클래스 중 가장 많이 등장하는 클래스를 새로운 데이터의 클래스로 예측장점이해하고 구현하기 쉽다학습 시간이 거의 없다적절한 K값 설정 시 높은 성능단점데이터가 많아지면 거리 계산 비용 증가K값 설정이 성능에 큰 영향을 미침차원의 저주(..

Python 2025.03.05