분류 전체보기 65

[DL/NLP] Word2Vec - CBOW & Skip-Gram 방식

Word2Vec word2Vec은 워드 임베딩 기법으로 단어를 벡터형태로 전환하는 기법이다. 2013년 토론토 대학에서 발표했으며 현재까지도 많이 활용되는 기법이다. 신경망 모델을 사용해서 말뭉치에서 단어들의 연관성을 학습한다. 즉 주어진 문맥에서 발생하는 단어를 예측하는 문제로 단어 임베딩 벡터를 학습한다. word2Vec에는 CBOW와 Skip-Gram 두 가지 방법이 있다. CBOW vs Skip-Gram CBOW: 주변 단어를 활용해 중간에 있는 단어 예측 Skip-Gram: 중간 단어를 활용해 주변에 있는 단어 예측 0. 사전 준비 1) 라이브러리 호출 from gensim.models import word2vec import list_file 2) 데이터 확인 1. Word2Vec 모델 정의 ..

IT Study/ML & DL 2023.12.23

[DL/CNN] CNN 실습 (with. MNIST data)

0. 데이터셋 확인 사용 데이터: train 5000개, test 1000개 이미지 데이터의 크기 28x28 데이터 특징: 2차원의 0~255 픽셀 값으로 구성 CNN의 input data format은 3차원(가로, 세로, 채널) => 전처리로 채널 차원을 추가해야한다 9개의 이미지 시각화 라벨 데이터 0~9까지의 10개의 값으로 라벨링 되어있다 => 전처리 시, 원핫 인코딩 진행 필요 1. 데이터 전처리 1) x 데이터 채널차원 추가 numpy의 expand_dims 함수를 통해 채널 차원을 추가해준다 np.expand_dims (arr, axis) arr: 차원을 확장할 배열 axis: 새로 추가될 차원의 위치(default: 0 -> 인덱스 0 앞에 새로운 차원을 추가하겠다) 실습에서는 axis에..

IT Study/ML & DL 2023.12.22

[Backend] AWS RDS와 Mysql 연결하기 (+에러해결)

AWS RDS란? AWS Relational Database Service(RDS)는 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 규모 조정할 수 있는 관계형 데이터베이스 서비스이다. 유저가 사용하기 쉽도록 인프라 등을 자동화 시켜주고 유저들은 드포인트로 접속할 수 있도록 데이터베이스를 제공받는다. RDS를 사용하면 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화하면서, 비용 효율적이고 크기 조정 가능한 용량을 제공한다. 제공하는 DB 엔진으로는 MS SQL Server, Oracle, MySQL, PostgreSQL, MariaDB, IBM Db2, Aurora가 있다. ..

IT Study 2023.12.17

[Backend] UUID vs ULID vs snowflake ID

UUID 범용 고유 식별자(Universally Unique Identifier)로 고유하게 식별하는데 사용되는 레이블이다. 주로 분산 컴퓨팅 환경에서 사용된다. 중앙에서 관리되지 않는 분산 환경이라면 개별 시스템이 id를 발급하더라도 유일성이 보장되어야 하기 때문에 등장하게 되었다. 전역적으로 고유하지는 않으나 중복의 가능성은 거의 적다. 36자의 문자열로 표시되는 128비트의 값이다. 하이픈으로 구분된 32개의 16진수 문자열의 패턴을 보인다. uuid의 버전 버전은 1, 3, 4, 5가 있다. 1버전: 타임스탬프를 기준으로 생성 3버전: MD5 해시기반으로 생성 4버전: 랜덤 생성 5버전: SHA-1 해시를 이용해 생성 => 1버전과 4버전을 많이 사용하나 1버전도 중복값 존재의 가능성이 있어서 주..

IT Study/CS 2023.12.16

[Front-end] 웹개발 프로젝트 코드 리뷰 정리 및 Study

프론트엔드로 프로젝트를 처음 해보면서 기능 구현하기에만 급급해코드 간결성이나 다른 훅들 사용에는 많이 부족했는데감사하게도 코치님께서 프로젝트가 끝난 후 코드 리뷰를 작성해주셨다.부끄럽지만🤣 기존에 내가 작성했던 코드와 리뷰 후 수정된 코드들을 비교해보면서 정리해보려한다.  1. useEffect 내부는 간결한 형태로 정리하는 것이 좋다useEffect 내부 코드의 가독성이 떨어지는 곳이 한 군데가 아니었다..!// 기존코드useEffect(() => { api({ method: 'get', url: "/fulfilled-habits", params: {date: getDate()[1]}, }) .then((res) => { const h..

Activity/개발 2023.12.12

[Front/React] Axios vs Fetch (+ axios 인터셉터, 인스턴스)

