분류 전체보기 41

Git의 모든 것 [part 1 - 버전관리의 본질]

해당 글은 이고잉님의 “지옥에서 온 Git”을 바탕으로 정리한 글입니다. 원본 글은 Notion에 작성하여 Tistory로 옮기는 과정에서 매끄럽지 않은 부분이 있을 수 있습니다. 좀 더 매끄러운 글로 보고 싶으시다면 원본 Notion 글을 참고해 주세요. Chapter 1 [Git을 왜 사용해야 하나?] Git 정의 : 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템 또는 이러한 명령어. 어떠한 집합의 파일의 변경사항을 지속적으로 추적하기 위해 사용. 사용 목적 버전 관리 : 동일한 정보에 대한 여러 버전을 관리하는 것. Version을 통해서 시간적으로 변경 사항과 그 변경 사항을 작성한 작업자를 추적할 수 있음. 이는 버전들의 기..

공부/+ α 2022.03.27

데이터베이스 이론 및 실습(MySQL)

데이터베이스 개념 설명 잘되어 있음. 나중에 공부할 때 참고 → https://namu.wiki/w/데이터베이스 개념 및 이론 데이터베이스 (DB, DataBase) 정의 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합. 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음 도입 배경 독립된 파일 단위로 데이터를 저장하게 되면 데이터 종속성 및 중복성이 높아 무결성을 위배할 가능성이 높을 수 있기에 이를 보안하고자 여러 시스템이 공용으로 데이터를 모아 관리하는 데이터 베이스를 구축 필수 보안 요소 무결성(integrity): 자료에 오류가 없어야 함. 최초에 오류가 없더라도 추가,갱신,삭제 등으로 오류가 발생 가능한데, 권한자만 자료를 수정이 가..

공부/DB 2022.02.28

Spring boot 입문

※ 해당 포스팅은 인프런 김영한 지식공유자님의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹MVC, DB 접근 기술'을 수강하고 강의 내용을 개인적으로 정리하고 추가적으로 공부한 것을 바탕으로 작성한 글입니다. ※ '노션'에 기록한 글을 블로그에 옮기며 생긴 오류들(사진 누락, 코드 오류 등)이 있습니다. 해당 글보다 노션을 통해 읽는 것을 권장합니다. [원본 노션 링크] Chapter 1 프로젝트 생성 Maven Project vs Gradle Project 필요한 라이브러리를 땡겨 오고 build하는 것 까지 관리해주는 Tool! 즉, 의존관계를 관리. 해당 라이브러리에 필요한 의존관계를 자동으로 설치해주고 설정해주는 것! 요즘 거의 대부분이 Gradle Project로 Spring boot 프로..

공부/Spring 2022.02.25

Java, 자료구조별 주요 Class와 Method

※ 자료구조들의 기본 메서드(추가, 제거 등)는 생략. (유용한 메서드 위주로) 1. Array 1) 정렬 (1차원) - Arrays.sort(arr) import java.util.Arrays; import java.util.Collections; int[] arr = new int[5]; java.util.Arrays 클래스 사용 inPlace, 즉 정렬된 배열을 반환하는 것이 아닌 arr 안에서 정렬. PrimitiveType 배열은 오름차순만을 제공, 내림차순은 Wrapper Class로 변환 후 가능. Integer같은 Wrapper "Class" 배열은 Comparator.reverseOrder()를 통해 내림차순 정렬 가능 Arrays.stream(tem).sorted().toArray() ..

공부/Java 2022.02.14

Java 기초, Object Oriented Programming(OOP) [클래스와 객체]

객체 지향 프로그래밍 객체를 기반으로 하는 프로그래밍 ( 절차 프로그래밍 _ C언어) 절차 프로그래밍은 절차를 기반으로 프로그래밍을 구현하고 실행함 (ex: Time이 기준) OOP는 말 그대로 객체를 기반으로 프로그래밍을 구현하고 실행하는 것 시간, 절차 중심이 아닌 객체를 중심으로 객체들의 상호작용으로 프로그래밍을 구현하고 실행 객체 : 의사나 행위가 미치는 대상, 구체적이며 추상적인 데이터 단위 절차 프로그래밍은 이처럼 시간을 중심으로 모든 사건이 진행된다. 예를 들어 학생이 일어나서 밥을 먹고 옷을 입고 버스를 타서 학교를 간다면 이 과정을 각각의 객체(학생, 밥, 옷, 버스, 학교)가 아닌 이 사건의 시간의 흐름으로 프로그램을 구현하고 실행하게 된다. 하지만 객체 지향 프로그래밍은 시간 순으로 ..

공부/Java 2022.02.11

Java 기초, 유용한 class 및 method

