LLM 인퍼런스 훑어보기 (1) - LLM을 이용한 문장 생성
·
AI/모델 인퍼런스
인공 지능과 머신 러닝의 급속한 발전은 특히 자연어 처리 분야에서 주목할 만한 진전을 이루었습니다. 이 분야에서 Large Language Model(LLM)은 그 우수한 성능으로 다양한 서비스와 애플리케이션의 혁신을 가능하게 했습니다. 이러한 모델들은 방대한 양의 데이터와 복잡한 네트워크 구조를 바탕으로 학습되어, 상당한 컴퓨팅 자원과 시간을 필요로 합니다.LLM은 언어 이해와 생성 작업에서 뛰어난 결과를 보여주며, 이를 가능하게 하는 기술적 구현은 특히 중요합니다. 실제 서비스에 LLM을 적용하기 위해서는 모델의 인퍼런스가 효율적이어야 하며, 이는 컴퓨팅 자원을 적절히 관리하고 최적화하는 과정을 포함합니다. 효율성과 효과성은 이 모델을 경제적으로 운용하면서도 최대의 성능을 발휘하도록 하는 핵심 요소입..
강의 노트: LoRa로 빠르게 나만의 모델을 만들어보자
·
AI/Lecture notes
본 정리글은 "[챗GPT 러닝데이 | 챗GPT말고 LLM] LoRa로 빠르게 나만의 모델을 만들어보자 - 김용담"을 보고 작성하였습니다. LoRa가 등장한 배경 Large-Scale Pretrained Model 대용량 데이터와 대규모 파라미터로 학습된 모델들 GPT-3 (175B) LSPM limitation Over-parametrized model이다 보통 pre-trained model을 fine-tuning해서 donwstream task를 푸는데, 필요한 정보는 일부임 기존 연구들을 통해서 필요한 정보는 'intrinsic dimension'에 있을 것이라고 판단했음 이러한 intrinsic dimension을 찾기 위해 'Low-Rank space'로 변환하는 방식을 사용하면 더 적은 파라미..
[GPT로 영어 공부] 23. 07. 06
·
영어공부/GPT로 영어 회화 공부
업무를 하면서 영어 회화의 중요성을 느끼고 있는 요즘입니다. openAI의 chatGPT에게 영어를 배워보면 재미있을 것 같아서, 자주자주 GPT와 놀아볼 예정입니다. 이 대화의 instruction 및 prompt는 ChatGPT에게 생성 요청하였습니다. Me Let's have a small talk in English! What topic would you like to discuss? ChatGPT Sure, let's have a small talk! How about we discuss travel? It's always interesting to talk about different destinations, experiences, and travel tips. Do yo..
강의 노트: 입문 - 자연어처리 시작하기
·
AI/Lecture notes
본 정리글은 "[챗GPT 러닝데이] 입문 - 자연어처리 시작하기 - 김준영"을 보고 작성하였습니다.자연어 처리?자연어 처리 = 인간의 언어 텍스트를 컴퓨터로 표현하기근본은 사실 확률적 언어 생성이다. => 입력된 제시 조건(문장, 단어 등)에서부터 내용을 잘 파악해서 어떤 말들이 이어서 나올 가능성이 높았는가?컴퓨터로 문장과 문단의 의미를 다루기 위해서는 문장을 형태소로 분리하고 -> 토큰화(tokenizing)형태소마다의 의미를 수로 표현할 수 있어야 함 -> 임베딩(embedding)Tokenizer크게 두가지 tokenizer가 있음전문가 분석/지도학습 기반Okyt, Komoran, Mecab, Hannanum, Kkma 등비지도학습 기반sentencepiece, soynlp 등주어진 Corpus를..
[GPT로 영어 공부] 23. 07. 05
·
영어공부/GPT로 영어 회화 공부
업무를 하면서 영어 회화의 중요성을 느끼고 있는 요즘입니다. openAI의 chatGPT에게 영어를 배워보면 재미있을 것 같아서, 자주자주 GPT와 놀아볼 예정입니다. 이 대화의 instruction 및 prompt는 ChatGPT에게 생성 요청하였습니다. Me Let's have a small talk in English! What topic would you like to discuss? ChatGPT Sure! How about we discuss traveling? It's always a fascinating topic. Where is your favorite travel destination, and what makes it special to you? Me traveling?..
[Storage] Object vs File vs Block Storage: 차이점이 무엇인가?
·
Infra/Storage
파일, 개체 및 블록 스토리지, 주요 차이점 및 요구 사항에 가장 적합한 유형을 살펴보십시오. 조직의 데이터는 가장 귀중한 자산 중 하나입니다. 고객 정보, 빅 데이터 분석, 재무 정보, 직원 기록, 맞춤형 애플리케이션 등 각 데이터 또는 더 큰 데이터 세트는 정보를 저장하는 위치와 방법에 대한 중요한 결정을 내려야 합니다. 조직에서 여러 유형의 스토리지를 사용하는 경우가 많지만 스토리지는 데이터 수준에서 결정해야 합니다. 객체 스토리지란 무엇입니까? 개체 스토리지 는 데이터를 별도의 독립된 단위로 나누고 모든 개체가 동일한 수준에 있는 평평한 환경에 다시 저장되는 시스템입니다. 파일 저장소에 사용되는 것과 같은 폴더나 하위 디렉터리가 없습니다. 또한 오브젝트 스토리지는 모든 데이터를 단일 파일에 함께 ..
[Traefik] Traefik Proxy
·
Infra/Service Proxy
Traefik Proxy Documentation - Traefik Welcome Traefik is an open-source Edge Router that makes publishing your services a fun and easy experience. It receives requests on behalf of your system and finds out which components are responsible for handling them. What sets Traefik apart, besides it doc.traefik.io Architecture Overview traefik은 모든 요청을 인터셉트하고 해당하는 백엔드 서버에 라우트함 전통적인 리버스 프록시들과는 다르게, serv..
[Istio] Introduction - Istio란?
·
Infra/Service Mesh
이 글은 istio 공식 문서에서 발췌한 내용들로 구성되어 있습니다. The Istio service mesh What is Service Mesh? 일반적으로 모던 어플리케이션들은 몇몇의 이산적인 비즈니스 로직을 수행하는 분산된 마이크로서비스 집합들로 설계됨 서비스메시는 전용 인프라 계층(dedicated infrastructure layer)이라서 자체 코드를 추가하지 않고도 observability, traffic management, security 같은 기능을 추가할 수 있음 "서비스 메시"라는 용어는 이 패턴을 구현하는 데 사용하는 소프트웨어 유형과 해당 소프트웨어를 사용할 때 생성되는 보안 또는 네트워크 도메인을 모두 설명 운영 요구사항: 검색, 로드 밸런싱, 장애 복구, 메트릭 및 모니터링..
[마이크로서비스 패턴] 분해 전략
·
컴퓨터 공학/소프트웨어 공학
마이크로서비스 아키텍처란 무엇인가? 마이크로서비스 아키텍처의 핵심 사상은 기능 분해이다. 이전에는 확장성, 신뢰성, 보안 등이 아키텍처의 주요 목표였지만, 이제는 신속, 안전하게 소프트웨어를 전달하는 능력도 매우 중요해졌다. 마이크로서비스 아키텍처는 관리성, 테스트성, 배포성이 높은 아키텍처 스타일. ▶ 소프트웨어 아키텍처의 4+1 뷰 모델 애플리케이션 아키텍처를 바라보는 관점은 다양하다. 필립 크러첸(Phillip Krutchen)은 소프트웨어 아키텍처가 4+1 뷰 모델이라고 기술한 논문을 발표했다. 4+1 뷰 모델은 소프트웨어 아키텍처를 바라보는 상이한 4뷰를 정의한다. 논리 뷰 (logical view): 개발자가 작성한 소프트웨어 엘리먼트: 클래스, 패키지 (객체 지향). 상속(inheritanc..
[마이크로 서비스 패턴] 모놀리식 지옥에서 벗어나라
·
컴퓨터 공학/소프트웨어 공학
FTGO 애플리케이션 아키텍처 모놀리스(monolith): 일체형 비즈니스 로직 각자가 도메인 객체 컬렉션인 모듈(예: 주문 관리, 배달 관리, 과금, 지불)로 구성됨 외부 시스템과 연계하는 어댑터 REST API, 웹 UI 어댑터 등 비즈니스 요청을 호출하여 처리하는 인바운드 어댑터 비즈니스 로직에서 MySQL DB에 접근하거나 트윌리오, 스트라이프 등 클라우드 서비스를 호출하게 해주는 아웃바운드 어댑터 모놀리식 아키텍처의 장점 규모가 작은 초기에는 모놀리식 아키텍처의 장점이 많았음 개발이 간단 애플리케이션을 쉽게 변경할 수 있음 테스트하기 쉬움 배포하기 쉬움 확장하기 쉬움 하지만 시간이 흐를수록 개발, 테스트, 배포, 확장하기가 쉽지 않음 모놀리식 지옥의 실상 너무 복잡해서 개발자가 주눅 듬 개발이 ..
[스파크 완벽 가이드] Part 3. 저수준 API
·
Data Engineering/Spark
대부분의 상황에서는 구조적 API를 사용하는 것이 좋다. 그러나 비즈니스가 기술적 문제를 고수준 API를 사용해 모두 처리할 수 있는 것은 아니므로, 스파크의 저수준 API를 사용해야 할 수도 있다. CHAPTER 12. RDD 사용자가 실행한 모든 DataFrame이나 Dataset 코드는 RDD로 컴파일된다. RDD는 간단히 말해 불변성을 가지며 병렬로 처리할 수 있는 파티셔닝된 레코드의 모음이다. RDD의 레코드는 자바, 스칼라, 파이썬의 객체일 뿐이다. 또한 구조적 API와는 다르게 레코드의 내부 구조를 스파크에서 파악할 수 없으므로, 최적화를 하려면 훨씬 많은 수작업이 필요하다. RDD에는 수많은 하위 클래스가 존재하며, DataFrame API에서 최적화된 물리적 실행 계획을 만드는데 대부분 ..
[스파크 완벽 가이드] Part 2. 구조적 API: DataFrame, SQL, Dataset
·
Data Engineering/Spark
CHAPTER 4. 구조적 API 개요 구조적 API는 비정형 로그 파일부터 반정형 CSV 파일, 매우 정형적인 파케이(Parquet) 파일까지 다양한 유형의 데이터를 처리할 수 있다. 구조적 API에는 세 가지 분산 컬렉션 API가 있다; Dataset, DataFrame, SQL 테이블과 뷰 배치와 스트리밍 처리에서 구조적 API를 사용할 수 있고, 배치 작업과 스트리밍 작업을 서로서로 쉽게 변환할 수 있다. 스키마는 DataFrame의 컬럼명과 데이터 타입을 정의한다. 이는 데이터소스에서 얻거나 직접 정의할 수 있다. 본질적으로 DataFrame은 '비타입형'으로 런타임에 스키마와 비교하며, Dataset은 '타입형'으로 컴파일 타임에 스키마와 비교한다. 스파크의 DataFrame은 Row 타입으로..
[스파크 완벽 가이드] Part 1. 빅데이터와 스파크 간단히 살펴보기
·
Data Engineering/Spark
CHAPTER 1. 아파치 스파크란? 스파크는 통합 컴퓨팅 엔진이며, 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합 스파크는 네 가지 언어(파이썬, 자바, 스칼라, R)을 지원하며 SQL뿐만 아니라 스트리밍, 머신러닝에 이르기까지 넓은 범위의 라이브러리를 제공 스파크는 저장소 시스템의 데이터를 연산하는 역할만 수행할 뿐 영구 저장소 역할은 수행하지 않음 스파크의 등장 배경 하드웨어의 성능 향상은 2005년경에 멈췄음 → 성능 향상을 위해 병렬 처리가 필요함 결과적으로 데이터 수집 비용은 극히 저렴해졌지만, 데이터는 클러스터에서 처리해야 할 만큼 거대해짐 기존 데이터 처리 애플리케이션의 전통적인 프로그래밍 모델이 한계점이 도래 → 스파크 탄생 스파크 실행하기 jupyter에서 제공하는 공식 d..
YSCEC 크롤러2
·
개발/NodeJS
YSCEC-CRAWLER2 /와이섹 크롤러/ 와이섹 크롤/ 크롤링/ 와이섹 연세대학교 지식창조 커뮤니티라는 거창한 이름의 사이트가 있습니다. 이 사이트는 연세대학교 재학생들의 강의 공지와 강의 자료들이 올라오는 사이트인데, 매일매일 로그인하고 수강하는 과목의 자료들이 업로드 되었는지 확인하는 작업이 여간 귀찮은게 아닙니다. 그래서 이번 개강을 맞아 나 대신 매일매일 와이섹 내용을 체크해주는 크롤러를 다시금 개발하게 되었습니다. 이전에 YSCEC-CRAWLER 를 올렸었는데, 이에 관한 내용은 다음 링크에서 확인해보시기 바랍니다. 블로그 : http://dytis.tistory.com/6깃허브 : https://github.com/pfldy2850/YSCEC-CRAWLER 개발환경 NodeJSES7 문법으..
[ML lec 08] Deep Neural Nets for Everyone
·
AI/Lecture notes
우리 인류의 궁극적인 꿈이라고 하는 것이 바로 우리를 대신해서 골치아픈 문제를 생각해주는 기계를 만들자라고 할 수 있습니다. 따라서 우리의 뇌와 같은 모습을 만들고자했고, 뇌에 대해서 공부를 하게되었습니다. 뇌를 공부하였더니, 굉장히 복잡하게 연결되있어서 놀랐고 또 연결된 부분부분들을 자세하게 봤더니 뉴런이라고 불리는 유닛이 너무나 단순하게 동작이 되었습니다. 봤더니 어떤 인풋이 있고, 길이에 따라 신호의 양이 달라졌습니다. 따라서 X*W으로 둘 수 있고. 이 것들이 다 합쳐지고, 어떤 bias가 더해져서 그것이 그 다음으로 전달되더라... 이 다 모여있는 값이 어떤 값 이상이 되면 활성화되고, 그렇지 않으면 활성화가 되지 않습니다. 이런 것에 영감을 받아서, 수학적으로 만들어낸 모델이 뉴럴 넽입니다. ..
[ML lec 07] Application & Tips
·
AI/Lecture notes
이번 포스트에서는 머신러닝 알고리즘을 실제로 사용하는데 있어서, 몇가지 팁을 알려드리겠습니다. 크게 러닝 레이트를 조정하는 방법과 전처리 방법 그리고 오버피팅을 방지하는 방법에 대해서 이야기하겠습니다. 우리가 cost function을 정의하고 그 cost function을 최소화하는 것에 Gradient descent 알고리즘을 사용해왔습니다. Gradient descent 알고리즘에서 우리는 Learning rate를 지정해주게 되는데요, 이 때 Learning rate를 잘 정하는 것이 중요합니다. Learning rate란 그래프를 내려가는 것의 step과 같습니다. 만약 step이 너무 크다면, 그래프 바깥으로 나가버리거나, 계속 주위를 맴돌게 되는 상황이 만들어질 수도 있습니다. 이것을 ove..
[ML lec 06] Softmax Regression
·
AI/Lecture notes
이번에는 여러개의 Class가 있을 때, 그것을 예측하는 Multinomial Classification 중에서도 가장 많이 사용되는 Softmax Classification을 알아보겠습니다. 지난번 포스트에서 Logistic regression classification이라는 것에 대해서 알아봤습니다. 자세한 내용은 지난번 포스트를 참고해주세요. 아무튼 이 Logistic regression classification은 Binary classification에 사용됩니다. 기본적으로 서로 다른 데이터들을 구분하는 것인데, 아래와 같이 생각할 수 있습니다. 이러한 아이디어를 Multinomial classification에 적용을 시킬수 있습니다. 아래와 같은 데이터가 있다고 가정합니다. 여기에서 Bin..
[ML lec 05] Logistic Classification
·
AI/Lecture notes
이번 포스트는 Logistic Classification에 대해서 다루도록 하겠습니다. 본론에 들어가기 앞서, 이전의 Linear Regression에 대해서 Remind해보겠습니다. Linear regression에서는 가설을 H(x) = WX + b 로 세웠고, 여기에 대해서 Cost function과 이 Cost를 minimize하기 위해 Gradient decent라는 optimizer를 사용하였습니다. 이 것 세가지만 있으면 Linear Regression을 잘 이해할 수 있고, 구현할 수 있습니다. Classification도 이것과 굉장히 유사합니다. Classification이 다른 점은 이전의 Regression이 어떤 numeric한 변수를 예측하는 것이었다면, Classificatio..
[ML lec 04] multi-variable linear regression (*new)
·
AI/Lecture notes
이번 포스트에서는 지난번 Linear regression에 이어서, 하나의 변수가 아니라 여러개의 multi-varaible을 사용하는 방법에 대해서 포스트하겠습니다. 우선 포스트를 시작하기 전에 지난번에 올렸던 내용을 복습해보겠습니다. Linear regression을 설계하기 위해선 세가지가 필요합니다. 우선 Hypothesis가 있는데요, Linear regression에서는 H(x) = Wx + b로 가설을 세우게됩니다. 다음으로는 이 가설이 얼마나 맞는지에 대해서 판단하는 Cost function이 필요합니다. 마지막으로는 이 Cost를 최적화하는 Gradient Descent Algorithm이 필요합니다. 여기까지에 대해서 완벽히 이해하셨으면, 이번 포스트 내용에 대한 기초적인 이해는 충분하..
[ML lec 03] Linear Regression의 cost 최소화 알고리즘의 원리 설명
·
AI/Lecture notes
이번 포스트에서는 지난 포스트에서 말했던, cost function을 어떻게 최소화해서 최종적으로 Linear Regression 학습을 마치는 지에 대해서 다루겠습니다. 지난 포스트에서처럼 우리의 Hypothesis는 다음과 같습니다. 그럼 x = 1, 2, 3, y = 1, 2, 3인 데이터가 있다고 생각하고, cost를 구해봅시다. 우선 H(x) = Wx + b 에서 b는 없다고 생각하고, 계산을 해봅니다. 계산을 해보면 다음과 같이 나오게 됩니다. 각각은 W = 1, cost(W) = 0W = 0, cost(W) = 4.67W = 2, cost(W) = 4.67 이 되어집니다. 이 때 그래프는 다음과 같이 그려지게 됩니다. 이 때, 우리가 구해야 하는 것은 Cost의 최솟값입니다. 따라서 이 그래..
[ML lec 02] Linear Regression
·
AI/Lecture notes
이론 우리가 Supervised Learning을 할 때에, 학생이 몇시간 정도 공부를 했더니 얼마정도의 성적을 받았다는 데이터를 학습을 하게됩니다. 여기서 우리가 예측을 하고자하는 최종적인 목표가 0~100의 범위를 가지는 값입니다. 이런 종류의 학습을 Supervised Learning 중에서도 regression이라고 합니다. 설명을 간단히 하기 위해서, 데이터셋을 다음과 같이 간단하게 두어 보겠습니다. 이 데이터를 그래프로 그려보면 오른쪽 그래프와 같이 표현됩니다. 그래서 우리가 이 regression 모델을 학습한다는 것은 어떠한 하나의 가설을 세울 필요가 있습니다. "어떤 Linear한 모델이 우리 데이터에 맞을 것이다" 라는 가설 하에 생성된 모델이 바로 Linear regression입니다..
[ML lec 01] 기본적인 머신러닝의 용어와 개념 설명
·
AI/Lecture notes
오늘은 - 머신러닝이란 무엇인가?- 러닝은 무엇인가?- regresion이 무엇인가?- classification이 무엇인가? 에 대해서 알아보도록 하겠습니다. 머신러닝이라는 것은 일종의 소프트웨어입니다. 우리가 많이 사용하는 앱 같은 것을 보면, 입력을 기반으로 어떤 데이터를 보여주고 하는 프로그램인데, 이런 것들을 explicit program이라고 합니다. explicit program은 개발자들이 이런 환경에서 이렇게 반응하고 저런 환경에서 저렇게 반응하라고 만들어놓은 프로그램입니다. 이런 explicit program에서는 한계점이 있습니다. 예를 들어, 스팸 메일 필터같은 경우 엄청나게 많은 규칙들이 생겨날 수 있는 상황이 있죠. 이런 상황을 해결하기 위해, Arthur Samuel이라는 사람..
Mass Storage Structure
·
레거시/OS
* 왜 디스크가 필요한가?- 충분한 메모리를 가질 수 없다!가상 메모리의 스왑 공간으로서의 디스크 등 - 메모리는 휘발성이다! * Read/Write Operations to a Disk1. 섹터 주소가있는 디스크를 제시하십시오.• 디스크 주소 = (드라이브, 표면, 트랙, 섹터)2. 헤드가 목표 트랙으로 이동합니다.• 시간 찾기3. 적절한 헤드가 활성화됩니다.4. 대상 섹터가 헤드 아래에 나타날 때까지 기다립니다.• 회전 대기 시간 5. 섹터 읽기 / 쓰기• 전송 시간 * Disk(Head) 스케쥴링- 디스크 대기열에서 둘 이상의 요청 가능성운영 체제는 요청에 대한 총 헤드 이동을 최소화하여 디스크 I / O 성능을 최대화합니다. - 디스크 스케줄링 알고리즘1) FCFS (선착순) 스케줄링공평하나 비효..
I/O Systems
·
레거시/OS
* I/O Hardware Detail- CPU side: I/O bus와 I/O address하드웨어 장치와 통신하기 위한 주소, 물리적 메모리 주소 공간에 매핑 가능 - Device side: hardware controllerControl 및 status registers (CSRs) - 하드웨어 디바이스와 상호 작용하는 세가지 방법폴링 (예 : 플로피 드라이버)인터럽트 구동 (예 : 대부분의 다른 장치)DMA (직접 메모리 액세스) * I/O Architecture- Three componentsI/O portsI/O interfacesDevice controller - I/O portsI / O 버스에 연결된 각 장치에는 "I / O 포트"라고하는 고유한 I / O 주소 집합이 있습니다.각 장치..
Virtual Memory
·
레거시/OS
가상 메모리 개념 : physical memory로부터 유저의 logical memory를 분리이점 :전체 주소 공간이 physical memory에 상주하지 않아도 프로그램 실행 가능모든 코드나 데이터 영역을 가져올 필요가 없음프로세스를 분리한다.프로세스가 파일과 주소공간을 공유한다. 가상 어드레스 프로세스는 virtual(logical) address를 사용한다.다수의 프로세스의 메모리 관리를 쉽게 하기 위해가상 주소는 참조된 데이터의 실제 물리 고간과 독립적임.cpu를 통해 실행되는 instruction은 가상 주소를 발행한다.가상 주소는 하드웨어에 의해 물리 주소로 번역된다.(OS의 도움에 의해) Demand Paging 개념 : “필요할 때만 해당 페이지를 메모리에 가져오자”페이지레벨 스와핑을 ..
Memory Management
·
레거시/OS
메모리 관리의 배경 멀티 프로그래밍 : 다수의 프로세스가 한번에 메모리에 접근함-> 한 프로세스가 사용가능한 주소를 제약해줘야함 (Protection)-> 메모리 하드웨어의 업데이트를 빠르게 해야함 (protection과 translation) 메모리 관리의 정의 OS와 하드웨어에서 다수의 프로세스가 메인 메모리에 수용되도록 실행하는 작업 메모리 관리의 목표 프로세스간의 분리를 제공하기 위해. 최소의 오버헤드로 성능을 최대화하기 위해서 경쟁하는 프로세스간의 부족한 메모리 자원을 할당하기 위해. 메모리 관리의 쟁점 다수의 프로세스 지원 - 각각의 프로세스는 논리적으로 연속된 공간을 가져야함.- 각각의 공간의 크기는 가변적임. 프로세스가 할당된 메모리보다 더 크게 사용할 수 있게 함. - 모든 메모리 공간이..
File System(2)
·
레거시/OS
• 할당 방법 3가지- Contiguous allocation각 파일은 디스크에서 일련의 연속 블록을 차지합니다.단순하게 : 시작 위치와 길이만 필요합니다.효율적인 임의 접근공간의 낭비(동적 스토리지 할당 문제)CD-ROM에 널리 사용됨. (파일이 변하지 않으며, 모든 파일 사이즈를 알고 있습니다.)문제점1) 파일이 커질 수 없습니다.2) 필요한 공간보다 더 크게 추정합니다. - Linked allocation각 파일은 디스크 블록의 링크 된 목록입니다. 블록이 디스크의 어느 곳에나 흩어져 있을 수 있습니다.단순하게 : 시작 지점만 필요합니다.자유 공간 관리 시스템(Free-space Management)으로 공간 낭비가 없습니다.문제점1) 무작위 접근에 비효율적입니다.2) 포인터를 위한 공간이 필요합니..
File System(1)
·
레거시/OS
•파일 시스템의 기본 개념- 장기적 정보 저장에 대한 요구엄청 많은 양의 정보를 저장할 수 있어야 한다.프로세스가 그것을 사용하고 종료하더라도 남아있어야한다.다수의 프로세스가 동시에 접근할 수 있어야 한다. - 파일 시스템의 책임보조 저장소에 대한 추상화 구현(파일)파일을 논리적으로 조직화(디렉토리)프로세스, 사람, 기계 간의 정보 공유 허가비인가 접근에 대한 데이터 보호(보안) •파일- 파일이란?보조 저장소에 기록된 관련 정보의 명명된 집합체파워 결함이나 시스템 리부팅에도 유지됨OS는 파일을 통한 정보 저장의 일관된 논리적 뷰를 제공 - 파일 구조Flat: 연속된 바이트간단한 기록 구조 : lines, fixed length, variable length복합한 구조 : formatted document..
리액트 #08 - Forms
·
개발/ReactJS
이번에는 리액트에서 Form을 어떻게 다루는 지에 대해서 알아봅시다. 리액트는 데이터의 흐름이 단방향입니다. 따라서 여러 폼에 변화하는 같은 값을 적용하려면, 따로 처리를 해주어야 합니다. 아래와 같이 초기 value 값을 state.data로 적용해주고, 이 후에 onChange로 변하는 값을 state로 갱신합니다. App.js import React from 'react'; class App extends React.Component { constructor(props) { super(props); this.state = { data: 'Initial data...' } this.updateState = this.updateState.bind(this); }; updateState(e) { this..
리액트 #07 - Component Life Cycle
·
개발/ReactJS
ReactJS에는 컴포넌트들에 대한 라이프 사이클 메서드들이 존재합니다. 이번 포스트에서는 이 라이프 사이클 메서드들에 대해서 알아봅시다. Life Cycle Methods- componentWillMount 서버와 클라이언트 모두에게 렌더링하기 전에 작동됩니다. - componentDidMount 클라이언트에서 첫 렌더링이 이루어지고 난 후에 작동됩니다. 이 메서드에서 AJAX 리퀘스트나 DOM, state 갱신을 진행합니다. 또한 다른 자바스크립트 프레임워크나 다른 함수들과 합쳐지는 것에 사용되며, 이 때는 setInterval이나 setTimeout 등과 같은 함수로 지연을 시키게 됩니다. - componentWillReceiveProps Prop가 갱신되면, 다른 렌더링이 작동하기 전에 불려집니다..