본문 바로가기

분류 전체보기

(386)
<ML기초> 지도학습 | 비지도학습 | 강화학습 1. 지도학습 - 지도학습(Supervised Learning)은 과거의 데이터로부터 학습하여 결과를 예측하는 머신러닝의 한 분야이다. 이 때, 학습에 사용되는 데이터는 원인인 독립변수과 결과인 종속변수로 이루어져 있어야 한다. 지도학습에서 데이터를 훈련시키면 모델을 만들 수 있게 된다. - 아래 테이블은 이전 장에서 봤었던 아이스크림 판매량 데이터 세트이다. - 위 데이터를 학습시키면 "판매량 = 온도 * 2" 라는 식의 모델을 만들어낼 수 있다. 이처럼 독립변수와 종속변수의 관계를 학습시키면 컴퓨터는 그 관계를 설명할 수 있는 공식을 만들고, 이를 '모델'이라 한다. 이 공식으로 우리는 다음의 결과를 예측할 수 있다. - 이 지도학습은 크게 회귀(regression)와 분류(classification..
<Docker> 도커의 구조와 장단점 1. 구조 * Docker의 동작 원리 - 앞선 포스팅에서 봤었던 사진을 다시 들고 왔다. 도커의 기본 동작 원리를 이해하기 위해서는, Docker 엔진이 어떻게 운영체제 위에서 동작하며 컨테이너를 관리하는지 알아야 한다. Docker 엔진은 운영체제 위에서 동작하며, 그 위에서 다양한 컨테이너를 실행시킨다. 각각의 컨테이너는 '리눅스 운영체제와 비슷한' 구조를 가지고 있다. - 운영체제가 하는 일은 소프트웨어나 프로그램의 명령을 하드웨어에 전달하는 것이다. 운영체제는 '커널'과 그 외의 주변 부분으로 구성되며, 주변 부분이 프로그램의 요청을 커널에 전달하고, 커널이 하드웨어를 관리한다. Docker에서는 컨테이너가 완전히 독립적이므로, 이 주변 부분이 컨테이너 내부에 존재하며, 이를 통해 프로그램의 명..
<ML기초> 통계와 머신러닝 분류 1. 통계 * 테이블 - 앞선 장에서 봤듯이 어떤 결과를 위해서는 데이터가 필수이다. 데이터 산업은 데이터 과학과 데이터 공학으로 나눌 수 있다. 데이터 과학은 데이터를 생성하고 분석하는 일을 말하며, 데이터 공학은 데이터를 다루는 도구를 개발하고 관리하는 일을 말한다. - 데이터 산업에서는 테이블(또는 표)을 이해하는 것이 매우 중요하다. 표는 행과 열로 이루어져 있으며, 데이터를 넣을 수 있는 도구이다. 아무리 복잡한 데이터라도 표에 정리하면 컴퓨터를 통해 쉽고 빠르게 분석할 수 있다. 따라서 표는 데이터 분석의 시작점이라고 할 수 있다. - 표에서 가로를 행(row), 세로를 열(column)이라고 부른다. 만양 아이스크림 판매량 데이터를 표에 담게된다면 아래처럼 2가지 경우가 생길 것이다. - 데..
<Docker> 도커란 무엇인가 1. 소개 * 도커란 무엇인가 - 도커를 한마디로 정의하자면, 데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어이다. 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공하며, 운영체제(비슷한 것) 통째로 격리하는 기능을 갖고 있다. 도커를 사용하면 개인 컴퓨터를 마치 독립된 창고로 분리하고 데이터나 프로그램을 두는 것과 같다. 이 창고를 '컨테이너(Container)'라고 하며, 컨테이너를 다루는 기능을 제공하는 소프트웨어가 바로 도커이다. - 도커를 사용하려면 도커 소프트웨어의 본체인 '도커 엔진(Docker Engine)'을 설치해야 한다. 도커 엔진을 사용해 컨테이너를 생성하고 구동시킬 수 있다. 컨테이너를 만드려면 도커 엔진 외에도 컨테이너의 '빵틀'역할을 하는 '이미지..
<ML기초> 머신러닝이란 1. 머신러닝이란 * 소개 - 머신러닝은 인간의 판단을 기계적으로 대신하는 기술로, 비교와 선택으로 이루어진 결정 과정을 자동화하기위해 만들어졌다. 알다시피 우리는 매일매일 여러가지 결정 앞에서 고민을 해야한다. 무엇이 더 좋고 나쁜지만 안다면 이 선택은 기계적인 일인 것이다. - 따라서 인간은 결정을 편하게 하기 위해 수학적 개념인 '수'를 만들어 대소관계를 표준화했으며, 이를 기반으로 더 복잡한 세상을 표현하기 위해 '통계를 개발하기에 이르렀다. - 그러나 결정을 기계에 맡기고 싶은 욕구로 인해 인간 고유의 영역이었던 결정을 기계에 학습시키는 기술인 머신러닝이 등장한 것이다. * 만들어보기 - 머신러닝하면 코딩이나 통계, 수학 등을 떠올리게된다. 하지만 최근에는 머신러닝을 간단하게 이용하여 AI모델을..
<월간회고> 02월 | 여기, 제주도 들어가며 이번 달에는 특별히 해낸 것이 없다. 초반에는 여유가 있었지만 후반으로 갈수록 매우 바빴다. 월말에는 주말에도 회사를 나갔고, 늦게는 새벽 2시가 넘은시간까지 일을 했었다. 다행인지 불행인지 월초에 제주로 워케이션을 다녀왔기때문에 엄청 힘들지는 않았다. 다만 제주에서 충전한 에너지를 다 쏟아부었다... 이번 달에는 1. 자격증 취득 자신있게 1개월 안에 AWS Practitioner을 취득하겠다 했지만 아쉽게 실패했다. 불합격한 것은 아니고 시간이 없어서 준비를 많이 못했다. 우선 강의는 다 들었다. 하지만 목표한 만큼의 문제를 풀지 못했다. 70%를 맞춰야하지만 현재는 60%정도의 점수를 내고있다. 함께하는 동기와 3월에는 꼭 시험을 치기로 했고, 이대로 조금만 더 공부하면 합격할 수 있을 것..
<월간회고> 01월 | Running 들어가며 1월엔 비교적 여유가 있었다. 좋은 일이라고는 할 수 없지만 1월초에 시간적으로 여유가 생겨서 FE가 아닌 다른 공부에 시간을 쓸 수 있었다. 이번 기회에 올해에는 다양한 분야를 얕고 넓게 배워볼 계획이다. FE는 업무에서 앞으로도 쭉 하게될 것이기 때문에 미리 다른 직군에 대한 이해도와 커뮤니케이션 능력을 키우고 싶어졌다. 그럼에도 불구하고 좋은 일은 아니었기 때문에 심적으로 매우 불안정하여 집중력이 많이 떨어졌다. 핑계를 대자면 연휴도 있어서 쉬는 날이 더 많았다. 하지만 월말에 다시 마음을 잡았고, 다시 일어서서 달려보려한다. 이번 달에는 지난 달에 회고를 쓰지 않아서 마지막에 쓴 9월 회고의 '다음 달에는' 으로 내용을 작성하였다. 9월 이후로 쓰지 못했던 이유가 업무때문이었기 때문에 그..
<연간회고> 2022년 회고 및 2023년 목표 들어가며 이 글을 쓰는 시점이 벌써 2022년 12월 31일이다. 사실 매월 월간회고를 쓰려고 했지만 연말에 새 프로젝트 릴리즈가 있어서 쉽지 않았다. 바빠서 안 쓴 것도 있겠지만, 정말 일 외에는 거의 한 것이 없어서 쓸 내용이 없어서이기도 하다. 어쨌든 12월 회고도 생략하고, 연간회고를 작성해보려 한다. 작년에는 12월 회고에 간단하게 2021년 회고를 작성했던 것 같다. 하지만 올해부터는 연간회고도 따로 작성해서 장기적인 관점에서의 반성과 목표를 세워보고자 한다. 2022년 회고 1. 입사 2022년에 가장 인상깊었던 것을 꼽으라하면 역시 취업일 것이다. 작년 12월에 네이버 부스트캠프를 수료한 후, 꾸준히 동기들과 면접 준비와 스터디를 병행하였고, 2월에 원하는 일을 시작할 수 있게 되었다. 일..
<디자인 패턴> 싱글톤 패턴 1. 소개 싱글톤 패턴에 대해 patterns.dev는 다음과 같이 소개하고 있다. Singletons are classes which can be instantiated once, and can be accessed globally. This single instance can be shared throughout our application, which makes Singletons great for managing global state in an application. 간단히 말해 싱글톤은 단 한번만 인스턴스화되는 클래스이며, 전역상태를 관리하는 데 용이한 패턴이라는 것이다. 2. 싱글톤 * 개념 - 앱 전반에서 사용되는 숫자 카운터가 있을 때, 흔히 아래와 같이 작성할 수 있다. let coun..
<TS> 태그드 유니온 패턴 1. 소개 이펙티브 타입스크립트에서 다음과 같이 Tagged Union Pattern을 시작하고 있다. 효과적으로 타입을 설계하려면, 유효한 상태만 표현할 수 있는 타입을 만들어 내는 것이 가장 중요합니다. - 아이템28, p156 - 태그드 유니온 패턴은 타입에 태그를 추가하여 효율적으로 타입을 설계할 수 있는 방식이다. 이를 어디서 활용하면 좋을지 크게 두 가지로 나누어 정리해 보았다. 2. 사용 * 각 필드가 연관되어 특정될 경우 - 특정 페이지의 상태를 설계한다고 생각해보자. 아마 다음과 같은 타입의 상태를 정의할 수 있을 것이다 interface State { pageText: string; isLoading: boolean; error?: string; } - 단순히 봤을 때는 문제가 없어 보..