1. Scanner class java.util 에서 제공하는 class 주로 입력(System.in, 자바 표준 입력 스트림)을 받을 때 사용됨 () 입력되는 키 값을 공백으로 구분하는 토큰 단위로 읽음 (공백 : '','\n','\t', ... ) 사용자가 원하는 크기로 자르고 원하는 타입으로 읽을 수 있음 주요 method String next() : 다음 토큰(공백을 기준으로 판단)을 String type으로 return String nextLine() : 말 그대로 입력된 한 줄('\n' 제외)을 String type으로 return boolean hasNext() : 입력되는 토큰이 존재하면 true return, 입력이 없다면 무한정 기다림. ctrl+z로 입력 종료(false) int ne..

공부/Java 2022.02.10

Machine Learning (기계학습) - part 12 [AutoML (Automated Machine Learning)]

2021년도에 대학교 과목으로 들었던 '기계학습' 강의를 복습 및 정리 + 추가적인 공부를 위해 이 글을 작성한다. (세종대학교 최유경 교수님 '2021 기계학습'수업) 이번 파트는 대망의 마지막 파트로 지금까지 배운 모든 기계학습 개념을 하나의 툴로써 전부 적용하여 최고의 모델을 자동으로 산출해주는 AutoML을 살펴 보려한다. AutoML AutoML이란, Automated Machine Learning로, 기계 학습 파이프 라인(전처리, 학습, 검증 등)에서 이루어지는 작업들을 자동으로 처리해주고 이 과정의 모든 경우의 수들 중 가장 적합하고 성능이 좋은 모델을 산출해주는 기능이다. 한마디로 혁신 그자체인 것이다. 앞선 파트들에서 해왔듯이 데이터 전처리, 모델 학습 및 검증 등 다양한 과정을 거치며..

Machine Learning (기계학습) - part 11 [XGBoost (eXtream Gradient Boosting)]

XGBoost와 관련된 내용은 고려대학교 산업경영공학부 DSBA 연구실 강필성 교수님의 강의를 듣고 작성했다. 이전 파트는 앙상블과 그에 따른 배깅, 부스팅 기법에 대해 알아보았다. 이 부스팅 기법에는 GBM이 있었는데, 이런 GBM의 비효율적인 측면을 개선하고자 나온 LightGBM까지 알아보았다. 하지만, GBM의 개선 버전은 LightGBM 뿐만 아니라 XGboost, Catboost도 존재한다. 이런 개선버전들은 머신러닝 경진대회에서 자주 사용되는 부스팅 기법이기에 더 알아볼 필요가 있다고 생각되어 이번 파트에서 XGboost에 대해 추가적으로 공부를 하고 작성해 보았다. XGBoost (eXtream Gradient Boosting) 이론 XGBoost는 eXtream Gradient Boost..

Machine Learning (기계학습) - part 10 [앙상블(Ensemble),부스팅(Boosting)]

2021년도에 대학교 과목으로 들었던 '기계학습' 강의를 복습 및 정리 + 추가적인 공부를 위해 이 글을 작성한다. (세종대학교 최유경 교수님 '2021 기계학습'수업) 이번 파트는 머신러닝의 꽃이자 종착역인 앙상블에 대해 알아본다. 사실 앙상블은 여러 의미를 지니고 여러 용도를 가지고 있지만, 여기서는 이전에 배웠던 지도학습의 여러 모델들을 다 같이 사용하거나 하나의 모델을 여러번 사용하여 더 좋은 결과를 얻는 방법에 관한 앙상블에 대해 알아보려 한다. 앙상블(Ensemble) 이론 앙상블이란, 여러 분류기를 하나로 연결하여 개별 분류기보다 더 좋은 일반화(generalization) 성능을 달성하는 것을 이야기한다. 즉, '여러 모델을 함께 사용하자!'의 아이디어인 것이다. 이 앙상블에는 여러 분류 ..

Machine Learning (기계학습) - part 9 [교차 검증, 모델 최적화, 파이프라인]

2021년도에 대학교 과목으로 들었던 '기계학습' 강의를 복습 및 정리 + 추가적인 공부를 위해 이 글을 작성한다. (세종대학교 최유경 교수님 '2021 기계학습'수업) 이번 파트는 지금까지 배운 기계학습(지도학습, 비지도학습)을 실제로 적용할 때 유용하고 또 필요한 기술들에 대해 배우려고 한다. 이 기술에는 교차검증, 파이프라인, 모델 최적화, 최적의 하이퍼 파라미터 찾기 등이 있다. 1. 교차 검증 (Cross Validation) 이론 우리가 지금까지 학습된 모델을 검증했던 과정을 생각해보자. 학습데이터를 통해 우리가 정한 모델을 학습하고 검증데이터를 통해 해당 모델의 최적의 하이퍼파라미터를 선택했으며 마지막으로는 학습이나 검증에 이용한 적이 없는 실제 시험데이터의 정밀도를 측정했다. 이 과정에서 ..