본문 바로가기

Language

[Python] pandas 판다스는 파이썬에서 데이터 처리를 위해 사용하는 라이브러리이다. 일반적으로 행과 열로 구성된 2차원 데이터를 다룬다. DataFrame은 여러 개의 행과 열로 이루어진 2차원 데이터를 담는 데이터 구조체이다. 데이터셋은 kaggle의 Titanic - Machine Learning from Disaster의 데이터셋 중 train.csv 파일을 사용했다. import pandas as pd pandas 모듈을 pd라는 이름으로 가져온다. df = pd.read_csv("train.csv") train.csv 파일을 읽어 Dataframe으로 로딩한다. df.head() 데이터의 일부를 직접 확인할 수 있다. df.info() RangeIndex: 891 entries, 0 to 890 Data colum..
[Python] Dependency Injector (1) 의존성 주입 패턴(Dependency Injection Pattern)은 일반적으로 객체 생성 시, 해당 객체가 의존하는 다른 객체를 직접 생성하는 것이 아니라 외부에서 주입받도록 하는 방법이다. 이를 통해 객체 간의 결합도가 낮아지기 때문에, 유지보수 및 코드 재사용성이 높일 수 있다. Dependency Injector는 Python에서 의존성 주입 패턴을 구현할 수 있게 도와주는 라이브러리 중 하나이다. 이를 사용해 객체 간의 결합도를 낮추고, 코드의 유연성과 확장성을 높일 수 있다. 처음에는 이런 개념이 잘 와닿지 않았다. 이러한 Dependency Injector의 개념과 기능들을 코드 예시와 함께 설명하면 좀 더 쉽게 이해할 수 있다. class Database: def __init__(sel..
[Python] ensure_future asyncio를 사용하다가 혼동되는 부분이 많다. 대표적으로는 Task와 Future의 차이가 있을 것이다. asyncio.create_task()와 asyncio.ensure_future() 또한 혼동되는 부분이다. 예제 코드를 찾아보면 ensure_future를 사용하는 코드도 간간히 볼 수 있었다. 두 함수 모두 코루틴을 실행하기 위해 사용될 수 있기 때문에 혼용해서 쓰는 경우가 많은 것 같다. 각 함수의 역할을 더 정확히 알아보고 이에 대해 정리했다.​ximport asyncio​async def f(): pass​coro = f()loop = asyncio.get_event_loop()​task1 = loop.create_task(coro)assert isinstance(task1, asynci..
[Vue] 플러그인 만들기 플러그인을 통해 전역적으로 필요한 기능을 추가할 수 있다.먼저 코드를 작성한다.​x// MyPlugin.jsimport Vue from 'vue'​export const MyPlugin = { install (Vue) { Vue.prototype.$myMethod = function() { console.log("method1"); } }}​Vue.use(MyPlugin)프로젝트 생성후 main.js의 vue 인스턴스에 플러그인을 추가한다.xxxxxxxxxximport Vue from 'vue'import App from './App.vue'import MyPlugin from "@/plugins/MyPlugin";​Vue.config.productionTip = false​new Vue({ MyPlug..
[C/C++] Declaration VS Definition Declaration은 변수의 이름, 타입, 초기값(있다면)에 대한 정보를 컴파일러에게 알려주는 것이다. 즉 선언이란 한 변수의 속성에 대해 자세한 내용을 제공하는 것이다.Definetion이란 변수가 어디에 저장되어있는지, 즉 변수가 메모리 어디에 할당되는지를 말한다.C에서 변수에 대한 선언과 정의는 동시에 일어난다.int a;a라는 변수에 이름(a)과 타입(int)같은 정보가 컴파일러로 보내져 심볼테이블이라는 자료구조에 저장될 것이다. 이를 통해 메모리에는 4byte가 할당될 것이다.변수의 선언은 일어나지만 정의는 일어나지 않는 경우를 보자. 바로 extern 키워드를 사용할 때 이다.xxxxxxxxxxextern int a;extern 키워드는 다른 파일에서 미리 정의된 변수 이름을 가져올 때 사용..
[Vue] Vue 인스턴스 Vue 인스턴스는 Vue.js를 시작할 때 사용하는 객체를 의미하며 어플리케이션의 시작점이라고 할 수 있다. Vue 어플리케이션은 Vue함수로 인스턴스를 생성하는 것부터 시작한다.var vm = new Vue({ // options});​//또는new Vue({ // options});옵션에는 아래와 같은 속성들이 전달된다.el, template, data, props, computed, methods, watch위 속성들은 컴포넌트와 다르지 않다.여기서는 el 프로퍼티를 볼 수 있는데 이는 HTML 문서에 마운트될 HTML 엘리먼트를 지정하는 역할을 한다.//html // scriptnew Vue({ el: "app"});vue/cli로 Vue 프로젝트를 생성 후 index.html을 보면 body태그..
[C++] std::map 흔히 사용하는 key-value 자료형이다. C++에서는 #include으로 사용할 수 있다.std::map m;주요 함수삽입xxxxxxxxxxm.insert(make_pair("a", 100));m.insert(make_pair("c", 400));m.insert(make_pair("d", 200));m.insert(make_pair("b", 300));삭제xxxxxxxxxxm.erase("a"); // key 또는 iterator검색​xm["b"] //value​// find는 iterator를 반환한다.m.find("b")->first; //keym.find("b")->second; //value이 때 key에 해당하는 값이 없다면[]연산자는 0을 반환한다.find는 end() iterator를 반..
[C++] std::endl 알고리즘 문제를 푸는데 시간초과가 계속 발생했다. 정답 코드를 검색해서 비교해봤을때 내 코드와 다른 부분은 출력부분 뿐이었다. 나는 개행을 std::end를 사용했다.​xfor (int i = 0; i