Fetch와 axios는 모두 promise 기반의 HTTP 통신 라이브러리 Axios Node.js와 브라우저를 위한 라이브러리 모듈 설치 후 import 필요 import axios from "axios"; Fetch ES6에 들어온 JavaScript 내장 라이브러리 별도로 import할 필요가 없음 Axios vs Fetch 1. 요청문법 fetch는 두 개의 인자를 받는데, 첫 번째 인자는 리소스 url, 두 번째 인자는 요청의 설정 옵션 설정 옵션의 기본값은 GET 요청 fetch(url, { method: "GET", headers: { "Content-Type": "application/json", }, body: JSON.stringify({}), }); axios는 Fetch와 유사하게..

IT Study/React 2023.12.10

[Front/React] react-error-boundary 라이브러리로 에러 처리하기

개발을 한 후에 미처 예상하지 못한 에러가 발생할 경우 '터진다'라 표현을 한다고 한다. 소프트웨어는 가변적이고 불규칙적이라서 100% 완벽하게 코드를 짰다고 해도 브라우저나 사용자의 접속환경에 따라서 에러가 나타날 수도 있다. 예측이 불가능하기 때문에 예상 못한 에러에 대해서도 처리를 해주어야 한다. 70%의 완벽한 코드와 30%의 에러 처리로 나누어진다고 한다. Error Boundary Error Boundary는 리액트에서 효과적으로 에러 처리를 할 수 있는 방법으로 React 16에서 도입된 개념이다. 에러가 발생하면서 유저는 화면이 멈추게 되거나 다른 동작들을 할 수가 없게 되는데 이는 UX 측면에서 굉장한 마이너스적 요소이다. 에러로 인해 컴포넌트가 실행되지 않는 경우들을 위해 다른 컴포넌트..

IT Study/React 2023.12.09

[Front/React] useMemo()로 효율적으로 관리하기

프로젝트 중간중간 마다 코치님께 코드 리뷰를 받는 시간이 있다. 내가 건드린 코드들이 많아서 그만큼 피드백을 받은 부분도 많았는데, 상당수가 useMemo와 useCallback과 관련한 코드였다. 직접 useMemo 코드를 사용해 전과 후를 비교해봤던 것들을 기록해본다. useMemo() useMemo()는 리액트의 훅 중 하나로, 컴포넌트의 성능을 최적화하는데 사용된다. memo는 우리가 익히 알고 있는 '메모하다'의 의미를 가지고 있는데 즉 '메모리에 넣는다'는 것을 의미한다. 컴퓨터가 동일한 계산을 반복해서 수행을 해야할 때 이전에 계산한 값을 메모리에 저장해서 동일한 계산의 반복 수행을 제거하도록 하는 Hook이다. 반복 계산을 줄이기 때문에 실행 속도가 빨라지며 불필요한 렌더링을 방지할 수 있..

IT Study/React 2023.12.08

[Front/React] 프론트엔드 쿠키 & JWT토큰 응답/요청

프론트: React, 백: Node.js 백에서 쿠키에 JWT토큰을 담아서 전송해주고 페이지를 이동할 때마다 프론트에서 api 요청을 하면 헤더에 있는 쿠키로 백에서는 사용자 인증을 처리하고 응답을 보내주는 방식으로 프로젝트를 진행했다. 이 부분까지는 1차 프로젝트에서도 동일하게 진행했던 방식이라서 이해를 하고 있었고 1차 프로젝트 때는 백을 맡았고 지금 2차 프로젝트에서는 프론트를 맡게되어 백으로 어떻게 요청을 하는지 몰라서 한참을 헤멨다. 찾아보는 곳마다 너무 다양하고, 잘 모르다보니 프론트에서도 쿠키를 또 생성할 뻔 했다...ㅎ 그렇게 2시간 넘게 헤메다가 해결... 생각의 흐름 첫 번째, 브라우저에 쿠키가 저장이 되기 때문에 프론트에서 쿠키를 긁어와서 백으로 api 요청을 보..

IT Study/React 2023.12.02

[Front/React] FullCalender 라이브러리 커스터마이징

2차 프로젝트에서 달력을 만들어보고자 했다. 코치님께서는 직접 만들어보는 것도 좋은 경험이 될 것이라고 해주셨는데 프로젝트 기간이 정해져있다보니 시간이 얼마나 걸릴지 몰라서 우선은 라이브러리를 사용했다 직접 달력을 만들어보는 작업은 나중에...! FullCalender 라이브러리를 사용해서 캘린더를 만들어보았다 이미지 넣기 주말에 색 넣기 날짜 포맷 이미지 클릭하면 값 변경 다른 달로 넘어갔다가 today 버튼을 누르면 오늘 날짜의 값으로 변경하기 비어있는 날짜 클릭해도 값 띄우기 1. FullCalender 라이브러리 설치 FullCalender 라이브러리 사용을 위해서는 npm으로 설치가 필요하다. 가장 많이 사용되는 react, daygrid만을 설치했다. npm install -..

IT Study/React 2023.11.29
반응형