전체 글579 Hibernate Hibernate - JPA 표준 구현하고, 확장한 ORM 프레임워크 Hibernate는 JPA(Java Persistence API)의 표준을 구현하고 확장한 ORM 프레임워크입니다. Hibernate는 개발자가 객체 지향적인 방식으로 데이터를 다룰 수 있도록 도와주며, 객체와 데이터베이스 간의 매핑을 관리합니다. 개발자는 자바 객체를 사용하여 데이터베이스의 테이블과 상호작용할 수 있으며, Hibernate가 자동으로 SQL 쿼리를 생성하고 실행하여 데이터베이스와의 상호작용을 처리합니다. Hibernate를 사용하면 개발자는 SQL 쿼리 작성 및 데이터베이스와의 상세한 연결 및 트랜잭션 관리에 대한 부담을 줄일 수 있으며, 객체 지향적인 개발에 집중할 수 있습니다. Hibernate Modeling 1.. DEV/Backend 2023. 7. 11. MyBatis MyBatis - Java의 오픈 소스 ORM 프레임워크이다 MyBatis는 기존 JDBC 코드의 반복과 복잡성을 줄이고, 데이터베이스와 객체 간의 매핑을 보다 편리하게 처리할 수 있도록 도와줍니다. 즉 개발자는 복잡한 SQL 매핑과 성능 최적화를 자유롭게 제어할 수 있습니다. 예제 코드 같은 기능인데도 MyBatis가 간편한게 보인다 MyBatis User Object 맵핑을 바로 해준다 public interface UserMapper { @Select("SELECT * FROM users WHERE id = #{id}") User getUserById(int id); } JDBC 커서 만들고, Close 하고 세팅 할 것이 많다. public class UserDAO { private final D.. DEV/Backend 2023. 7. 11. Restful API Restful API - 클라이언트와 서버 간 통신 규칙과 규약 제공 - 강제성이 없고, 이미 컨벤션이 있다면 존중하라 REST는 웹 기반 애플리케이션에서 자원을 표현하고 상태를 전송하기 위한 아키텍처 스타일입니다. 이는 RESTful API의 규칙과 규약을 제공하며, 이를 통해 클라이언트와 서버 간의 통신이 이루어집니다. 자원은 고유한 URI(Uniform Resource Identifier)로 표현되고, HTTP 메서드를 사용하여 자원을 조작합니다. Restful API 예시 모든 사용자 조회: GET: /users 특정 사용자 조회: GET: /users/{id} 새로운 사용자 생성: POST: /users 특정 사용자 수정: PUT: /users/{id} 특정 사용자 삭제: DELETE: /use.. DEV/Backend 2023. 7. 11. Support Vector Machine Support Vector Machine - 데이터를 고차원 공간으로 맵핑하여, 데이터를 구분하는 알고리즘 - 초평면을 그린다 - 데이터를 정확히 분류하는 범위를 찾고, Margin을 최대화 되도록 구분 SVM (Support Vector Machine)은 Classification를 위한 Machine Learning 방법 중 하나입니다. SVM은 지도 학습(Supervised Learning)으로, 분류 문제에서 케이스를 구분하는 분리자를 찾아서 케이스를 분류합니다. SVM은 데이터를 고차원 특징 공간으로 매핑하여 데이터가 선형적으로 분리되지 않는 경우에도 카테고리별로 분류할 수 있도록 합니다. 그런 다음, 데이터를 위한 분리자를 추정합니다. 데이터는 분리자를 초평면으로 그릴 수 있도록 변형되어야 합.. AI 2023. 7. 11. sigmoid 함수 - 0 ~ 1 사이의 결과 값으로 확률을 모델링 할 때 사용 된다 - [[Logistic Regression]]에서 종속 변수 확률 예측하는데 사용 된다 시그모이드 함수는 이름에서 알 수 있듯이 ‘S’ 형태의 곡선을 가지는 함수를 의미하며, 여기에서 'S’는 "시그모이드(Sigmoid)"의 'S’입니다. 수학적으로 표현하면 아래와 같습니다. Sigmoid 함수와 로짓 함수의 관계 일단 서로 역함수 관계입니다. 즉, 로지스틱 함수가 0과 1 사이의 값을 출력한다면 로짓 함수는 0과 1 사이의 값을 입력으로 받아서 실수 값을 출력합니다. 로지스틱 함수는 실수 값을 0과 1 사이의 값으로 '압축’하는 역할을 합니다. 반면에 로짓 함수는 0과 1 사이의 확률값을 다시 실수 값으로 ‘펼쳐’ 놓습니다. 부족한 점이.. AI 2023. 7. 11. Logistic Regression - [[이진 분류]]하는 상황에서 자주 사용한다 로지스틱 회귀는 종속 변수가 이진 변수인 경우를 다루는 통계 기법입니다. 로지스틱 회귀는 독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는데 사용됩니다. 이 방법은 Linear Regression과 매우 유사하지만, 로지스틱 회귀는 종속 변수가 범주형이고 선형 회귀는 종속 변수가 연속형이라는 점에서 차이가 있습니다 예시로 10년 후의 지구 온도는 어떻게 될까는 Linear Regression이고, 10년 후의 지구 온도가 50도 이상일까?는 Logistic Regression이다. 손실 함수 (Loss function) 이진 분류 문제(binary classification problem)의 경우 다중 클래스 분류 문제(multiclass c.. AI 2023. 7. 11. @ToString @ToString - 해당 클래스의 정보를 문자열로 자동 생성한다. - 사용자는 클래스 인스턴스를 바로 출력하면, 인스턴스 정보를 알 수 있다. @ToString은 Java의 Lombok 라이브러리에 포함된 주석입니다. Lombok은 편집기와 빌드 도구에 자동으로 연결되는 Java 라이브러리로, 반복적인 코드를 줄여주는 유용한 기능을 제공합니다. @ToString를 클래스에 적용하면, Lombok은 해당 클래스에 대한 toString() 메서드를 자동으로 생성합니다. 이 toString() 메서드는 클래스 이름과 각 필드와 그 값들을 포함하는 문자열을 생성합니다. 이는 디버깅에 매우 유용할 수 있습니다. 객체의 상태를 쉽게 출력할 수 있습니다. 예시 Certainly! Here’s an example t.. DEV/Java 2023. 7. 10. @Component @Component - Spring에서 해당 클래스의 인스턴스를 싱글톤 생성 - Spring Context 내에서 전역적으로 사용가능하게 한다 @Component 어노테이션은 Spring에서 해당 클래스의 인스턴스가 필요할 때 Spring이 직접 관리하도록 해줍니다 이렇게 하면 Spring IoC Container는 이 클래스의 라이프사이클을 관리하게 됩니다. 다시 말해, 이 클래스의 인스턴스를 언제 생성하고, 언제 소멸시킬지 등을 결정하게 됩니다. 또한, 이 클래스를 필요로 하는 다른 클래스에게 자동으로 제공할 수 있게 됩니다. 이것은 모듈 간의 의존성 관리(DI (Dependency Injection))를 더욱 편리하게 만들어줍니다. 필요한 객체를 직접 생성하거나 찾는 대신, 필요한 곳에 적절하게 주.. DEV/Java 2023. 7. 10. Mock API 작성하는 팁 Mock API 작성하는 팁 🐥 카카오테크캠퍼스 - 2단계 2주차 과제를 수행 할 때, 하나하나 데이터를 입력해야 하는 불편함이 있었는데 오늘 강사님이 보여주신 코드를 보니까 깔끔해서 들고 왔다 @GetMapping("/products") public ResponseEntity findAll(@RequestParam(defaultValue = "0") int page) { List responseDTO = new ArrayList(); // 상품 하나씩 집어넣기 responseDTO.add(new ProductRespFindAllDTO( 1, "기본에 슬라이딩 지퍼백 크리스마스/플라워에디션 에디션 외 주방용품 특가전", "", "/images/1.jpg", 1000 )); responseDTO.add(n.. DEV/Backend 2023. 7. 10. Lab - Decision Trees Lab - Decision Trees Import the Following Libraries: numpy (as np) pandas DecisionTreeClassifier from sklearn.tree import piplite await piplite.install(['pandas']) await piplite.install(['matplotlib']) await piplite.install(['numpy']) await piplite.install(['scikit-learn']) import numpy as np import pandas as pd from sklearn.tree import DecisionTreeClassifier import sklearn.tree as tree from pyo.. AI 2023. 7. 10. Decision Tree Decision Tree - 데이터 분류 기준을 학습하고, 트리 구조로 값을 예측한다 - 정보 이득이 높은 방향으로 데이터를 분할한다 의사결정 트리는 데이터를 분류하거나 값(레이블)을 예측하는데 사용하는 트리 구조 알고리즘이다 이 알고리즘은 각 노드에서 특정 속성에 대한 판단을 내리고 그 결과에 따라 데이터를 분할하는 방식으로 동작합니다. 왜 Machine Learning인가? 데이터의 특징을 기반으로 결정을 내리며, 이 결정 규칙을 학습 데이터로부터 자동으로 학습하기 때문입니다. 의사결정 트리의 순서는 각 속성의 중요도에 따라 자동으로 결정되며, 이 중요도는 데이터로부터 학습하는 과정을 통해 결정됩니다. 주요 요점 트리를 구성하는데 있어 어떤 속성이 데이터를 분할하는지가 핵심이다. 이를 결정하기 위해 .. AI 2023. 7. 10. Machine Learning - AI의 통계적인 부분을 담당 - 목적 : 학습을 통해 목표에 최대한 근사한 값을 찾아낸다 학습 시킨다의 의미 주어진 데이터를 학습 시켜서 가장 합리적인 모델(직선, 방정식 등)을 찾아내는 것입니다 지도 학습(Supervised Learning) Regression(회귀) 모델 Linear Regression : 종속 변수와 독립 변수 간의 선형 관계 Single Linear Regression Multiple Linear Regression Non-Linear Regression : 종속 변수와 독립 변수 간의 비선형 관계 Classification Decision Tree KNN(K-Nearset Neighbors) Logistic Regression Support Vector Machine 비지도.. AI 2023. 7. 10. 이전 1 ··· 14 15 16 17 18 19 20 ··· 49 다음